Your message dated Sun, 21 Jun 2009 17:47:41 +0000
with message-id <[email protected]>
and subject line Bug#524378: fixed in make-dfsg 3.81-6
has caused the Debian Bug report #524378,
regarding make: corner cases in 'override' logic for variables
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
524378: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524378
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: make
Version: 3.81-5
Severity: minor
Hi,
I ran into some odd behaviour yesterday thanks to a bug in one of my
makefiles, but this seems to have raised some questions about how make
actually should behave in that case. The initial problem was that a
rule was (inadvertantly) being composed something like this:
target: override FOO += bar
target: FOO += baz
Manoj and I discussed this on IRC, and he expressed the opinion that
it was intuitive and correct for all normal assignments after an
override to be ignored (as if that variable really was assigned on
the command line, even if it isn't). This isn't documented as such,
but I don't really disagree with that as being a fairly reasonable
interpretation -- and indeed in my case, the missing override on the
second line _was_ an accident and a bug in that makefile.
I do however have a couple of examples to share that don't behave
according to that interpretation, and which may be of interest (:
In this case, the target specific override appears to be ignored
completely if the variable is passed on the command line ...
override FOO += 1
FOO += 2
a: override BAR += 11
a: BAR += 12
a:
echo "got FOO = $(FOO), BAR = $(BAR)"
$ make -f a.mk
got FOO = 1, BAR = 11
$ make -f a.mk FOO=3 BAR=13
got FOO = 3 1, BAR = 13
This one is even more interesting, the second normal assignment of
BAR succeeds after the override, though the first does not:
override FOO += 1
FOO += 2
a: override BAR += 11
a: BAR += 12
a: BAR += zomg!
a:
@echo "got FOO = $(FOO), BAR = $(BAR)"
$ make -f a.mk
got FOO = 1, BAR = 11 zomg!
$ make -f a.mk FOO=3 BAR=13
got FOO = 3 1, BAR = 13
I don't really have a strong opinion as to how this should be resolved,
empirically the only reasonable assumption I can make at present is that
mixing overrides with normal assignments results in undefined behaviour,
and it wouldn't seem unreasonable to me to formally declare that as such.
OTOH maybe this reveals a glitch in the internal logic somewhere that
should be looked into. For that reason I thought this worth sharing.
Feel free to close it once any questions it raises for you guys are
resolved to your satisfaction.
Cheers,
Ron
-- System Information:
Debian Release: 5.0
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--- End Message ---
--- Begin Message ---
Source: make-dfsg
Source-Version: 3.81-6
We believe that the bug you reported is fixed in the latest version of
make-dfsg, which is due to be installed in the Debian FTP archive:
make-dfsg_3.81-6.diff.gz
to pool/main/m/make-dfsg/make-dfsg_3.81-6.diff.gz
make-dfsg_3.81-6.dsc
to pool/main/m/make-dfsg/make-dfsg_3.81-6.dsc
make_3.81-6_amd64.deb
to pool/main/m/make-dfsg/make_3.81-6_amd64.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Manoj Srivastava <[email protected]> (supplier of updated make-dfsg package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160
Format: 1.8
Date: Sun, 21 Jun 2009 11:40:43 -0500
Source: make-dfsg
Binary: make
Architecture: source amd64
Version: 3.81-6
Distribution: unstable
Urgency: low
Maintainer: Manoj Srivastava <[email protected]>
Changed-By: Manoj Srivastava <[email protected]>
Description:
make - An utility for Directing compilation.
Closes: 508456 524378 524378 533681
Changes:
make-dfsg (3.81-6) unstable; urgency=low
.
* [debian:8ea2843]: [make-dfsg]: Update package description
Update and trim the package description.
Bug fix: "improving the package description", thanks to Justin B Rye
(Closes: #508456).
* [debian:586087b]: [make-dfsg]: Use autoreconf to refresh the build system.
Bug fix: "FTBFS: Outdated config.{sub,guess}", thanks to Bradley Smith
(Closes: #533681).
* [4ae7fd6]: [topic--override-fix]: Fix override behaviour discrepancies
target specific override appears to be ignored completely if the
variable is passed on the command line. Closes: 524378
Bug fix: "corner cases in 'override' logic for variables",
thanks to Ron (Closes: #524378).
Checksums-Sha1:
2d70f61b5efaf41f6b0bafb4a1df8e278802c9e2 1174 make-dfsg_3.81-6.dsc
5452ac31c3be1c21799f929786163db196dbf94c 341705 make-dfsg_3.81-6.diff.gz
b6cdeed43c5d78512f8a8a07064e87602e20cb1e 404634 make_3.81-6_amd64.deb
Checksums-Sha256:
08740152fa6a88412f42301cfd08aef5264f7ba1fb18c63370fa672d2ef56f13 1174
make-dfsg_3.81-6.dsc
598c160293df9a42d48a1e81447203195a501e7b7d37b05b59b6e9049db1453d 341705
make-dfsg_3.81-6.diff.gz
31f11811022586e94a1b9cf75593befbc2b0ec7c5dcf02ee8bcd3c32409a0bcd 404634
make_3.81-6_amd64.deb
Files:
b2a398e5f6ba5f33a48c3fbe6fd45a50 1174 devel standard make-dfsg_3.81-6.dsc
74dabc417c7367248588e6edacd4d436 341705 devel standard make-dfsg_3.81-6.diff.gz
a956f3c84c32c6e62593833ecf584cbf 404634 devel standard make_3.81-6_amd64.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEAREDAAYFAko+br0ACgkQIbrau78kQkyycgCePY2S/p3I7W5r+l0iBYkrDG2Y
57kAoIxZKMhSLTBQTmrcHoP0SCjnNqO+
=pxk+
-----END PGP SIGNATURE-----
--- End Message ---