Blame toolbox-Make-the-build-flags-match-Fedora-s-gobuild-for-PPC64.patch

f78a22e
From 32aa30a17358598f568991a5375f6182e4135648 Mon Sep 17 00:00:00 2001
ba60453
From: Debarshi Ray <rishi@fedoraproject.org>
ba60453
Date: Mon, 29 Jun 2020 17:57:47 +0200
ba60453
Subject: [PATCH] build: Make the build flags match Fedora's %{gobuild} for
ba60453
 PPC64
ba60453
ba60453
The Go toolchain doesn't play well with passing compiler and linker
ba60453
flags via environment variables. The linker flags require a second
ba60453
level of quoting, which leaves the build system without a quote level
ba60453
to assign the flags to an environment variable like GOFLAGS.
ba60453
ba60453
This is one reason why Fedora doesn't have a RPM macro with only the
ba60453
flags. The %{gobuild} RPM macro includes the entire 'go build ...'
ba60453
invocation.
ba60453
ba60453
The Go toolchain also doesn't like the LDFLAGS environment variable as
ba60453
exported by Fedora's %{meson} RPM macro.
ba60453
ba60453
Note that these flags are only meant for the "ppc64" CPU architecture,
ba60453
and should be kept updated to match Fedora's Go guidelines. Use
ba60453
'rpm --eval "%{gobuild}"' to expand the %{gobuild} macro.
ba60453
---
f78a22e
 src/go-build-wrapper | 13 +++++++++----
f78a22e
 1 file changed, 9 insertions(+), 4 deletions(-)
ba60453
ba60453
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
f78a22e
index ef4aafc8b024..f8ea8370792c 100755
ba60453
--- a/src/go-build-wrapper
ba60453
+++ b/src/go-build-wrapper
f78a22e
@@ -32,9 +32,9 @@ if ! cd "$1"; then
ba60453
     exit 1
ba60453
 fi
ba60453
 
f78a22e
-tags=""
f78a22e
+tags="-tags rpm_crashtraceback,${BUILDTAGS:-}"
f78a22e
 if $6; then
f78a22e
-    tags="-tags migration_path_for_coreos_toolbox"
f78a22e
+    tags="$tags,migration_path_for_coreos_toolbox"
f78a22e
 fi
f78a22e
 
f78a22e
 if ! libc_dir=$("$4" --print-file-name=libc.so); then
f78a22e
@@ -69,11 +69,16 @@ fi
f78a22e
 
f78a22e
 dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basename"
f78a22e
 
ba60453
+unset LDFLAGS
f78a22e
+
f78a22e
 # shellcheck disable=SC2086
f78a22e
 go build \
f78a22e
+        -compiler gc \
f78a22e
         $tags \
f78a22e
-        -trimpath \
f78a22e
-        -ldflags "-extldflags '-Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$3" \
f78a22e
+        -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -compressdwarf=false -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$3" \
f78a22e
+        -a \
f78a22e
+        -v \
f78a22e
+        -x \
f78a22e
         -o "$2/toolbox"
3dabc5c
 
f78a22e
 exit "$?"
ba60453
-- 
bd52700
2.31.1
ba60453