summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrew Childs <lorne@cons.org.nz>2020-11-19 16:55:25 +0900
committerAndrew Childs <lorne@cons.org.nz>2021-05-17 00:27:01 +0900
commit15637fe6214833a63f732c227604ea32930a1203 (patch)
tree3114e8628b181e65b07290d3b13719eceab1deca
parenteb8f8afac7a5ca3b824cc9032f900a6486f68536 (diff)
downloadnixpkgs-15637fe6214833a63f732c227604ea32930a1203.tar
nixpkgs-15637fe6214833a63f732c227604ea32930a1203.tar.gz
nixpkgs-15637fe6214833a63f732c227604ea32930a1203.tar.bz2
nixpkgs-15637fe6214833a63f732c227604ea32930a1203.tar.lz
nixpkgs-15637fe6214833a63f732c227604ea32930a1203.tar.xz
nixpkgs-15637fe6214833a63f732c227604ea32930a1203.tar.zst
nixpkgs-15637fe6214833a63f732c227604ea32930a1203.zip
bintools-wrapper: support post linker hooks
-rw-r--r--pkgs/build-support/bintools-wrapper/ld-wrapper.sh26
1 files changed, 25 insertions, 1 deletions
diff --git a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
index 7ccf5510c88..e54dd6f4714 100644
--- a/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/bintools-wrapper/ld-wrapper.sh
@@ -102,6 +102,8 @@ declare -a libDirs
 declare -A libs
 declare -i relocatable=0 link32=0
 
+linkerOutput="a.out"
+
 if
     [ "$NIX_DONT_SET_RPATH_@suffixSalt@" != 1 ] \
         || [ "$NIX_SET_BUILD_ID_@suffixSalt@" = 1 ] \
@@ -153,6 +155,24 @@ then
     done
 fi
 
+# Determine linkerOutput
+prev=
+for p in \
+    ${extraBefore+"${extraBefore[@]}"} \
+    ${params+"${params[@]}"} \
+    ${extraAfter+"${extraAfter[@]}"}
+do
+    case "$prev" in
+        -o)
+            # Informational for post-link-hook
+            linkerOutput="$p"
+            ;;
+        *)
+            ;;
+    esac
+    prev="$p"
+done
+
 if [[ "$link32" = "1" && "$setDynamicLinker" = 1 && -e "@out@/nix-support/dynamic-linker-m32" ]]; then
     # We have an alternate 32-bit linker and we're producing a 32-bit ELF, let's
     # use it.
@@ -223,7 +243,11 @@ fi
 
 PATH="$path_backup"
 # Old bash workaround, see above.
-exec @prog@ \
+@prog@ \
     ${extraBefore+"${extraBefore[@]}"} \
     ${params+"${params[@]}"} \
     ${extraAfter+"${extraAfter[@]}"}
+
+if [ -e "@out@/nix-support/post-link-hook" ]; then
+    source @out@/nix-support/post-link-hook
+fi