Bug 226382 - Add a section about respecting WITH_DEBUG to the Chapter 13. (Dos and Don'ts)
Summary: Add a section about respecting WITH_DEBUG to the Chapter 13. (Dos and Don'ts)
Status: Closed FIXED
Alias: None
Product: Documentation
Classification: Unclassified
Component: Documentation (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-doc (Nobody)
Depends on:
Reported: 2018-03-05 23:20 UTC by Mateusz Piotrowski
Modified: 2018-04-12 07:34 UTC (History)
0 users

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Mateusz Piotrowski freebsd_committer 2018-03-05 23:20:27 UTC
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.
Comment 1 Mathieu Arnold freebsd_committer 2018-03-05 23:32:00 UTC
Using STRIP_CMD works just fine WITH_DEBUG.
Comment 2 Mateusz Piotrowski freebsd_committer 2018-03-05 23:43:42 UTC
(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.
Comment 3 commit-hook freebsd_committer 2018-04-12 07:34:56 UTC
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

  Add a note about WITH_DEBUG wrt stripping elf files.

  PR:		226382
  Reported by:	Mateusz Piotrowski
  Sponsored by:	Absolight