about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRyan Burns <rtburns@protonmail.com>2020-11-22 14:31:38 -0800
committerRyan Burns <rtburns@protonmail.com>2020-11-24 18:32:12 -0800
commit9682c1d0da2c64042c274a590aed52f0ac7c571d (patch)
tree0f6d81bf7b252ca653d274a38e7692b97253a38c
parent52271f44b17671ce6b100eadf7cd7e9d04d608aa (diff)
downloadnixlib-9682c1d0da2c64042c274a590aed52f0ac7c571d.tar
nixlib-9682c1d0da2c64042c274a590aed52f0ac7c571d.tar.gz
nixlib-9682c1d0da2c64042c274a590aed52f0ac7c571d.tar.bz2
nixlib-9682c1d0da2c64042c274a590aed52f0ac7c571d.tar.lz
nixlib-9682c1d0da2c64042c274a590aed52f0ac7c571d.tar.xz
nixlib-9682c1d0da2c64042c274a590aed52f0ac7c571d.tar.zst
nixlib-9682c1d0da2c64042c274a590aed52f0ac7c571d.zip
linux bootstrap tools: fix tests on ppc64
The dynamic loader on powerpc64 is called ld64.so.2 rather than
ld-linux.so.*, and was not matched by the existing pattern.

We reuse the dynamicLinker name from binutils to match a wider set
of platforms and to avoid specifying this information in two places.
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix1
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.nix2
2 files changed, 2 insertions, 1 deletions
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 3b1b8ff570a8..15fcc3742932 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -56,6 +56,7 @@ let
     else if targetPlatform.libc == "nblibc"           then "${libc_lib}/libexec/ld.elf_so"
     else if targetPlatform.system == "i686-linux"     then "${libc_lib}/lib/ld-linux.so.2"
     else if targetPlatform.system == "x86_64-linux"   then "${libc_lib}/lib/ld-linux-x86-64.so.2"
+    else if targetPlatform.system == "powerpc64le-linux" then "${libc_lib}/lib/ld64.so.2"
     # ARM with a wildcard, which can be "" or "-armhf".
     else if (with targetPlatform; isAarch32 && isLinux)   then "${libc_lib}/lib/ld-linux*.so.3"
     else if targetPlatform.system == "aarch64-linux"  then "${libc_lib}/lib/ld-linux-aarch64.so.1"
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index 421bb8502a4c..d88c6f513b41 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -246,7 +246,7 @@ in with pkgs; rec {
       gcc --version
 
     '' + lib.optionalString (stdenv.hostPlatform.libc == "glibc") ''
-      ldlinux=$(echo ${bootstrapTools}/lib/ld-linux*.so.?)
+      ldlinux=$(echo ${bootstrapTools}/lib/${builtins.baseNameOf binutils.dynamicLinker})
       export CPP="cpp -idirafter ${bootstrapTools}/include-glibc -B${bootstrapTools}"
       export CC="gcc -idirafter ${bootstrapTools}/include-glibc -B${bootstrapTools} -Wl,-dynamic-linker,$ldlinux -Wl,-rpath,${bootstrapTools}/lib"
       export CXX="g++ -idirafter ${bootstrapTools}/include-glibc -B${bootstrapTools} -Wl,-dynamic-linker,$ldlinux -Wl,-rpath,${bootstrapTools}/lib"