[U-Boot] nand spl build with wrong CONFIG_SYS_TEXT_BASE
Scott Wood
scottwood at freescale.com
Wed Nov 10 22:03:07 CET 2010
On Tue, 9 Nov 2010 23:22:26 +0100
Wolfgang Denk <wd at denx.de> wrote:
> Dear Scott Wood,
>
> In message <20101109155225.183a3061 at udp111988uds.am.freescale.net> you wrote:
> >
> > What, semantically, is the difference between the CONFIG_SYS_TEXT_BASE
> > and CONFIG_SYS_MONITOR_BASE? Just that one is used from linker
>
> Nothing.
>
> > scripts/makefiles and the other from C/assembly code (and if you get
> > it wrong, you may silently get the wrong value instead of a linker
> > error)?
>
> You are absolutely right. This is the reason why I object against
> redefining CONFIG_SYS_TEXT_BASE and suggest to use a separate
> CONFIG_SYS_TEXT_BASE_SPL instead.
It'd still be only a runtime error if you used the wrong one.
Whereas by keeping each image's config separate it simply isn't an
error -- you will get the right value.
Perhaps symbols that aren't safe to use from makefiles/linker scripts
shouldn't have the CONFIG_ prefix (and thus not be exported to them).
> It seems you are in fighting mood today. I ain't. You try to turn
> my own arguments against me. I'm not willing to play such a game.
I was just looking for some consistency so I could figure out what is
being objected to. When something is rejected for specific reasons,
questioning whether those reasons actually imply the conclusion doesn't
seem unreasonable.
I wasn't trying to pick a fight -- if you feel this strongly about doing it
that way, then we can live with it.
> > If your argument is that providing a separate autoconf.mk is a pain[1],
> > and you'd rather hack around it with a separate symbol in the one case
> > where it currently matters, I can understand that -- though that leaves
> > pain lurking for the larger middle stage, as noted above.
>
> Maybe you could be so kind and elucidate why you think that
>
> 1) using separate variable names for separate purposes is "hacking
> around"?
I do not agree that they are separate purposes. All config symbols
make sense only in the context of the image that is being built.
I suppose it depends on whether you view SPL as "this other bit of code
that gets distributed with u-boot and tied into the build system, and
reuses some files" or "a u-boot configuration which is extremely slimmed
down and targetting a different boot environment".
> 2) changing make variable settings on the fly during a single make run
> would be a clean solution? I see a lot of potential problems with
> that.
It is not a single make run. SPL is a separate, recursive invocation
of make. As far as I can see the CONFIG_ variables are not exported.
> > I don't see from a conceptual level, though, why these images should be
> > sharing an autoconf.mk.
>
> To provide a consistent and debuggable build environment?
That's precisely why I wanted them separate. :-)
It keeps the CONFIG_ namespace consistent between C code and
makefiles, and avoids interference from one component to the next.
> I have zero interest in debugging the Makefiles for such a build for example on a
> SMP system which attempts to run these steps in parallel. Oh, of
> course we must not do that, we must serialize everything?
Parallel builds should work fine. It would be a separate autoconf.mk
file somewhere under nand_spl, not rewriting the same file multiple
times during the build process.
-Scott
More information about the U-Boot
mailing list