Bug#43787: consensus on debug (-g) policy
retitle 43787 [AMENDMENT 05/09/1999] Compiling with debugging symbols
I would prefer this version (which is the one discussed, and
which has a blurb for a specific package removed). Arguably, this is
the version on which a consensus was achieved.
Additionally, the paragraph removed had commentary on the
current shortcomings of the specific package under consideration,
which does not belong i technical policy either.
If people think that a blurb for any specific helper package
should be included in the technical policy (which I think is a bad
idea), they can come up with an independent proposal to add such a
We deprecate the old method, but let it be still legal.
CC = gcc
- CFLAGS = -O2 -g -Wall # sane warning options vary between programs
+ # sane warning options vary between programs
+ CFLAGS = -O2 -Wall
+ ifneq (,$(findstring $(DEB_BUILD_OPTIONS),DEBUG Debug debug))
+ CFLAGS += -g
+ INSTALL_FLAGS= -s
LDFLAGS = # none
- install -s # (or use strip on the files in debian/tmp)
+ install $(INSTALL_FLAGS) #
The `-g' flag is useful on compilation so that you have available a
full set of debugging symbols in your built source tree, in case
anyone should file a bug report involving (for example) a core dump.
+ It is acceptable, but deprecated, to always have -g in
+ ``CFLAGS'', and use ``install -s'' to install binaries or use
+ ``strip'' on the binaries in debian/tmp, but that make it
+ hard to create a debuggable debian package, and increase
+ build time for all builds, since debugging information is
+ created and then stripped away. The preferred method is to
+ use an environment variable DEB_BUILD_OPTIONS, which, if it
+ contains `debug', would cause compilation to be done with -g. The
+ resulting binaries in your package will then contain the full
+ set of debugging symbols (remember not to call ``install -s''
+ or ``strip'' on the binaries afterwards).
+ The DEB_BUILD_OPTIONS var will also let us later add other options in
+ a fairly clean way.
+ Additionally, (and optionally) you may also provide a target
+ `build-debug' in debian/rules which has the same effect as
+ setting DEB_BUILD_OPTIONS to contain `debug'. This can be done
+ quite simply, with the following lines:
+ build-debug: DEB_BUILD_OPTIONS+=debug
+ build-debug: build
The most merciful thing in the world ... is the inability of the
human mind to correlate all its contents. Lovecraft
Manoj Srivastava <firstname.lastname@example.org> <http://www.debian.org/%7Esrivasta/>
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05 CC 2D 27 12 1D F5 E8 6E