During the development of the new www/quark port, which is now pending to be reviewed and committed, I had to decided how I want to strip the final binary. On the one hand, the upstream Makefile adds -s to LDFLAGS, which according to ld(1) mean "omit all symbol information from the output file". On the other hand, chapter 5.16.2. "Stripping Binaries and Shared Libraries" suggests to use STRIP_CMD in post-install. As long as our only goal is to strip the final binary, both approaches are fine and the workflow should look like this (assuming that we are not dealing with build systems like CMake and Autotools, which probably do all the magic on their own): 1. If the upstream already strips binaries then we're done. 2. Add STRIP_CMD to post-install. This is already described in the handbook and used in many ports. Also, it is an easily recognizable pattern to new ports developers. This is why the STRIP_CMD approach is better than adding "LDFLAGS+=-s" to portname/Makefile. It is not so easy however, because we would like to respect WITH_DEBUG. It would be nice to have a reminder in the handbook that the binaries should not be striped out of their debug symbols when WITH_DEBUG is set.
Using STRIP_CMD works just fine WITH_DEBUG.
(In reply to Mathieu Arnold from comment #1) So if upstream defines "LDFLAGS = -s" I should patch it and just use STRIP_CMD, right? That makes sense. Thanks :) Still, I believe that we would benefit from a section about respecting WITH_DEBUG.
A commit references this bug: Author: mat Date: Thu Apr 12 07:34:46 UTC 2018 New revision: 51550 URL: https://svnweb.freebsd.org/changeset/doc/51550 Log: Add a note about WITH_DEBUG wrt stripping elf files. PR: 226382 Reported by: Mateusz Piotrowski Sponsored by: Absolight Changes: head/en_US.ISO8859-1/books/porters-handbook/makefiles/chapter.xml