This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]