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