Hi, While testing a port for net/syncthing sthen@ noticed the following warnings:
00:44 < sthen> hm, there are some funny messages from that port in 'make fake' 00:45 < sthen> BFD: /usr/obj/ports/syncthing-0.12.22/fake-amd64/usr/local/bin//stVnev2l: warning: allocated section `.gosymtab' not in segment 00:45 < sthen> BFD: /usr/obj/ports/syncthing-0.12.22/fake-amd64/usr/local/bin//stVnev2l: warning: allocated section `.gnu.version_r' not in segment the cause for those errors is trying to strip a Go binary which doesn't output all expected segments. Upstream officially doesn't support stripping and it might lead to undefined behavior. Debian Bug report logs - #717172 Stripping golang binaries causes crashes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=717172 go get ... fails with SIGILL on armhf https://bugs.launchpad.net/ubuntu/+source/golang/+bug/1200255 docker: Stripping Binaries https://github.com/docker/docker/blob/2a95488f7843a773de2b541a47d9b971a635bfff/project/PACKAGERS.md#stripping-binaries relevant blog post: https://blog.filippo.io/shrink-your-go-binaries-with-this-one-weird-trick/ I went through existing go ports to see how many of them actually strip the binaries. https://gist.github.com/mulander/a0dd5d5b49ca81001628d690b70ba111 Apparently from the existing ports only sysutils/logstash/forwarder is affected. This issue was initially reported by Fritjof Bornebusch (thanks!) in July last year: http://marc.info/?l=openbsd-ports&m=143766040011892&w=2 I'm inlining a patch for sysutils/logstash/forwarder replacing the usage of INSTALL_PROGRAM with INSTALL_SCRIPT and a comment informing why this choice is made. Any OK's? Index: Makefile =================================================================== RCS file: /cvs/ports/sysutils/logstash/forwarder/Makefile,v retrieving revision 1.7 diff -u -p -r1.7 Makefile --- Makefile 6 Jan 2016 20:02:19 -0000 1.7 +++ Makefile 20 Apr 2016 23:37:17 -0000 @@ -5,7 +5,7 @@ COMMENT= collect logs locally in prepara GH_ACCOUNT= elastic GH_PROJECT= logstash-forwarder GH_TAGNAME= v0.4.0 -REVISION= 1 +REVISION= 2 MODULES= lang/go @@ -16,8 +16,9 @@ WANTLIB += c pthread pre-configure: ${SUBST_CMD} ${WRKSRC}/logstash-forwarder.conf.example +# Use INSTALL_SCRIPT to prevent stripping go binaries do-install: - ${INSTALL_PROGRAM} ${MODGO_WORKSPACE}/bin/logstash-forwarder \ + ${INSTALL_SCRIPT} ${MODGO_WORKSPACE}/bin/logstash-forwarder \ ${PREFIX}/sbin/ ${INSTALL_DATA_DIR} ${PREFIX}/share/{doc,examples}/logstash-forwarder/ ${INSTALL_DATA} ${WRKSRC}/README.md \