From 895c06ee0bb28049ac447d5d7e6613ed3c78560e Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 19 Feb 2020 00:23:26 +0100 Subject: [PATCH] Build base-nova using Genode Labs build system --- apps/nova-image/default.nix | 4 ++-- flake.nix | 2 +- packages/default.nix | 14 ++++++++++++++ packages/genode/default.nix | 5 ----- tests/driver-nova.nix | 2 +- tests/pci.dhall | 2 +- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/apps/nova-image/default.nix b/apps/nova-image/default.nix index 344170f..399101a 100644 --- a/apps/nova-image/default.nix +++ b/apps/nova-image/default.nix @@ -2,7 +2,7 @@ { stdenv, nixpkgs, dhallApps, packages }: -let inherit (packages.genode) base-nova; +let inherit (packages) base-nova; in nixpkgs.writeScriptBin "nova-image" (with nixpkgs.buildPackages; let inherit (stdenv) cc; @@ -31,6 +31,6 @@ in nixpkgs.writeScriptBin "nova-image" (with nixpkgs.buildPackages; -T${base-nova.src}/repos/base-nova/src/core/core-bss.ld \ -z max-page-size=0x1000 \ -Ttext=0x100000 -gc-sections \ - "''${CORE_NOVA:-${base-nova}/lib/core-nova.o}" "$TMPDIR/boot_modules.o" + "''${CORE_OBJ:-${base-nova}/lib/core-nova.o}" "$TMPDIR/boot_modules.o" cat a.out '') diff --git a/flake.nix b/flake.nix index 4d7729a..d328466 100644 --- a/flake.nix +++ b/flake.nix @@ -42,8 +42,8 @@ export DHALL_GENODE="${packages.dhallGenode}/package.dhall" export BASE_MANIFEST="${packages.genode.base.manifest}" export BASE_LINUX_MANIFEST="${packages.genode.base-linux.manifest}" - export BASE_NOVA_MANIFEST="${packages.genode.base-nova.manifest}" export BASE_HW_MANIFEST="${packages.base-hw-pc.manifest}" + export BASE_NOVA_MANIFEST="${packages.base-nova.manifest}" export OS_MANIFEST="${packages.genode.os.manifest}" ''; }; diff --git a/packages/default.nix b/packages/default.nix index 5dbbc2f..9650d2b 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -39,6 +39,20 @@ in rec { ''; }; + base-nova = buildUpstream { + name = "base-nova"; + arch = "x86_64"; + kernel = "nova"; + board = "pc"; + targets = [ "core" "timer" ]; + libTargets = [ "ld-nova" ]; + postInstall = '' + mkdir -p $out/lib + mv $out/bin/*.o $out/lib/ + mv $out/bin/ld-nova.lib.so $out/lib/ld.lib.so + ''; + }; + bender = legacyPackages.buildPackages.callPackage ./bender { }; dhallGenode = dhallPackages.genode; diff --git a/packages/genode/default.nix b/packages/genode/default.nix index ca1f7bf..d42b5ad 100644 --- a/packages/genode/default.nix +++ b/packages/genode/default.nix @@ -246,11 +246,6 @@ let repoInputs = [ base ]; }; - base-nova = buildRepoGcc' { - repo = "base-nova"; - repoInputs = [ base ]; - }; - os = buildRepoLlvm' { repo = "os"; repoInputs = [ base ]; diff --git a/tests/driver-nova.nix b/tests/driver-nova.nix index 97a90bd..3edb93f 100644 --- a/tests/driver-nova.nix +++ b/tests/driver-nova.nix @@ -41,7 +41,7 @@ let }@t: let manifest = lib.mergeManifests (with testPkgs; - [ genode.base-nova genode.os sotest-producer ] + [ base-nova genode.os sotest-producer ] ++ testInputs); env' = { DHALL_PRELUDE = "${testPkgs.dhallPrelude}/package.dhall"; diff --git a/tests/pci.dhall b/tests/pci.dhall index 4a17552..91d17f0 100644 --- a/tests/pci.dhall +++ b/tests/pci.dhall @@ -11,7 +11,7 @@ in { config = Genode.Init.Start::{ , binary = "test-pci" , exitPropagate = True - , resources = { caps = 96, ram = Genode.units.MiB 2 } + , resources = { caps = 96, ram = Genode.units.MiB 3 } , routes = [ Genode.ServiceRoute.child "Platform" "platform_drv" ] }