mirror of
https://codeberg.org/icewind/mill-scale.git
synced 2026-06-03 09:54:19 +02:00
58 lines
1.6 KiB
Nix
58 lines
1.6 KiB
Nix
{
|
|
stdenv,
|
|
fetchzip,
|
|
arch,
|
|
version,
|
|
sha256,
|
|
}:
|
|
stdenv.mkDerivation {
|
|
pname = "freebsd-sysroot";
|
|
version = "${version}-${arch}";
|
|
src = fetchzip {
|
|
url = "https://download.freebsd.org/ftp/releases/${arch}/${version}-RELEASE/base.txz";
|
|
stripRoot = false;
|
|
inherit sha256;
|
|
};
|
|
|
|
doBuild = false;
|
|
dontFixup = true;
|
|
installPhase = ''
|
|
# adapted from https://github.com/cross-rs/cross/blob/main/docker/freebsd.sh#L184
|
|
|
|
ls -l
|
|
|
|
mkdir -p $out/lib/
|
|
cp -r "usr/include" "$out"
|
|
cp -r "lib/"* "$out/lib"
|
|
cp "usr/lib/libc++.so" "$out/lib"
|
|
cp "usr/lib/libc++.a" "$out/lib"
|
|
cp "usr/lib/libcxxrt.a" "$out/lib"
|
|
cp "usr/lib/libcompiler_rt.a" "$out/lib"
|
|
cp "usr/lib"/lib{c,util,m,ssp_nonshared,memstat}.a "$out/lib"
|
|
cp "usr/lib/librt.so" "$out/lib"
|
|
cp "usr/lib"/lib{execinfo,procstat}.so.1 "$out/lib"
|
|
cp "usr/lib"/libmemstat.so.3 "$out/lib"
|
|
cp "usr/lib"/{crt1,Scrt1,crti,crtn}.o "$out/lib"
|
|
cp "usr/lib"/libkvm.a "$out/lib"
|
|
|
|
local lib=
|
|
local base=
|
|
local link=
|
|
for lib in "''${out}/lib/"*.so.*; do
|
|
base=$(basename "''${lib}")
|
|
link="''${base}"
|
|
# not strictly necessary since this will always work, but good fallback
|
|
while [[ "''${link}" == *.so.* ]]; do
|
|
link="''${link%.*}"
|
|
done
|
|
|
|
# just extra insurance that we won't try to overwrite an existing file
|
|
local dstlink="''${out}/lib/''${link}"
|
|
if [[ -n "''${link}" ]] && [[ "''${link}" != "''${base}" ]] && [[ ! -f "''${dstlink}" ]]; then
|
|
ln -s "''${base}" "''${dstlink}"
|
|
fi
|
|
done
|
|
|
|
ln -s libthr.so.3 "''${out}/lib/libpthread.so"
|
|
'';
|
|
}
|