From 13f87e714d2addfa3e2f7ad272a8a10cf5ca67f4 Mon Sep 17 00:00:00 2001 From: "john.mcdonnell" Date: Wed, 8 Feb 2023 09:25:02 +0400 Subject: Change dir to SOURCE_DIR prior to go build Fixes https://gitlab.com/gitlab-org/gitaly/-/issues/4645 by avoiding situations where the working dir may be a symlink, but SOURCE_DIR is the resolved path. --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0e674b1c3..fb38d5942 100644 --- a/Makefile +++ b/Makefile @@ -618,7 +618,8 @@ ${BUILD_DIR}/intermediate/%: clear-go-build-cache-if-needed .FOR @ # We're building intermediate binaries first which contain a fixed build ID @ # of "TEMP_GITALY_BUILD_ID". In the final binary we replace this build ID with @ # the computed build ID for this binary. - ${Q}go build -o "$@" -ldflags '-B 0x${TEMPORARY_BUILD_ID} ${GO_LDFLAGS}' -tags "${GO_BUILD_TAGS}" $(addprefix ${SOURCE_DIR}/cmd/,$(@F)) + @ # We cd to SOURCE_DIR to avoid corner cases where workdir may be a symlink + ${Q}cd ${SOURCE_DIR} && go build -o "$@" -ldflags '-B 0x${TEMPORARY_BUILD_ID} ${GO_LDFLAGS}' -tags "${GO_BUILD_TAGS}" $(addprefix ${SOURCE_DIR}/cmd/,$(@F)) # This is a build hack to avoid excessive rebuilding of targets. Instead of # depending on the Makefile, we start to depend on tool versions as defined in -- cgit v1.2.3