summary refs log tree commit diff
path: root/pkgs/build-support/setup-hooks/separate-debug-info.sh
diff options
context:
space:
mode:
authorArnout Engelen <arnout@bzzt.net>2023-04-23 11:53:47 +0200
committerArnout Engelen <arnout@bzzt.net>2023-04-23 11:53:47 +0200
commit9156daa547086435dadc55ed78bb0d1a85a03a6c (patch)
tree7e6b68c4c92deb92610fd321eed66aea14d4d2a2 /pkgs/build-support/setup-hooks/separate-debug-info.sh
parent645bc49f34fa8eff95479f0345ff57e55b53437e (diff)
downloadnixpkgs-9156daa547086435dadc55ed78bb0d1a85a03a6c.tar
nixpkgs-9156daa547086435dadc55ed78bb0d1a85a03a6c.tar.gz
nixpkgs-9156daa547086435dadc55ed78bb0d1a85a03a6c.tar.bz2
nixpkgs-9156daa547086435dadc55ed78bb0d1a85a03a6c.tar.lz
nixpkgs-9156daa547086435dadc55ed78bb0d1a85a03a6c.tar.xz
nixpkgs-9156daa547086435dadc55ed78bb0d1a85a03a6c.tar.zst
nixpkgs-9156daa547086435dadc55ed78bb0d1a85a03a6c.zip
setup-hooks/separate-debug-info.sh: make deterministic
If multiple files with the same build id were found, we silently randomly
overwrote one with the other.

Change the order to make the output deterministic, and emit a
warning when overwriting.
Diffstat (limited to 'pkgs/build-support/setup-hooks/separate-debug-info.sh')
-rw-r--r--pkgs/build-support/setup-hooks/separate-debug-info.sh6
1 files changed, 5 insertions, 1 deletions
diff --git a/pkgs/build-support/setup-hooks/separate-debug-info.sh b/pkgs/build-support/setup-hooks/separate-debug-info.sh
index ca651b4393a..334db4cfcd9 100644
--- a/pkgs/build-support/setup-hooks/separate-debug-info.sh
+++ b/pkgs/build-support/setup-hooks/separate-debug-info.sh
@@ -36,10 +36,14 @@ _separateDebugInfo() {
         # architecture than we're building for.  (This happens with
         # firmware blobs in QEMU.)
         (
+            if [ -f "$dst/${id:0:2}/${id:2}.debug" ]
+            then
+                echo "separate-debug-info: warning: multiple files with build id $id found, overwriting"
+            fi
             $OBJCOPY --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug"
 
             # Also a create a symlink <original-name>.debug.
             ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")"
         ) || rmdir -p "$dst/${id:0:2}"
-    done < <(find "$prefix" -type f -print0)
+    done < <(find "$prefix" -type f -print0 | sort -z)
 }