Package: debhelper Version: 9.20120523 Severity: wishlist The attached test project demonstrates a lack in dh_auto_build for Makefile projects: the Debian-specified build flags are not necessarily communicated to the compiler. Debhelper should override CPPFLAGS and CFLAGS on the make command line.
It is, I think, quite common for Makefile projects to define defaults for
CFLAGS and sometimes even CPPFLAGS in their Makefiles. However, this means
that the corresponding environment variables (which debhelper sets) are
ignored. The correct way to override Makefile-specified defaults is to
pass the variables on the make command line. Compare:
$ make CFLAGS="`dpkg-buildflags --get CFLAGS`"
gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat
-Werror=format-security -c -o testhello.o testhello.c
gcc testhello.o -o testhello
to
$ make
gcc -g -c -o testhello.o testhello.c
gcc testhello.o -o testhello
(Both in the test project's toplevel directory.)
The current debhelper manner of passing CFLAGS is ignored by such projects:
$ DH_VERBOSE=1 debian/rules build
dh build
dh_testdir
dh_auto_configure
dh_auto_build
make -j1
make[1]: Siirrytään hakemistoon "/home/ajk/scratch/testhello-0.1"
gcc -g -D_FORTIFY_SOURCE=2 -c -o testhello.o testhello.c
gcc -Wl,-z,relro testhello.o -o testhello
make[1]: Poistutaan hakemistosta "/home/ajk/scratch/testhello-0.1"
dh_auto_test
Notice how CPPFLAGS and LDFLAGS are honored but CFLAGS is ignored.
This currently affects dctrl-tools, but I'm going to work around the problem
in my next upload.
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.4.0-ibid-1 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=fi_FI.UTF-8, LC_CTYPE=fi_FI.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages debhelper depends on:
ii binutils 2.22-6.1
ii dpkg 1.16.3
ii dpkg-dev 1.16.3
ii file 5.11-1
ii html2text 1.3.2a-15
ii man-db 2.6.1-2
ii perl 5.14.2-11
ii po-debconf 1.0.16+nmu2
debhelper recommends no packages.
Versions of packages debhelper suggests:
pn dh-make <none>
-- no debconf information
testhello_0.1.tar.gz
Description: GNU Zip compressed data
Format: 3.0 (native) Source: testhello Binary: testhello Architecture: any Version: 0.1 Maintainer: Antti-Juhani Kaijanaho <[email protected]> Standards-Version: 3.9.3 Build-Depends: debhelper (>= 9) Package-List: testhello deb utils optional Checksums-Sha1: b9420cb51ab314040717612097281b2a37b94ad4 1203 testhello_0.1.tar.gz Checksums-Sha256: 51ba8af423824afdcb73f48eb52903459720f513ef28e67d115f4772471016f6 1203 testhello_0.1.tar.gz Files: e265f010979c7b0acabd767eb10adb58 1203 testhello_0.1.tar.gz

