[ELDK] installing 5.6

K Richard Pixley rpixley at graphitesystems.com
Wed Jan 28 17:56:25 CET 2015


On 1/28/15 08:07 , Wolfgang Denk wrote:
> Dear Richard,
>
> In message <54C7C475.6060204 at graphitesystems.com> you wrote:
>> But I have little hope.  I'm duplicating a process that I already have
>> working with powerpc-4xx.  But powerpc-e500v2 seems to work
>> differently.  For example, in powerpc-4xx, in the env file,
>> /opt/eldk-5.6/powerpc-4xx/environment-setup-ppc44e-linux I find:
>>
>>      export SDKTARGETSYSROOT=/opt/eldk-5.6/powerpc-4xx/sysroots/ppc440e-linux
>>
>> whereas with powerpc-e500v2, in the env file,
>> /opt/eldk-5.6/powerpc-e500v2/environment-setup-ppce500v2-linux I find:
>>
>>      export SDKTARGETSYSROOT=##SDKTARGETSYSROOT##
>>
>> That looks to me like a string that is intended for replacement that has
>> failed to be replaced.  In the environment file, it probably doesn't
>> mean much.  But if there's a similar unreplaced trigger in the compiler
>> or linker specs, that could be a blocker.
>>
>> So... I /expect/ that sourcing the env file will cause breakage,
>> although it might be a different sort of breakage since the LD
>> definition depends on the value of SDKTARGETSYSROOT.
> I'm afraid you found a bug in ELDK v5.6; I owe you a beer for
> reporting it :-)
>
> Please apply the attached patchand verify that it helps; AFAICT this
> is the only change needed.
Yes, I had tried that, thanks.

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.

  * the CFLAGS are obsolete and produce copious warnings from the compiler
  * 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.
  * 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.

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'll still take the beer, though.  :)

--rich



More information about the eldk mailing list