[U-Boot] nand spl build with wrong CONFIG_SYS_TEXT_BASE
Wolfgang Denk
wd at denx.de
Wed Nov 10 22:28:29 CET 2010
Dear Scott Wood,
In message <20101110150307.279a5b05 at udp111988uds.am.freescale.net> you wrote:
>
> 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 fully agree with you on that. And I want to point out that I really
appreciate such discussions. I definitely don't claim to be always
right (but when I have my mind set it takes really good arguments).
> I wasn't trying to pick a fight -- if you feel this strongly about doing it
> that way, then we can live with it.
Actually I am not that seriously convinced. I just fear that the other
approach introduces a LOT of trouble - way more problems then it ever
could solve.
> 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".
For me it is just a part of U-Boot. Usually we do not use separate
images, resulting from separate builds, but the SPL and the "real"
U-Boot image get bundled into one "NAND boot" image. So for me it
seems obvious that these are all just stages of a single build.
> > 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.
Well, see above. You are argumenting from a low-level, implementation
point of view. For the end user this is not transparent at all. He
just runs a single "make foo_config" and a single "make all". The end
user sees and thinks of just a single configuration and a single build
he is running.
The fact that we have several build steps is something else. I
understand (now, only now!) that you see the SPL part as an
independent configuration - such a thought never crossed my mind
before. For me it's just a part of the whole build procedure.
> > 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 cannot follow you here. I get the creeps when I imagine to have to
track down why a build fails when parameters change on the fly. Did
you ever have to track down why some boared config can be build nicely
in-tree, but out-of-tree builds fail, but only on SMP machines? and
only with >N cores (or fast disks)? I have been there. And I do not
want to imagine that the whole environment might change under my feet
before I can grab it.
> > 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.
Oh... this is another thing I did not grasp yet. But then, how would
it become active for "common" code parts?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
In the realm of scientific observation, luck is granted only to those
who are prepared. - Louis Pasteur
More information about the U-Boot
mailing list