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