From 9ced81cfbd5cd2fbab74a7368a09bcc924ce6353 Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Sun, 10 Sep 2023 13:34:25 +0800 Subject: [PATCH] glibc: use libutil.a when libutil.so.1 is unavailable On some platforms (e.g. loongarch64-linux), libutil.so.1 is not built in glibc (see glibc login/Makefile), only a dummy libutil.a is provided. Do not symlink libutil.so but copy libutil.a to glibc.out if libutil.so.1 does not exist. --- pkgs/development/libraries/glibc/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix index 1c822bf1ed01..e3fdfc6a2937 100644 --- a/pkgs/development/libraries/glibc/default.nix +++ b/pkgs/development/libraries/glibc/default.nix @@ -145,7 +145,7 @@ in ln -sf $out/lib/libpthread.so.0 $out/lib/libpthread.so ln -sf $out/lib/librt.so.1 $out/lib/librt.so ln -sf $out/lib/libdl.so.2 $out/lib/libdl.so - ln -sf $out/lib/libutil.so.1 $out/lib/libutil.so + test -f $out/lib/libutil.so.1 && ln -sf $out/lib/libutil.so.1 $out/lib/libutil.so touch $out/lib/libpthread.a # Put libraries for static linking in a separate output. Note @@ -154,6 +154,8 @@ in mkdir -p $static/lib mv $out/lib/*.a $static/lib mv $static/lib/lib*_nonshared.a $out/lib + # If libutil.so.1 is missing, libutil.a is required. + test -f $out/lib/libutil.so.1 || mv $static/lib/libutil.a $out/lib # Some of *.a files are linker scripts where moving broke the paths. sed "/^GROUP/s|$out/lib/lib|$static/lib/lib|g" \ -i "$static"/lib/*.a