[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