# SPDX-License-Identifier: CC0-1.0 { genodeSources, genodeBase, writeText }: genodeSources.buildDepot { name = "posix"; propagatedBuildInputs = [ genodeBase ]; portInputs = [ genodeSources.ports.libc ]; preConfigure = '' echo "LIBS += libm" >> repos/libports/lib/mk/posix.mk ''; preInstall = # Take the libc ABI stubs rather than the actual libc. # The libc needs a lot of work and we can't afford to # rebuild the toolchain for every fix. '' libOutput="''${!outputLib}" find depot -name libc.abi.so -exec install -D {} "$libOutput/libc.so" \; find depot -name libm.abi.so -exec install -D {} "$libOutput/libm.so" \; ln -s "libc.so" "$libOutput/libpthread.so" ''; postInstall = '' local headerDir="''${!outputDev}/include" mkdir -p "$headerDir" pushd ${genodeSources.ports.libc}/* cp -r \ include/libc/* \ include/openlibm/* \ $GENODE_DIR/repos/libports/include/libc \ "$headerDir" for spec in ${toString genodeSources.specs}; do dir=include/spec/$spec/libc if [ -d $dir ]; then cp -r $dir/* "$headerDir" fi done popd ''; }