On Wed, Feb 28, 2024 at 09:12:04AM +0000, Stuart Henderson wrote:
> On 2024/02/27 17:53, Igor Zornik wrote:
> > Hello,
> > 
> > How are default LDFLAGS for Go ports applied considering they are set
> > after they're included into the build command? I don't see those options
> > in the output when running make and the resulting binary is in its
> > standard size. However when I relocate the flag settings into the upper
> > part of the script as in the provided diff, it works as expected and I
> > get greeted with a shrunk binary. I think the default settings are
> > skipped on the official build server too, because Go binaries on mirrors
> > are similarly large.
> > 
> > Could anyone clue me in if this behavior is still correct and I'm just
> > misunderstanding something?
> 
> I think your diff is correct.
> 
> In ports we're fairly used to being able to add to variables at various
> points in the Makefile and have them still take effect because they're
> often not referenced until bsd.port.mk or bsd.port.arch.mk is included,
> but obviously that's not the case here, so I think this was a bug
> introduced when MODGO_LDFLAGS was introduced and -s -w was split
> off from MODGO_FLAGS.

I agree.

> Unless there are objections I'll commit it, with a _MODGO_SYSTEM_VERSION
> bump to make sure that users get updated to new package versions when
> they use pkg_add -u (to avoid bumping REVISION separately in all go
> ports).

ok tb

> 
> > Index: go.port.mk
> > ===================================================================
> > RCS file: /cvs/ports/lang/go/go.port.mk,v
> > retrieving revision 1.66
> > diff -u -p -r1.66 go.port.mk
> > --- go.port.mk      21 Feb 2024 12:28:57 -0000      1.66
> > +++ go.port.mk      27 Feb 2024 15:23:27 -0000
> > @@ -58,6 +58,11 @@ MODGO_LIST_CMD = ${MODGO_CMD} list ${MOD
> >  MODGO_TEST_CMD =   ${MODGO_CMD} test ${MODGO_FLAGS} ${MODGO_TEST_FLAGS}
> >  MODGO_BINDIR ?=            bin
> > +.if empty(DEBUG)
> > +# by default omit symbol table, debug information and DWARF symbol table
> > +MODGO_LDFLAGS +=   -s -w
> > +.endif
> > +
> >  .if ! empty(MODGO_LDFLAGS)
> >  MODGO_BUILD_CMD += -ldflags="${MODGO_LDFLAGS}"
> >  MODGO_LIST_CMD +=  -ldflags="${MODGO_LDFLAGS}"
> > @@ -111,10 +116,7 @@ CATEGORIES +=          lang/go
> >  MODGO_BUILD_TARGET =       ${MODGO_BUILD_CMD} ${ALL_TARGET}
> >  MODGO_FLAGS +=             -v -buildvcs=false -p=${MAKE_JOBS}
> > -.if empty(DEBUG)
> > -# by default omit symbol table, debug information and DWARF symbol table
> > -MODGO_LDFLAGS +=   -s -w
> > -.else
> > +.if ! empty(DEBUG)
> >  MODGO_FLAGS +=             -x
> >  .endif
> > 
> 

Reply via email to