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