Browse Source

golang: Fix ldflags when GO_PKG_LDFLAGS is set

go build/install supports multiple -ldflags arguments, but they are not
combined; for each package, the latest match on the command line is
used.[1]

Previously, the main executable would not be affected by the default
ldflags if GO_PKG_LDFLAGS or GO_PKG_LDFLAGS_X were set. (The default
ldflags instructs go to use the external linker.)

This fixes golang-package.mk so that the default ldflags take effect in
all cases.

[1]: https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
lilik-openwrt-22.03
Jeffery To 5 years ago
parent
commit
4827bc7509
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      lang/golang/golang-package.mk

+ 3
- 3
lang/golang/golang-package.mk View File

@ -275,7 +275,7 @@ define GoPackage/Build/Compile
mips|mipsle) installsuffix="$(GO_MIPS)" ;; \ mips|mipsle) installsuffix="$(GO_MIPS)" ;; \
mips64|mips64le) installsuffix="$(GO_MIPS64)" ;; \ mips64|mips64le) installsuffix="$(GO_MIPS64)" ;; \
esac ; \ esac ; \
ldflags="all=-linkmode external -extldflags '$(TARGET_LDFLAGS)'" ; \
ldflags="-linkmode external -extldflags '$(TARGET_LDFLAGS)'" ; \
pkg_gcflags="$(GO_PKG_GCFLAGS)" ; \ pkg_gcflags="$(GO_PKG_GCFLAGS)" ; \
pkg_ldflags="$(GO_PKG_LDFLAGS)" ; \ pkg_ldflags="$(GO_PKG_LDFLAGS)" ; \
for def in $(GO_PKG_LDFLAGS_X); do \ for def in $(GO_PKG_LDFLAGS_X); do \
@ -284,10 +284,10 @@ define GoPackage/Build/Compile
go install \ go install \
$$$${installsuffix:+-installsuffix $$$$installsuffix} \ $$$${installsuffix:+-installsuffix $$$$installsuffix} \
-trimpath \ -trimpath \
-ldflags "$$$$ldflags" \
-ldflags "all=$$$$ldflags" \
-v \ -v \
$$$${pkg_gcflags:+-gcflags "$$$$pkg_gcflags"} \ $$$${pkg_gcflags:+-gcflags "$$$$pkg_gcflags"} \
$$$${pkg_ldflags:+-ldflags "$$$$pkg_ldflags"} \
$$$${pkg_ldflags:+-ldflags "$$$$pkg_ldflags $$$$ldflags"} \
$(1) \ $(1) \
$$$$targets ; \ $$$$targets ; \
retval=$$$$? ; \ retval=$$$$? ; \


Loading…
Cancel
Save