[ELDK] installing 5.6
Wolfgang Denk
wd at denx.de
Wed Jan 28 19:55:07 CET 2015
Dear Richard,
In message <54C914B9.40500 at graphitesystems.com> you wrote:
>
> However, it's pretty clear that the env file, at least for this
> architecture, has been abandoned. It's obvious that it has not been
> used or tested any time recently.
You will find that the env files look pretty much the same for all
architectures.
> * the CFLAGS are obsolete and produce copious warnings from the compiler
What makes you think so?
Which part of
CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types"
looks obsolete or bad to you?
> * the LDFLAGS aren't ld flags at all, but rather ld flags in disguise
> as CFLAGS, (-Wl,etc). If there's any build system that needs them
> in this form, that build system is, IMO, broken. In any case,
> LDFLAGS like this break the kernel because ld proper doesn't accept
> the -Wl, form.
Well, this is your opinion. I tend to agree, especially the part
about incompatibility with long-standing use in the Linux kernel and
U-Boot. But the, there appears to be no formal definition what
LDFLAGS is actually supposed to be. The best I could come up with is
from the "make" info file, which reads:
`LDFLAGS'
Extra flags to give to compilers when they are supposed
to invoke the linker, `ld', such as `-L'. Libraries
(`-lfoo') should be added to the `LDLIBS' variable
instead.
Please note that this explicitly states that is it options passed "to
compilers", i. e. to $(CC), "when they are suppose to invoke the
linker". And it is correct to use the "-WL," form in this case.
Based on this description, the Yocto definition of LDFLAGS makes
perfect sense, while the (long-standing) use in U-Boot or Linux, where
LDFLAGS is directly passed to the linker, is incorrect.
In any case, we inherit this setting from mainline Yocto; it is not a
design decision or problem introduced by the ELDK.
> * the kernel, at least the version and port I'm using, overwrites the
> environment version of most of these environment variables anyway.
> To pass one, I have to do it on the command line.
This is true for some settings, but as you will notice it is not true
for things like ARCH, CROSS_COMPILE, LDFLAGS and some others.
> The env file /was/ useful as a source of hints, though. And I managed to
> get my kernel built by passing "CC=$(CROSS_PREFIX)-gcc
> --sysroot=/opt/eldk-5.6/powerpc-e500v2/sysroots/ppce500v2" on the make
> command line.
I think this is neither correct nor needed. The kernel build does not
need sysroot for building. If yours does, it ust be pretty much
different from mainline.
> I'll still take the beer, though. :)
You are welcome.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
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
Another megabytes the dust.
More information about the eldk
mailing list