[Buildroot] [PATCH] prevent recursion in %_defconfig rules

Yann E. MORIN yann.morin.1998 at free.fr
Fri Jan 17 19:54:05 UTC 2014


Jérémy, All,

On 2014-01-17 19:09 +0100, Yann E. MORIN spake thusly:
> On 2014-01-17 18:52 +0100, Yann E. MORIN spake thusly:
> > On 2014-01-07 17:22 +0100, Jérémy Rosen spake thusly:
> > > Signed-off-by: Jérémy Rosen <jeremy.rosen at openwide.fr>
> > > 
> > > ---
> > > The following command, run from a clean buildroot checkout
> > > 
> > > make O=.. BR2_EXTERNAL=.. raspberrypi_defconfig
> > > 
> > > cause the following output, and makes stop :
> > > 
> > > 
> > > make: *** Pas de règle pour fabriquer la cible « /home/rosen/tmp/buildroot/
> > > configs/../configs/../configs/../configs/<lots more >/../configs/
> > > raspberrypi_defconfig », nécessaire pour « /home/rosen/tmp/buildroot/
> > > configs/../configs/../configs/<lots more>/../configs/
> > > raspberrypi_defconfig ». Arrêt.
> > > 
> > > The problem is that the buildroot makefile has two rules to generate
> > > %_defconfig: One that depends on $(TOPDIR)/configs/%_defconfig and the
> > > other one that depends on $(BR2_EXTERNAL)/configs/%_defconfig.
> > > 
> > > When one rule checks for the file, the other rule becomes an implicit rule
> > > for the dependancy causing an infinite cross-recursion.
> > > 
> > > By overriding the implicit rule, we prevent the infinite recursion.
> > 
> > This breaks defconfigs from BR2_EXTERNAL when used with an out-of-tree
> > build:
> > 
> >     make -C /path/to/buildroot              \
> >          O=/path/to/build                   \
> >          BR2_EXTERNAL=/path/to/br2.external \
> >          yem_defconfig
> >     [--SNIP--]
> >     *** Can't find default configuration "/home/ymorin/dev/buildroot/buildroot/configs/yem_defconfig"!
> 
> It even breaks BR2_EXTERNAL for in-tree builds.
> 
> Reverting that patch fixes both issues, and does not exhibit the
> reported problem.
> 
> Peter, can we just revert that patch (cset 94dd02f) for now, please?
> 
> Jérémy, can you describe your setup, so we can try to reproduce it, and
> find a proper fix?

Out of curiosity, I just installed a make-4.0 to make sure that was not
due to some idiocy of make-4.0 (since it hs changed quite a few
behaviours that were relied on from previous versions, such as the
ordering of files in $(wildcard ...) ).

But no, it works as expected, with make-3.81 and make-4.0 alike.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list