Mon 10 Aug 2009 09:02:16 PM UTC, original submission:
This change
2006-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
By default compile everything with debug=yes. To get the
traditional behaviour, please use 'make debug=no'.
* common.make (debug): Turn on debug by default.
and the resulting comment and behavior:
# Enable debug by default. This is according to the GNU Coding
# Standards.
ifneq ($(debug), no)
debug = yes
endif
ifeq ($(debug), yes)
# This is filtered out as it compromised debugging
OPTFLAG := $(filter-out -O%, $(OPTFLAG))
...
is wrong. The GNU Coding Standards require that packages should be built with debugging symbols (-g) by default, but does not go so far in agressively removing any optimization. For example, '(standards)Configuration' says:
`VARIABLE=VALUE'
...
For example, the user could issue `configure CFLAGS=-g
CXXFLAGS=-g' to build with debugging information and
without the default optimization.
For any package that uses the GNU Build System, if CFLAGS/CXXFLAGS/OBJCFLAGS/etc are not specified by the user, they are set to '-g -O2'. This is a long time tradition, and GNUstep Make behaved this way until the above change.
This is causing us grief in Debian as the Debian Policy requires all binaries to be built with -O2 (unless there is a good reason for -O3); unoptimized builds are considered a bug so we have lots of "buggy" GNUstep packages now (from a Policy perspective, at least).
|