2
0
Fork 0

Tweak Genode upstream build wrapper

This commit is contained in:
Emery Hemingway 2020-02-24 14:19:57 +01:00
parent 94868758e5
commit 7f30ff1fed
2 changed files with 10 additions and 13 deletions

View File

@ -5,7 +5,8 @@
let let
inherit (legacyPackages) callPackage; inherit (legacyPackages) callPackage;
dhallPackages = legacyPackages.dhallPackages // (callPackage ./dhall { inherit dhallApps; }); dhallPackages = legacyPackages.dhallPackages
// (callPackage ./dhall { inherit dhallApps; });
mkDhallManifest = drv: mkDhallManifest = drv:
legacyPackages.runCommand "${drv.name}.dhall" { inherit drv; } legacyPackages.runCommand "${drv.name}.dhall" { inherit drv; }
@ -30,8 +31,7 @@ in rec {
arch = "x86_64"; arch = "x86_64";
kernel = "hw"; kernel = "hw";
board = "pc"; board = "pc";
targets = [ "bootstrap" "core" "timer" ]; targets = [ "bootstrap" "core" "timer" "lib/ld" ];
libTargets = [ "ld-hw" ];
postInstall = '' postInstall = ''
mkdir -p $out/lib mkdir -p $out/lib
mv $out/bin/*.o $out/lib/ mv $out/bin/*.o $out/lib/
@ -43,9 +43,7 @@ in rec {
name = "base-nova"; name = "base-nova";
arch = "x86_64"; arch = "x86_64";
kernel = "nova"; kernel = "nova";
board = "pc"; targets = [ "core" "timer" "lib/ld" ];
targets = [ "core" "timer" ];
libTargets = [ "ld-nova" ];
postInstall = '' postInstall = ''
mkdir -p $out/lib mkdir -p $out/lib
mv $out/bin/*.o $out/lib/ mv $out/bin/*.o $out/lib/

View File

@ -1,7 +1,6 @@
{ nixpkgs, apps }: { nixpkgs, apps }:
{ name, targets, libTargets ? [ ], arch ? "x86_64", kernel ? "linux" { name, targets, arch, kernel ? "hw", board ? "pc", patches ? [], ... }@extraAttrs:
, board ? "pc", ... }@extraAttrs:
let let
sourceForgeToolchain = sourceForgeToolchain =
nixpkgs.buildPackages.callPackage ./../genode/toolchain.nix { }; nixpkgs.buildPackages.callPackage ./../genode/toolchain.nix { };
@ -17,7 +16,7 @@ let
in stdenvGcc.mkDerivation ({ in stdenvGcc.mkDerivation ({
outputs = [ "out" "manifest" ]; outputs = [ "out" "manifest" ];
pname = name; pname = name;
inherit version targets libTargets; inherit version targets;
src = nixpkgs.fetchFromGitHub { src = nixpkgs.fetchFromGitHub {
owner = "genodelabs"; owner = "genodelabs";
repo = "genode"; repo = "genode";
@ -25,7 +24,7 @@ in stdenvGcc.mkDerivation ({
sha256 = "0j0wfwqmv8mivfkpra1pb02a8dy1nnsakr3v6l5y964dfkq3737i"; sha256 = "0j0wfwqmv8mivfkpra1pb02a8dy1nnsakr3v6l5y964dfkq3737i";
}; };
patches = [ ./unlabeled-log.patch ]; patches = [ ./unlabeled-log.patch ] ++ patches;
nativeBuildInputs = with nixpkgs.buildPackages; [ binutils tcl which ]; nativeBuildInputs = with nixpkgs.buildPackages; [ binutils tcl which ];
@ -39,6 +38,8 @@ in stdenvGcc.mkDerivation ({
substituteInPlace tool/check_abi \ substituteInPlace tool/check_abi \
--replace "exec nm" "exec ${toolPrefix}nm" --replace "exec nm" "exec ${toolPrefix}nm"
./tool/create_builddir ${arch} BUILD_DIR=build ./tool/create_builddir ${arch} BUILD_DIR=build
substituteInPlace build/etc/build.conf \
--replace "#REPOSITORIES" "REPOSITORIES"
''; '';
makeFlags = [ "-C build" "KERNEL=${kernel}" "BOARD=${board}" ]; makeFlags = [ "-C build" "KERNEL=${kernel}" "BOARD=${board}" ];
@ -51,15 +52,13 @@ in stdenvGcc.mkDerivation ({
$makeFlags ''${makeFlagsArray+"''${makeFlagsArray[@]}"} $makeFlags ''${makeFlagsArray+"''${makeFlagsArray[@]}"}
$buildFlags ''${buildFlagsArray+"''${buildFlagsArray[@]}"} $buildFlags ''${buildFlagsArray+"''${buildFlagsArray[@]}"}
) )
for LIB in $libTargets; do
make "''${flagsArray[@]}" LIB=$LIB
done
make "''${flagsArray[@]}" $targets make "''${flagsArray[@]}" $targets
runHook postBuild runHook postBuild
''; '';
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
find -name '*.xsd' -delete
find build/bin -execdir install -Dt $out/bin '{}' \; find build/bin -execdir install -Dt $out/bin '{}' \;
runHook postInstall runHook postInstall
${apps.generate-manifest.program} $out > $manifest ${apps.generate-manifest.program} $out > $manifest