Blame SOURCES/update-default-gobuild-args.patch

d018f5
From c05378a9d5d7ceb0fef2a915df9b88750685a3a9 Mon Sep 17 00:00:00 2001
d018f5
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
d018f5
Date: Thu, 24 Nov 2022 15:05:06 +0100
d018f5
Subject: [PATCH] Update default gobuild args
d018f5
d018f5
---
d018f5
 rpm/macros.d/macros.go-compilers-golang | 17 ++++++++++++-----
d018f5
 1 file changed, 12 insertions(+), 5 deletions(-)
d018f5
92f5a5
diff --git a/rpm/macros.d/macros.go-compilers-golang b/rpm/macros.d/macros.go-compilers-golang
d018f5
index 74428a3..8cee8e2 100644
92f5a5
--- a/rpm/macros.d/macros.go-compilers-golang
92f5a5
+++ b/rpm/macros.d/macros.go-compilers-golang
92f5a5
@@ -20,6 +20,8 @@
92f5a5
 #
92f5a5
 # SPDX-License-Identifier: GPL-3.0-or-later
92f5a5
 
92f5a5
+%gocompilerflags -buildmode pie -compiler gc
92f5a5
+
92f5a5
 # This *must* be all on one line, as it will be used in shell
92f5a5
 # assignments. eg
92f5a5
 #
d018f5
@@ -29,13 +31,16 @@
92f5a5
 #
92f5a5
 #    %make GOBUILDFLAGS="%gobuildflags"
92f5a5
 #
d018f5
-%gobuildflags() %{expand:%{gocompilerflags} -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} %{?currentgoldflags} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -compressdwarf=false -linkmode=external -extldflags '%{build_ldflags} %{?__golang_extldflags}'" -a -v -x}
d018f5
+%gobuildflags() %{expand:%{gocompilerflags} -tags=\\"rpm_crashtraceback ${BUILDTAGS:-} libtrust_openssl\\" -ldflags \\"-linkmode=external -compressdwarf=false ${LDFLAGS:-} %{?currentgoldflags} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '%__global_ldflags %{?__golang_extldflags}'\\" -a -v -x}
d018f5
+%_gobuildflags_internal() %{expand:%{gocompilerflags} -tags="rpm_crashtraceback ${BUILDTAGS:-} libtrust_openssl" -ldflags "-linkmode=external -compressdwarf=false ${LDFLAGS:-} %{?currentgoldflags} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '%__global_ldflags %{?__golang_extldflags}'" -a -v -x}
92f5a5
 
92f5a5
 # Turn off Go modules
92f5a5
 %gomodulesmode GO111MODULE=off
92f5a5
 
92f5a5
 # Define commands for building
92f5a5
 # BUILD_ID can be generated for golang build no matter of debuginfo
92f5a5
+%_gobuild_cmd CGO_CPPFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-all" go build %{_gobuildflags_internal}
92f5a5
+%gobuild_compat_el8(o:) %{expand:%{_gobuild_cmd} %{?**};}
92f5a5
 %gobuild(o:) %{expand:
d018f5
   # https://pagure.io/go-rpm-macros/pull-request/38
d018f5
   # Most of the default LDFLAGS for Fedora are not supported so we don't want
d018f5
@@ -44,14 +49,16 @@
92f5a5
   # https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12
92f5a5
   %global _dwz_low_mem_die_limit 0
92f5a5
   %{?gobuilddir:GOPATH="%{gobuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}"} %{?gomodulesmode} \\
d018f5
-  go build %{gobuildflags} %{?**};
92f5a5
+  %{_gobuild_cmd} %{?**};
92f5a5
 }
92f5a5
 ${workroot}${GOPATH:+:${GOPATH}}
92f5a5
 
92f5a5
 # Define commands for testing
92f5a5
 %gotestflags      %{gocompilerflags}
d018f5
 %gotestextldflags %{build_ldflags} %{?__golang_extldflags}
d018f5
-%gotest() %{expand:
d018f5
-  %undefine _auto_set_build_flags
d018f5
-  %{?gomodulesmode} go test %{gotestflags} -ldflags "${LDFLAGS:-} %{?currentgoldflags} -extldflags '%{gotestextldflags}'" %{?**};
d018f5
+%_gotest_cmd %{?gomodulesmode} go test %{gotestflags} -ldflags "${LDFLAGS:-} %{?currentgoldflags} -extldflags '%{gotestextldflags}'"
92f5a5
+%gotest_compat_el8(o:) %{expand:%{_gotest_cmd} %{?**};}
92f5a5
+%gotest(o:) %{expand:
92f5a5
+  %{?gobuilddir:GOPATH="%{gobuilddir}:${GOPATH:+${GOPATH}:}%{?gopath}"} %{?gomodulesmode} \\
92f5a5
+  %{_gotest_cmd} %{?**};
d018f5
 }
d018f5
-- 
d018f5
2.38.1
d018f5