final: prev: with prev; { binutils-unwrapped = prev.binutils-unwrapped.overrideAttrs (attrs: { patches = attrs.patches ++ lib.optional targetPlatform.isGenode [ ./binutils/support-genode.patch ]; }); cmake = prev.cmake.overrideAttrs (attrs: { postInstall = with stdenv; if targetPlatform.isGenode 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 ${./cmake/Genode.cmake} $MODULE '' else null; }); genodeHeaders = callPackage ./headers { }; genodeLibcCross = callPackage ./libc { stdenv = crossLibcStdenv; }; libcCrossChooser = name: if stdenv.targetPlatform.isGenode then targetPackages.genodeLibcCross or genodeLibcCross else prev.libcCrossChooser name; llvmPackages_8 = callPackage ./llvm-8 ({ inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_8.tools; targetLlvmLibraries = targetPackages.llvmPackages_8.libraries; }); }