glibc: Include a copy of libgcc_s.so.1
This prevents failures like "libgcc_s.so.1 must be installed for pthread_cancel to work" that occur because Glibc assumes libgcc_s.so.1 to be in Glibc's libdir. This solution is pretty hacky, because the libgcc_s.so.1 from bootstrap-tools might be too old. So if we update GCC, programs might end up using an outdated libgcc_s.so.1. Ideally, we would build libgcc_s.so.1 *before* Glibc, which might not be impossible... Fixes #3548.
This commit is contained in:
parent
3bd2cfa853
commit
65221567c1
@ -46,10 +46,6 @@ postInstall() {
|
||||
ln -s lib $out/lib64
|
||||
fi
|
||||
|
||||
# This file, that should not remain in the glibc derivation,
|
||||
# may have not been created during the preInstall
|
||||
rm -f $out/lib/libgcc_s.so.1
|
||||
|
||||
# Get rid of more unnecessary stuff.
|
||||
rm -rf $out/var $out/sbin/sln
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ in
|
||||
preInstall = ''
|
||||
if [ -f ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 ]; then
|
||||
mkdir -p $out/lib
|
||||
ln -s ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1
|
||||
cp ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1
|
||||
fi
|
||||
'';
|
||||
|
||||
|
@ -12,8 +12,6 @@ stdenv.mkDerivation rec {
|
||||
buildInputs = [ zlib xz ];
|
||||
|
||||
preBuild = "cd squashfs-tools";
|
||||
|
||||
NIX_LDFLAGS = "-lgcc_s"; # for pthread_cancel
|
||||
|
||||
installFlags = "INSTALL_DIR=\${out}/bin";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user