From fca8da1dad43d78cc84226d30a51c4bdb80ed1c7 Mon Sep 17 00:00:00 2001 From: Bryce Kwon Date: Tue, 22 Sep 2026 21:34:55 -1000 Subject: Keep the builder's paths out of the binary Git's Makefile defaults prefix to $HOME and compiles it into exec-cmd.o as the fallback runtime prefix, so each build embedded the path of whoever ran it and no two builders could produce the same bytes. The release script also maps the build directory out of the debug info, which otherwise differs between checkouts. --- Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 53580f3..fe65cba 100644 --- a/Makefile +++ b/Makefile @@ -65,8 +65,11 @@ all: cgit # be WITH_RUST, so Rust is now compiled in unless it is turned off, and leaving # this out would quietly make Cargo a build requirement. Git 3.0 drops the # choice entirely, at which point this stops working and Rust becomes -# mandatory. -GIT_BUILD_FLAGS = NO_CURL=1 NO_OPENSSL=1 NO_RUST=1 +# mandatory. Git's own build defaults prefix to $HOME and compiles it in as +# its fallback runtime prefix, so without the last flag every binary carries +# the home directory of whoever built it and no two builders get the same +# bytes. +GIT_BUILD_FLAGS = NO_CURL=1 NO_OPENSSL=1 NO_RUST=1 prefix='$(prefix)' # Apple's linker otherwise stamps each object's mtime into the debug map, so # two builds of the same sources would differ. -- cgit 2.12.1