This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgcj/24289] New: libjava fails to build if GNU make 3.81 betas are used (caused by feature addition, not bug, in 3.81beta --> will still happen with 3.81 final)
- From: "bero at arklinux dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Oct 2005 19:31:08 -0000
- Subject: [Bug libgcj/24289] New: libjava fails to build if GNU make 3.81 betas are used (caused by feature addition, not bug, in 3.81beta --> will still happen with 3.81 final)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The problem is this new feature in make:
* WARNING: Backward-incompatibility!
GNU make now implements a generic "second expansion" feature on the
prerequisites of both explicit and implicit (pattern) rules. After
all rules have been parsed the prerequisites are expanded again, this
time with all the automatic variables in scope. This means that in
addition to using standard SysV $$@ in prerequisites lists, you can
also use complex functions such as $$(notdir $$@) etc. This behavior
applies to implicit rules, as well, where the second expansion occurs
after the rule is matched. However, this means that you need to
double-quote any "$" in your filenames; instead of "foo: boo$$bar" you
now must write "foo: foo$$$$bar".
The presence of this feature can be detected using
ifneq (,$(filter second-expansion,$(.FEATURES)))
(not sure how compatible that is with non-GNU makes though)
--
Summary: libjava fails to build if GNU make 3.81 betas are used
(caused by feature addition, not bug, in 3.81beta -->
will still happen with 3.81 final)
Product: gcc
Version: 4.0.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bero at arklinux dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24289