help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

make3-82/linux-2.6.28 Dependencies recipe running (THIS IS A BUG)


From: John Breitenbach
Subject: make3-82/linux-2.6.28 Dependencies recipe running (THIS IS A BUG)
Date: Thu, 02 Sep 2010 17:15:43 -0400
User-agent: Thunderbird 2.0.0.21 (X11/20090310)

I've encountered a problem with building the linux kernel v2.6.28 with make-3.82. This has been building fine with version 3.81 for some time. And while attempting to diagnose the problem, I added "-p" to the make command line encountered the "THIS IS A BUG" message. This is running on a 32-bit RedHat EL5 system. Number of parallel jobs has no effect.

The original error message from building the kernel is as follows:

make[2]: *** No rule to make target `firmware/edgeport/boot.fw', needed by `__fw_modbuild'. Stop.
make[2]: *** Waiting for unfinished jobs....

Here's part of firmware/Makefile from linux v2.6.28. It contains two rules to build a .fw file, and
there IS a .SECONDEXPANSION: earlier in this Makefile:

# .HEX is also Intel HEX, but where the offset and length in each record
# is actually meaningful, because the firmware has to be loaded in a certain
# order rather than as a single binary blob. Thus, we convert them into our
# more compact binary representation of ihex records (<linux/ihex.h>)
$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
   $(call cmd,ihex2fw)

# .H16 is our own modified form of Intel HEX, with 16-bit length for records.
$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
   $(call cmd,h16tofw)

$(firmware-dirs):
   $(call cmd,mkdir)

There is an order-only dependency to create the necessary subdirectory. And while this Makefile contains a rule to make subdirectories, the "firmware-dirs" variable contains TWO trailing "/" in each of its elements.

Here's a couple more lines from firmware/Makefile which sets the firmware-dirs variable.

# Directories which we _might_ need to create, so we have a rule for them.
firmware-dirs := $(sort $(patsubst %,$(objtree)/$(obj)/%/,$(dir $(fw-external-y) $(fw-shipped-all))))

If I remove the extra slash right before the comma, the build succeeds, and the error message does not appear. I also have found that if the firmware/edgport directory exists,
the entire build succeeds.

I know I'm not giving you guys much to work with - perhaps you can spot the error in ensuring the presence of the output directory. Or perhaps I can get some advice finding the cause of the
"THIS IS A BUG" message.

John




reply via email to

[Prev in Thread] Current Thread [Next in Thread]