2
0
genodepkgs/overlay/default.nix
Emery Hemingway 55c093e0c5 Use updateAutotoolsGnuConfigScript to build legacy packages
Update Nixpkgs to use the updateAutotoolsGnuConfigScript hook everywhere
for Genode target platforms. Tweak Coreutils and Bash to compile, make
some tests.
2020-05-08 02:05:41 +05:30

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; });
}