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