Emery Hemingway
55c093e0c5
Update Nixpkgs to use the updateAutotoolsGnuConfigScript hook everywhere for Genode target platforms. Tweak Coreutils and Bash to compile, make some tests.
82 lines
2.1 KiB
Nix
82 lines
2.1 KiB
Nix
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
final: prev:
|
|
with prev;
|
|
let
|
|
overrideHostAttrs = drv: f:
|
|
if hostPlatform.isGenode then drv.overrideAttrs f else drv;
|
|
|
|
overrideTargetAttrs = drv: f:
|
|
if targetPlatform.isGenode then drv.overrideAttrs f else drv;
|
|
|
|
addPatches = drv: patch:
|
|
overrideTargetAttrs drv
|
|
(attrs: { patches = attrs.patches or [ ] ++ [ patch ]; });
|
|
|
|
in {
|
|
|
|
bash = overrideTargetAttrs bash (attrs: {
|
|
configureFlags = attrs.configureFlags
|
|
++ [ "--without-bash-malloc" ]; # no sbrk please
|
|
});
|
|
|
|
binutils-unwrapped =
|
|
addPatches binutils-unwrapped [ ./binutils/support-genode.patch ];
|
|
|
|
cmake = overrideTargetAttrs cmake (attrs: {
|
|
postInstall = with stdenv; ''
|
|
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
|
|
'';
|
|
});
|
|
|
|
coreutils = if targetPlatform.isGenode then
|
|
(coreutils.override {
|
|
gmp = null;
|
|
libiconv = null;
|
|
}).overrideAttrs (attrs: {
|
|
configureFlags = [
|
|
"--disable-acl"
|
|
"--disable-largefile"
|
|
"--disable-xattr"
|
|
"--disable-libcap"
|
|
"--disable-nls"
|
|
];
|
|
})
|
|
else
|
|
coreutils;
|
|
|
|
gdb = addPatches gdb [ ./gdb/genode.patch ];
|
|
|
|
inherit (final.genodeSources) genodeBase;
|
|
|
|
genodeLibcCross = callPackage ./libc { };
|
|
|
|
genodePackages = import ../packages { nixpkgs = final; };
|
|
|
|
genodeSources = buildPackages.callPackage ../packages/genodelabs { };
|
|
|
|
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;
|
|
});
|
|
|
|
solo5-tools = callPackage ./solo5-tools { };
|
|
|
|
tup = prev.tup.overrideAttrs (attrs: { setupHook = ./tup/setup-hook.sh; });
|
|
|
|
}
|