Archived
1
0
forked from rarias/bscpkgs

1 Commits

Author SHA1 Message Date
5e2d01b71a aocc: init at 5.0.0 2025-09-12 14:46:57 +02:00
4 changed files with 78 additions and 16 deletions

View File

@@ -2,23 +2,17 @@
inputs.nixpkgs.url = "nixpkgs"; inputs.nixpkgs.url = "nixpkgs";
outputs = { self, nixpkgs, ...}: outputs = { self, nixpkgs, ...}:
let let
pkgs = import nixpkgs {
# For now we only support x86 # For now we only support x86
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { overlays = [ self.overlays.default ];
inherit system; };
overlays = [ self.overlays.default ]; in
};
in
{ {
bscOverlay = import ./overlay.nix; bscOverlay = import ./overlay.nix;
overlays.default = self.bscOverlay; overlays.default = self.bscOverlay;
# full nixpkgs with our overlay applied legacyPackages.x86_64-linux = pkgs;
legacyPackages.${system} = pkgs;
hydraJobs = {
inherit (self.legacyPackages.${system}.bsc-ci) test pkgs;
};
# propagate nixpkgs lib, so we can do bscpkgs.lib # propagate nixpkgs lib, so we can do bscpkgs.lib
inherit (nixpkgs) lib; inherit (nixpkgs) lib;

View File

@@ -10,6 +10,9 @@ let
"printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out"; "printf '%s\n' ${toString (collect (x: x ? outPath) pkgs)} > $out";
bscPkgs = { bscPkgs = {
aoccUnwrapped = callPackage ./pkgs/aocc/unwrapped.nix { };
aocc = callPackage ./pkgs/aocc/default.nix { };
stdenvAocc = final.overrideCC final.stdenv final.aocc;
bench6 = callPackage ./pkgs/bench6/default.nix { }; bench6 = callPackage ./pkgs/bench6/default.nix { };
bigotes = callPackage ./pkgs/bigotes/default.nix { }; bigotes = callPackage ./pkgs/bigotes/default.nix { };
clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { }; clangOmpss2 = callPackage ./pkgs/llvm-ompss2/default.nix { };
@@ -88,9 +91,7 @@ in bscPkgs // {
}; };
}; };
pkgs = filterAttrs (_: isDerivation) bscPkgs; pkgs = final.runCommand "ci-pkgs" { }
pkgsList = final.runCommand "ci-pkgs" { }
"printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out"; "printf '%s\n' ${toString (collect isDerivation bscPkgs)} > $out";
tests = final.runCommand "ci-tests" { } tests = final.runCommand "ci-tests" { }
@@ -98,7 +99,7 @@ in bscPkgs // {
all = final.runCommand "ci-all" { } all = final.runCommand "ci-all" { }
'' ''
deps="${toString [ final.bsc-ci.pkgsList final.bsc-ci.tests ]}" deps="${toString [ final.bsc-ci.pkgs final.bsc-ci.tests ]}"
cat $deps cat $deps
printf '%s\n' $deps > $out printf '%s\n' $deps > $out
''; '';

16
pkgs/aocc/default.nix Normal file
View File

@@ -0,0 +1,16 @@
{ wrapCCWith
, aoccUnwrapped
}:
let
cc = aoccUnwrapped;
in wrapCCWith {
inherit cc;
extraBuildCommands = ''
echo "-isystem ${cc}/include" >> $out/nix-support/cc-cflags
wrap aocc $wrapper $ccPath/clang
wrap aocc++ $wrapper $ccPath/clang++
'';
}

51
pkgs/aocc/unwrapped.nix Normal file
View File

@@ -0,0 +1,51 @@
{ lib
, fetchurl
, stdenv
, autoPatchelfHook
, rocmPackages
, zlib
, libffi
, elfutils
}:
let
# in newer nixpkgs the runtime is hsakmt
rocmRuntime =
if rocmPackages ? hsakmt then
rocmPackages.hsakmt
else
rocmPackages.rocm-runtime;
in
stdenv.mkDerivation {
pname = "aocc-compiler";
version = "5.0.0";
src = fetchurl {
url = "https://download.amd.com/developer/eula/aocc/aocc-5-0/aocc-compiler-5.0.0.tar";
sha256 = "sha256-lm+sLSx1np3m6WnBCtp6ezBsET9/HgfqN2gp7IY4Dao=";
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
elfutils
zlib
rocmRuntime
stdenv.cc.cc.lib
];
phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
dontStrip = true;
installPhase = ''
mkdir -p $out
cp -a . $out/
ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6
'';
passthru = {
inherit rocmRuntime;
isClang = true; # Needed for wrapCCWith
};
meta.mainProgram = "clang";
}