glibc: fix build vs host tool confusion

Fixes cross compilation from aarch64-linux -> armv7l-linux

(cherry picked from commit e57b58bd0e292c866f790475dd035ac3e2543dd1)
This commit is contained in:
Andrew Childs 2021-06-04 21:44:23 +09:00 committed by github-actions[bot]
parent 86d8a48762
commit d5f98e8345
1 changed files with 22 additions and 0 deletions

View File

@ -226,6 +226,28 @@ stdenv.mkDerivation ({
libc_cv_c_cleanup=yes
libc_cv_gnu89_inline=yes
EOF
# ./configure has logic like
#
# AR=`$CC -print-prog-name=ar`
#
# This searches various directories in the gcc and its wrapper. In nixpkgs,
# this returns the bare string "ar", which is build ar. This can result as
# a build failure with the following message:
#
# libc_pic.a: error adding symbols: archive has no index; run ranlib to add one
#
# (Observed cross compiling from aarch64-linux -> armv7l-linux).
#
# Nixpkgs passes a correct value for AR and friends, so to use the correct
# set of tools, we only need to delete this special handling.
sed -i \
-e '/^AR=/d' \
-e '/^AS=/d' \
-e '/^LD=/d' \
-e '/^OBJCOPY=/d' \
-e '/^OBJDUMP=/d' \
$configureScript
'';
preBuild = lib.optionalString withGd "unset NIX_DONT_SET_RPATH";