45 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 9d5cf38e4e7a07f4850bb4cfae5dac8d6e9bb33a Mon Sep 17 00:00:00 2001
 | |
| From: Debarshi Ray <rishi@fedoraproject.org>
 | |
| Date: Mon, 29 Jun 2020 17:57:47 +0200
 | |
| Subject: [PATCH] build: Make the build flags match Fedora's %{gobuild}
 | |
| 
 | |
| The Go toolchain doesn't play well with passing compiler and linker
 | |
| flags via environment variables. The linker flags require a second
 | |
| level of quoting, which leaves the build system without a quote level
 | |
| to assign the flags to an environment variable like GOFLAGS.
 | |
| 
 | |
| This is one reason why Fedora doesn't have a RPM macro with only the
 | |
| flags. The %{gobuild} RPM macro includes the entire 'go build ...'
 | |
| invocation.
 | |
| 
 | |
| The Go toolchain also doesn't like the LDFLAGS environment variable as
 | |
| exported by Fedora's %{meson} RPM macro.
 | |
| 
 | |
| Note that these flags are meant for every CPU architecture other than
 | |
| PPC64, and should be kept updated to match Fedora's Go guidelines. Use
 | |
| 'rpm --eval "%{gobuild}"' to expand the %{gobuild} macro.
 | |
| 
 | |
| For some reason, when built on Koji, the final binary gets created as
 | |
| ../src/src instead of ../src/toolbox, but it doesn't happen when
 | |
| building locally with 'rpmbuild -ba ...'. Hence it's necessary to
 | |
| explicitly specify the name of the output binary.
 | |
| ---
 | |
|  src/go-build-wrapper | 3 ++-
 | |
|  1 file changed, 2 insertions(+), 1 deletion(-)
 | |
| 
 | |
| diff --git a/src/go-build-wrapper b/src/go-build-wrapper
 | |
| index e05b629755b0..a0caf628435a 100755
 | |
| --- a/src/go-build-wrapper
 | |
| +++ b/src/go-build-wrapper
 | |
| @@ -27,5 +27,6 @@ if ! cd "$1"; then
 | |
|      exit 1
 | |
|  fi
 | |
|  
 | |
| -go build -ldflags "-X github.com/containers/toolbox/pkg/version.currentVersion=$3" -o "$2"
 | |
| +unset LDFLAGS
 | |
| +go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} -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 ' -X github.com/containers/toolbox/pkg/version.currentVersion=$3" -a -v -x -o "$2/toolbox"
 | |
|  exit "$?"
 | |
| -- 
 | |
| 2.25.4
 | |
| 
 |