Message ID | 20190124081834.17534-1-christian@paral.in |
---|---|
State | Not Applicable |
Headers | show |
Series | [1/1] pkg-golang: add strip, asmflags, gcflags support | expand |
On Thu, Jan 24, 2019 at 12:18:34AM -0800, Christian Stewart wrote: > Adding package-level variables to set asmflags, gcflags. > > Conditionally sets ldflags -s -w when buildroot is configured to strip binaries. > > Signed-off-by: Christian Stewart <christian@paral.in> > --- > package/pkg-golang.mk | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/package/pkg-golang.mk b/package/pkg-golang.mk > index 4f2c7e77e1..79ebec94be 100644 > --- a/package/pkg-golang.mk > +++ b/package/pkg-golang.mk > @@ -55,7 +55,15 @@ ifeq ($(BR2_STATIC_LIBS),y) > $(2)_LDFLAGS += -extldflags '-static' > endif > > +ifeq ($(BR2_STRIP_strip),y) > +$(2)_LDFLAGS += -s -w > +endif > + > +$(2)_ASMFLAGS += -trimpath=$(BUILD_DIR) > +$(2)_GCFLAGS += -trimpath=$(BUILD_DIR) I see that you added trimpath here, which is useful for removing the build path from the binaries, (and having reproducible builds), but it isn't mentionned in the commit message. As a sidenote, it seems that this option is broken when building a package with go modules: https://github.com/golang/go/issues/28008 Regards, Anisse
Anisse, Anisse Astier <anisse@astier.eu> writes: > I see that you added trimpath here, which is useful for removing the > build path from the binaries, (and having reproducible builds), but it > isn't mentionned in the commit message. Yes, I had originally intended for this to be a separate commit, but the functionality works as intended and I am happy to keep it as part of this commmit. > As a sidenote, it seems that this option is broken when building a > package with go modules: > https://github.com/golang/go/issues/28008 There will never be a Buildroot core package with Go modules in use nor enabled, as this would imply a separate network resource fetching mechanism from the core Buildroot tarball download + hash cycle. Even so, the option would then not break the build, but would merely fail to trim the paths in the output binary. Best, Christian
diff --git a/package/pkg-golang.mk b/package/pkg-golang.mk index 4f2c7e77e1..79ebec94be 100644 --- a/package/pkg-golang.mk +++ b/package/pkg-golang.mk @@ -55,7 +55,15 @@ ifeq ($(BR2_STATIC_LIBS),y) $(2)_LDFLAGS += -extldflags '-static' endif +ifeq ($(BR2_STRIP_strip),y) +$(2)_LDFLAGS += -s -w +endif + +$(2)_ASMFLAGS += -trimpath=$(BUILD_DIR) +$(2)_GCFLAGS += -trimpath=$(BUILD_DIR) $(2)_BUILD_OPTS += \ + -asmflags "$$($(2)_ASMFLAGS)" \ + -gcflags "$$($(2)_GCFLAGS)" \ -ldflags "$$($(2)_LDFLAGS)" \ -tags "$$($(2)_TAGS)" \ -p $(PARALLEL_JOBS)
Adding package-level variables to set asmflags, gcflags. Conditionally sets ldflags -s -w when buildroot is configured to strip binaries. Signed-off-by: Christian Stewart <christian@paral.in> --- package/pkg-golang.mk | 8 ++++++++ 1 file changed, 8 insertions(+)