[Buildroot] [PATCH] Fix sorting-related issue when using make 3.82

Thomas De Schampheleire patrickdepinguin+buildroot at gmail.com
Fri Aug 5 14:54:32 UTC 2011


In make 3.82, wildcards are no longer sorted. This impacts lines like:
	include package/*/*.mk

A specific scenario under which this fails: if the .mk file of an autotools-based package with FOO_AUTORECONF set to yes, happens to be included before the autoconf/autoconf.mk file, the $(AUTORECONF) variable is not yet set and autoreconfiguration fails with the following message:

>>> host-module-init-tools 3.12 Autoreconfiguring
cd /repo/tdescham/reborn/buildroot-dummy/output/build/host-module-init-tools-3.12/ &&
/bin/sh: -c: line 1: syntax error: unexpected end of file
make: *** [/repo/tdescham/reborn/buildroot-dummy/output/build/host-module-init-tools-3.12/.stamp_configured] Error 2

caused by the following statement in package/Makefile.autotools.in:
	$(Q)cd $$($$(PKG)_SRCDIR) && $(AUTORECONF) $$($$(PKG)_AUTORECONF_OPT)

This patch adds explicit sorting to the include statement in Makefile, fixing this scenario for make-3.82.

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire at gmail.com>

---

Note that I don't understand the mechanics of this failure completely: I had expected that a package named 'aaa' would still fail to autoreconfigure, even with this patch applied. However, this is not true: this patch does fix the problem with make-3.82.

diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -309,7 +309,7 @@
 include toolchain/toolchain-crosstool-ng.mk
 endif
 
-include package/*/*.mk
+include $(sort $(wildcard package/*/*.mk))
 
 include boot/common.mk
 include target/Makefile.in


More information about the buildroot mailing list