70c93c
From 05722d2861c23554b9741c059e853da9ab38282e Mon Sep 17 00:00:00 2001
9aee22
From: Debarshi Ray <rishi@fedoraproject.org>
9aee22
Date: Mon, 29 Jun 2020 17:57:47 +0200
9aee22
Subject: [PATCH] build: Make the build flags match RHEL's %{gobuild}
9aee22
9aee22
The Go toolchain doesn't play well with passing compiler and linker
9aee22
flags via environment variables. The linker flags require a second
9aee22
level of quoting, which leaves the build system without a quote level
9aee22
to assign the flags to an environment variable like GOFLAGS.
9aee22
9aee22
This is one reason why RHEL doesn't have a RPM macro with only the
9aee22
flags. The %{gobuild} RPM macro includes the entire 'go build ...'
9aee22
invocation.
9aee22
9aee22
The Go toolchain also doesn't like the LDFLAGS environment variable as
9aee22
exported by RHEL's %{meson} RPM macro, and RHEL's RPM toolchain doesn't
9aee22
like the compressed DWARF data generated by the Go toolchain.
9aee22
9aee22
Note that these flags are meant for every CPU architecture other than
9aee22
PPC64, and should be kept updated to match RHEL's Go guidelines. Use
9aee22
'rpm --eval "%{gobuild}"' to expand the %{gobuild} macro.
9aee22
---
9aee22
 src/go-build-wrapper | 3 ++-
9aee22
 1 file changed, 2 insertions(+), 1 deletion(-)
9aee22
9aee22
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
70c93c
index 0d27120da052..f08f3218560a 100755
9aee22
--- a/src/go-build-wrapper
9aee22
+++ b/src/go-build-wrapper
9aee22
@@ -27,5 +27,6 @@ if ! cd "$1"; then
9aee22
     exit 1
9aee22
 fi
9aee22
 
9aee22
-go build -trimpath -ldflags "-extldflags '-Wl,--wrap,pthread_sigmask $4' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$3" -o "$2/toolbox"
9aee22
+unset LDFLAGS
9aee22
+go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} -compressdwarf=false -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -extldflags '-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,--wrap,pthread_sigmask $4' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$3" -a -v -x -o "$2/toolbox"
9aee22
 exit "$?"
9aee22
-- 
70c93c
2.31.1
9aee22