[Buildroot] Make 3.82 does behave differently than make 3.81 for sure, but ...
Sam Ravnborg
sam at ravnborg.org
Mon Aug 30 16:31:53 UTC 2010
>
> If you look at this thread from the LKML:
>
> http://comments.gmane.org/gmane.linux.kernel/1022928
>
> ... starting at the line "BTW seems like 2.6.27 no more combatible with
> GNU Make 3.82:" you will see that there is definitely something
> different between older makes and 3.82 (since I know 2.6.27 compiles
> with many different make versions). My guess is there is a bug in make
> 3.82, but this is only conjecture, since I cannot be sure the make team
> didn't intend for the change (it may be a bugfix for a long standing bug)
>
> In any case, users of make 3.82 can expect to grapple with this, thus
> the desire to fully understand what is really gong on here.
>
>
> Here is the proof that make 3.82 acts differently:
>
> [jdines at hydra linux-2.6 (make-fix)] git checkout -b
> make-3.82-shoukld-fail v2.6.26
> Checking out files: 100% (21206/21206), done.
> Switched to a new branch 'make-3.82-shoukld-fail'
> [jdines at hydra linux-2.6 (make-3.82-shoukld-fail)] make clean && make
> Makefile:1550: *** mixed implicit and normal rules. Stop.
make 3.81 accept the following:
foo foo%: bar
command
With make 3.82 you need to split this up as:
foo: bar
command
foo%: bar
command
And we use the "foo foo%" construct in the top-level Makefile of the kernel.
The stable team have now backported a fix for this and it should apply
to 2.6.26 too - or at least simple to do manually.
In any recent kernels this is fixed long time ago (except for powerpc
where we fixed this only recently).
I hope this helps.
Sam
More information about the buildroot
mailing list