summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2017-08-30 14:57:20 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2017-09-01 11:44:54 -0400
commit94c0267fc1d2dc8db27d9c4ff07dcb4d3fb23df5 (patch)
tree8f594efd9232a47ec02bd0a87b11843dd2a728fd /pkgs
parent0cdbd2d662019aaad8b74ccb2d560ca5e1a30677 (diff)
downloadnixlib-94c0267fc1d2dc8db27d9c4ff07dcb4d3fb23df5.tar
nixlib-94c0267fc1d2dc8db27d9c4ff07dcb4d3fb23df5.tar.gz
nixlib-94c0267fc1d2dc8db27d9c4ff07dcb4d3fb23df5.tar.bz2
nixlib-94c0267fc1d2dc8db27d9c4ff07dcb4d3fb23df5.tar.lz
nixlib-94c0267fc1d2dc8db27d9c4ff07dcb4d3fb23df5.tar.xz
nixlib-94c0267fc1d2dc8db27d9c4ff07dcb4d3fb23df5.tar.zst
nixlib-94c0267fc1d2dc8db27d9c4ff07dcb4d3fb23df5.zip
cc-wrapper: Clean up dynamic linking with x86 multilib
It's better layering to do everything in ld-wrapper.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/build-support/cc-wrapper/cc-wrapper.sh4
-rw-r--r--pkgs/build-support/cc-wrapper/ld-wrapper.sh15
2 files changed, 15 insertions, 4 deletions
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index aacaf196f313..e4ffe53e2613 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -57,10 +57,6 @@ while (( "$n" < "$nParams" )); do
         cppInclude=0
     elif [ "${p:0:1}" != - ]; then
         nonFlagArgs=1
-    elif [ "$p" = -m32 ]; then
-        if [ -e @out@/nix-support/dynamic-linker-m32 ]; then
-            NIX_@infixSalt@_LDFLAGS+=" -dynamic-linker $(< @out@/nix-support/dynamic-linker-m32)"
-        fi
     fi
     n+=1
 done
diff --git a/pkgs/build-support/cc-wrapper/ld-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
index a9cc1e3f9e6f..a80f0a1e09b8 100644
--- a/pkgs/build-support/cc-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
@@ -63,6 +63,21 @@ fi
 
 extraAfter+=($NIX_@infixSalt@_LDFLAGS_AFTER)
 
+# Choose 32-bit dynamic linker if needed
+if [ -e @out@/nix-support/dynamic-linker-m32 ]; then
+    prev=
+    for p in ${params+"${params[@]}"}; do
+        if [[ "$prev" = "-m" && "$p" = "elf_i386" ]]; then
+           extraAfter+=(
+               '-dynamic-linker'
+               "$(< @out@/nix-support/dynamic-linker-m32)"
+           )
+           break
+        fi
+        prev="$p"
+    done
+fi
+
 declare -a libDirs
 declare -A libs
 relocatable=