forked from rarias/jungle
Compare commits
1 Commits
quick-shel
...
pkgs/aocc
| Author | SHA1 | Date | |
|---|---|---|---|
|
1ed213243d
|
@@ -9,6 +9,9 @@ let
|
|||||||
bscPkgs = {
|
bscPkgs = {
|
||||||
agenix = prev.callPackage ./pkgs/agenix/default.nix { };
|
agenix = prev.callPackage ./pkgs/agenix/default.nix { };
|
||||||
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
|
amd-uprof = prev.callPackage ./pkgs/amd-uprof/default.nix { };
|
||||||
|
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 { };
|
||||||
@@ -19,7 +22,6 @@ let
|
|||||||
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
|
cudainfo = prev.callPackage ./pkgs/cudainfo/default.nix { };
|
||||||
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
|
#extrae = callPackage ./pkgs/extrae/default.nix { }; # Broken and outdated
|
||||||
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
|
gpi-2 = callPackage ./pkgs/gpi-2/default.nix { };
|
||||||
quickShell = import ./pkgs/quick-shell/default.nix { pkgs = final; };
|
|
||||||
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { };
|
||||||
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { };
|
||||||
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
# FIXME: Extend this to all linuxPackages variants. Open problem, see:
|
||||||
|
|||||||
16
pkgs/aocc/default.nix
Normal file
16
pkgs/aocc/default.nix
Normal 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
51
pkgs/aocc/unwrapped.nix
Normal 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";
|
||||||
|
}
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
{ pkgs }:
|
|
||||||
|
|
||||||
# This builds devshells using passthru to populate packages and inputsFrom
|
|
||||||
# lazily.
|
|
||||||
#
|
|
||||||
# Packages prefixed with @ are added to inputsFrom and the rest are
|
|
||||||
# added to packages. This makes it possible to obtain a devshell with combining
|
|
||||||
# inputsFrom and packages from the comand line:
|
|
||||||
#
|
|
||||||
# $ nix develop .#quickShell.@nosv.clang-tools.ovni.@tampi
|
|
||||||
#
|
|
||||||
# is equivalent to:
|
|
||||||
#
|
|
||||||
# with pkgs; mkShell {
|
|
||||||
# packages = [ clang-tools ovni ];
|
|
||||||
# inputsFrom = [ nosv tampi ];
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (builtins) attrNames getAttr listToAttrs;
|
|
||||||
inherit (pkgs) lib;
|
|
||||||
|
|
||||||
# list of all packages' names
|
|
||||||
names = attrNames pkgs;
|
|
||||||
|
|
||||||
# generate a attributes containing the selected packages + all the available
|
|
||||||
# packages in names ("" -> packages and "@" -> inputsFrom)
|
|
||||||
go =
|
|
||||||
selected:
|
|
||||||
let
|
|
||||||
mkAttrs =
|
|
||||||
isInputs:
|
|
||||||
(map (
|
|
||||||
name:
|
|
||||||
let
|
|
||||||
pkg = getAttr name pkgs;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
name = (if isInputs then "@" else "") + name;
|
|
||||||
value = go (
|
|
||||||
if isInputs then
|
|
||||||
{
|
|
||||||
inherit (selected) packages;
|
|
||||||
inputsFrom = selected.inputsFrom ++ [ pkg ];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
inherit (selected) inputsFrom;
|
|
||||||
packages = selected.packages ++ [ pkg ];
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
) names);
|
|
||||||
|
|
||||||
attrs = listToAttrs ((mkAttrs true) ++ (mkAttrs false));
|
|
||||||
|
|
||||||
drv = pkgs.mkShell {
|
|
||||||
inherit (selected) inputsFrom packages;
|
|
||||||
name = # build a label from inputsFrom
|
|
||||||
if (selected.inputsFrom == [ ]) then
|
|
||||||
"nix-quick-shell"
|
|
||||||
else
|
|
||||||
lib.concatStringsSep "-" (map (v: v.pname or v.name or "unknown") selected.inputsFrom);
|
|
||||||
};
|
|
||||||
in
|
|
||||||
drv.overrideAttrs {
|
|
||||||
passthru = attrs // {
|
|
||||||
_passthru = drv.passthru;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
go {
|
|
||||||
inputsFrom = [ ];
|
|
||||||
packages = [ ];
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user