[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