diff --git a/overlay/default.nix b/overlay/default.nix index c84b6f5..07a11a2 100644 --- a/overlay/default.nix +++ b/overlay/default.nix @@ -25,7 +25,7 @@ with prev; { inherit (final.genodeSources) genodeBase; - genodeLibcCross = callPackage ./libc { stdenv = crossLibcStdenv; }; + genodeLibcCross = callPackage ./libc { }; genodePackages = import ../packages { nixpkgs = final; }; diff --git a/overlay/libc/default.nix b/overlay/libc/default.nix index 87635de..c8d23b0 100644 --- a/overlay/libc/default.nix +++ b/overlay/libc/default.nix @@ -1,6 +1,6 @@ # SPDX-License-Identifier: CC0-1.0 -{ stdenv, genodeSources, genodeBase }: +{ genodeSources, genodeBase }: genodeSources.buildUpstream { name = "libc"; @@ -16,7 +16,7 @@ genodeSources.buildUpstream { cp -r \ include/libc/* \ include/openlibm/* \ - $GENODE_DIR/repos/libports/include/libc/* \ + $GENODE_DIR/repos/libports/include/libc \ $dev/include/ for spec in ${toString genodeSources.specs}; do dir=include/spec/$spec/libc diff --git a/packages/default.nix b/packages/default.nix index a1603c1..5553c2a 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -77,14 +77,17 @@ in rec { NOVA = callPackage ./NOVA { }; + solo5 = let drv = callPackage ./solo5 { }; + in drv // { tests = drv.tests // { pname = "solo5-tests"; }; }; + + sotest-producer = callPackage ./sotest-producer { }; + ssh_client = buildWorld { name = "ssh_client"; targets = [ "app/ssh_client" ]; portInputs = with genodeSources.ports; [ libc libssh openssl zlib ]; }; - solo5 = let drv = callPackage ./solo5 { }; - in drv // { tests = drv.tests // { pname = "solo5-tests"; }; }; + stdcxx = callPackage ./stdcxx { }; - sotest-producer = callPackage ./sotest-producer { }; } diff --git a/packages/stdcxx/default.nix b/packages/stdcxx/default.nix index 878a93c..b9a838b 100644 --- a/packages/stdcxx/default.nix +++ b/packages/stdcxx/default.nix @@ -1,24 +1,24 @@ # SPDX-License-Identifier: CC0-1.0 -{ stdenvNoCC, llvmPackages }: +{ genodeSources, genodeBase }: -let - stdenv = stdenvNoCC; - inherit (llvmPackages) libcxx; -in stdenv.mkDerivation rec { - pname = "stdcxx"; - inherit (libcxx) version meta; +let port = genodeSources.ports.stdcxx; +in genodeSources.buildUpstream { + name = "stdcxx"; + outputs = [ "out" "dev" ]; + targets = [ "LIB=stdcxx" ]; + portInputs = [ genodeSources.ports.libc port ]; + propagatedBuildInputs = [ genodeBase ]; - buildInputs = [ libcxx ]; + STDCXX_PORT = port; + postInstall = '' + mkdir -p $dev/include - dontUnpack = true; - dontConfigure = true; - dontBuild = true; - - installPhase = '' - cflags=$NIX_CXXSTDLIB_COMPILE \ - substituteAll ${./stdcxx.pc} ${pname}.pc - mkdir -p $out/lib/pkgconfig - install -Dm444 *.pc $out/lib/pkgconfig + pushd $STDCXX_PORT/* + cp -r --no-preserve=mode \ + include/stdcxx/* \ + $GENODE_DIR/repos/libports/include/stdcxx/* \ + $dev/include/ + popd ''; } diff --git a/packages/stdcxx/stdcxx.pc b/packages/stdcxx/stdcxx.pc deleted file mode 100644 index e2d0ca2..0000000 --- a/packages/stdcxx/stdcxx.pc +++ /dev/null @@ -1,5 +0,0 @@ -Name: stdcxx -Description: Genode Standard C++ library -Version: @version@ -Requires: libc libm -Cflags: @cflags@