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