toolbox/SOURCES/toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch

56 lines
2.1 KiB
Diff
Raw Normal View History

2024-04-30 15:32:55 +00:00
From 417dc7a7a378dbab6bbaafc21b9e554b60c9402f Mon Sep 17 00:00:00 2001
2022-05-17 08:39:35 +00:00
From: Debarshi Ray <rishi@fedoraproject.org>
Date: Mon, 29 Jun 2020 17:57:47 +0200
2023-11-07 12:13:08 +00:00
Subject: [PATCH] build: Make the build flags match RHEL's %{gobuildflags}
2022-05-17 08:39:35 +00:00
2023-11-07 12:13:08 +00:00
The Go toolchain doesn't like the LDFLAGS environment variable as
2022-05-17 08:39:35 +00:00
exported by RHEL's %{meson} RPM macro, and RHEL's RPM toolchain doesn't
like the compressed DWARF data generated by the Go toolchain.
Note that these flags are meant for every CPU architecture other than
PPC64, and should be kept updated to match RHEL's Go guidelines. Use
2023-11-07 12:13:08 +00:00
'rpm --eval "%{gobuildflags}"' to expand the %{gobuildflags} macro.
2022-05-17 08:39:35 +00:00
---
src/go-build-wrapper | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/go-build-wrapper b/src/go-build-wrapper
2023-11-07 12:13:08 +00:00
index c572d6dfb02b..d39764fda0c1 100755
2022-05-17 08:39:35 +00:00
--- a/src/go-build-wrapper
+++ b/src/go-build-wrapper
2023-11-07 12:13:08 +00:00
@@ -33,9 +33,9 @@ if ! cd "$1"; then
2022-05-17 08:39:35 +00:00
exit 1
fi
-tags=""
2023-11-07 12:13:08 +00:00
+tags="-tags rpm_crashtraceback,${BUILDTAGS:-},libtrust_openssl"
if $7; then
2022-05-17 08:39:35 +00:00
- tags="-tags migration_path_for_coreos_toolbox"
+ tags="$tags,migration_path_for_coreos_toolbox"
fi
2023-11-07 12:13:08 +00:00
if ! libc_dir=$("$5" --print-file-name=libc.so); then
@@ -70,11 +70,17 @@ fi
2022-05-17 08:39:35 +00:00
dynamic_linker="/run/host$dynamic_linker_canonical_dirname/$dynamic_linker_basename"
+unset LDFLAGS
+
# shellcheck disable=SC2086
go build \
+ -buildmode pie \
+ -compiler gc \
$tags \
- -trimpath \
2023-11-07 12:13:08 +00:00
- -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=$4" \
+ -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 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,-dynamic-linker,$dynamic_linker -Wl,-rpath,/run/host$libc_dir_canonical_dirname' -linkmode external -X github.com/containers/toolbox/pkg/version.currentVersion=$4" \
2022-05-17 08:39:35 +00:00
+ -a \
+ -v \
+ -x \
2023-11-07 12:13:08 +00:00
-o "$2/$3"
2022-05-17 08:39:35 +00:00
exit "$?"
--
2024-04-30 15:32:55 +00:00
2.43.0
2022-05-17 08:39:35 +00:00