control: tag -1 +patch Hello,
On Fri 28 Sep 2018 at 05:38AM GMT, Niels Thykier wrote:
> * We now have auto-generated dbgsym packages by dh_strip (which were
> just an idea when Bill wrote that answer).
>
> * Policy mentions "--remove-section=.comment --remove-section=.note" in
> a footnote as a "You might also want to use ...".
>
> * Policy section 10.1 implies that "INSTALL = install -s" is a useful
> way of stripping binaries (both in text and examples). Besides not
> covering the .comment + .note sections it also neuters dh_strip's
> ability to create dbgsym packages.
>
>
> I think we should update the policy to say that you should use
> "--strip-unneeded --remove-section=.comment --remove-section=.note" and
> maybe recommend delegating that task (where possible) to dh_strip as it
> provide dbgsym packages.
Thank you for following up.
Here is a minimal patch, for which I am seeking seconds. I didn't
include a recommendation to use dh_strip because we generally keep such
recommendations in footnotes rather than the text of Policy, and we are
trying to reduce the number of footnotes -- but I don't mind adding it
if others think it would be a good idea (and it wouldn't need
seconding).
diff --git a/policy/ch-files.rst b/policy/ch-files.rst
index 21c4c37..7106afe 100644
--- a/policy/ch-files.rst
+++ b/policy/ch-files.rst
@@ -48,12 +48,20 @@ used:
CC = gcc
CFLAGS = -O2 -g -Wall # sane warning options vary between programs
LDFLAGS = # none
- INSTALL = install -s # (or use strip on the files in debian/tmp)
-Note that by default all installed binaries should be stripped, either
-by using the ``-s`` flag to ``install``, or by calling ``strip`` on the
-binaries after they have been copied into ``debian/tmp`` but before the
-tree is made into a package.
+By default all installed binaries should be stripped by calling
+
+::
+
+ strip --strip-unneeded --remove-section=.comment --remove-section=.note
binaries
+
+on the binaries after they have been copied into ``debian/tmp`` but
+before the tree is made into a package.
+
+It is not recommended to strip binaries by passing the ``-s`` flag to
+``install``, because this fails to remove .comment and .note sections,
+and also prevents the automatic creation of dbgsym binary packages by
+tools like ``dh_strip``.
Although binaries in the build tree should be compiled with debugging
information by default, it can often be difficult to debug programs if
@@ -114,7 +122,7 @@ All installed shared libraries should be stripped with
::
- strip --strip-unneeded your-lib
+ strip --strip-unneeded --remove-section=.comment --remove-section=.note
your-lib
(The option ``--strip-unneeded`` makes ``strip`` remove only the symbols
which aren't needed for relocation processing.) Shared libraries can
@@ -123,7 +131,8 @@ linking are in a separate part of the ELF object file. [#]_
Note that under some circumstances it may be useful to install a shared
library unstripped, for example when building a separate package to
-support debugging.
+support debugging. The debhelper `dh_strip`` tool can create such
+packages automatically.
Shared object files (often ``.so`` files) that are not public
libraries, that is, they are not meant to be linked to by third party
@@ -741,9 +750,8 @@ restricted to ASCII when it is possible to do so.
shared library, like ``mklibs`` does in the Debian installer project.
.. [#]
- You might also want to use the options ``--remove-section=.comment``
- and ``--remove-section=.note`` on both shared libraries and
- executables, and ``--strip-debug`` on static libraries.
+ You might also want to use the option ``--strip-debug`` on static
+ libraries.
.. [#]
A common example are the so-called "plug-ins", internal shared
=====
To obtain a side-by-side diff:
% git clone salsa.debian.org:dbnpolicy/policy.git debian-policy
% cd debian-policy
% git difftool -y -x icdiff master..origin/bug188731-spwhitton
Alternatively, visit
https://salsa.debian.org/dbnpolicy/policy/commit/3cc86484767ac0aead9b7466c074ade5021ef225?view=parallel
--
Sean Whitton
signature.asc
Description: PGP signature

