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