79 lines
2.3 KiB
Nix
79 lines
2.3 KiB
Nix
self: super:
|
|
|
|
let
|
|
inherit (super) lib stdenv;
|
|
|
|
genodeTarget = stdenv.targetPlatform ? isGenode
|
|
-> stdenv.targetPlatform.isGenode;
|
|
|
|
genodelibc = self.callPackage ./libc { stdenv = self.crossLibcStdenv; };
|
|
|
|
in {
|
|
|
|
binutils-unwrapped = super.binutils-unwrapped.overrideAttrs
|
|
(attrs: { patches = attrs.patches ++ [ ./binutils.patch ]; });
|
|
|
|
cmake = super.cmake.overrideAttrs (attrs: {
|
|
postInstall = if genodeTarget then ''
|
|
local MODULE="$out/share/cmake-${
|
|
lib.versions.majorMinor attrs.version
|
|
}/Modules/Platform/Genode.cmake"
|
|
if [ -e "$MODULE" ]; then
|
|
echo "Upstream provides $MODULE!"
|
|
exit 1
|
|
fi
|
|
cp ${./Genode.cmake} $MODULE
|
|
'' else
|
|
null;
|
|
});
|
|
|
|
llvmPackages = self.recurseIntoAttrs self.llvmPackages_8;
|
|
|
|
llvmPackages_8 = super.llvmPackages_8 // {
|
|
|
|
llvm = super.llvmPackages_8.llvm.overrideAttrs
|
|
(attrs: { patches = [ ./llvm.patch ]; });
|
|
|
|
compiler-rt = super.llvmPackages_8.compiler-rt.overrideAttrs
|
|
(attrs: { patches = attrs.patches ++ [ ./compiler-rt.patch ]; });
|
|
|
|
libcxxabi = (super.llvmPackages_8.libcxxabi.override {
|
|
enableShared = false;
|
|
}).overrideAttrs (attrs: {
|
|
postUnpack = attrs.postUnpack + ''
|
|
patch -p1 -d $(ls -d llvm-*) -i ${./llvm-genode.patch}
|
|
'';
|
|
cmakeFlags = attrs.cmakeFlags ++ (lib.optionals genodeTarget [
|
|
"-DCMAKE_C_FLAGS=-nodefaultlibs"
|
|
"-DLIBCXXABI_USE_LLVM_UNWINDER=OFF"
|
|
"-DLIBCXXABI_ENABLE_THREADS=OFF"
|
|
"-DLIBCXXABI_BAREMETAL=ON"
|
|
]);
|
|
|
|
installPhase = attrs.installPhase
|
|
+ "install -m 644 ../include/*.h $out/include";
|
|
});
|
|
|
|
libcxx = (super.llvmPackages_8.libcxx.override {
|
|
enableShared = false;
|
|
}).overrideAttrs (attrs: {
|
|
patches = attrs.patches ++ (lib.optional genodeTarget ./libc++.patch);
|
|
nativeBuildInputs = attrs.nativeBuildInputs
|
|
++ [ super.buildPackages.python ];
|
|
cmakeFlags = attrs.cmakeFlags
|
|
++ (lib.optional genodeTarget "-DLIBCXX_ENABLE_THREADS=OFF");
|
|
});
|
|
|
|
clang-unwrapped = super.llvmPackages_8.clang-unwrapped.overrideAttrs
|
|
(attrs: {
|
|
patches = attrs.patches ++ (lib.optional genodeTarget ./clang.patch);
|
|
});
|
|
};
|
|
|
|
genodeHeaders = self.callPackage ./headers { };
|
|
|
|
inherit genodelibc;
|
|
libcCross = genodelibc;
|
|
|
|
}
|