[OE-core] [Openembedded-architecture] Usage of "elf" IMAGE_TYPES

Khem Raj raj.khem at gmail.com
Mon Aug 28 17:38:00 UTC 2017


On Mon, Aug 28, 2017 at 8:53 AM, Saul Wold <sgw at linux.intel.com> wrote:
> On Mon, 2017-08-28 at 08:31 -0700, Khem Raj wrote:
>> On Mon, Aug 28, 2017 at 8:25 AM, Saul Wold <sgw at linux.intel.com>
>> wrote:
>> >
>> >
>> > Folks,
>> >
>> > I know it's late in our 2.4 cycle, but we recently discovered that
>> > mkelfImage fails due to a recent upgrade to binutils. In doing some
>> > research, mkelfimage was removed back in Oct 2014 from the coreboot
>> > repo. It was replaced with cbfstool.
>> >
>> > Unless I hear otherwise, I recommend that we mark elf Images as
>> > deprecated for 2.4 and remove them in 2.5.
>> >
>> > I have not yet dived into exactly what binutil change triggered the
>> > failure.
>> >
>> > Further thoughts?
>>
>> you should describe what the errors are, maybe then we can make
>> further
>> inroads into problem. As far as removal is concerned, I support that
>>
> My Bad!  During testing we found the following bug: https://bugzilla.yo
> ctoproject.org/show_bug.cgi?id=11967
>
> The code that goes along with the Internal error is:
>        /* A sanity check against bad versions of binutils */
>         if (params->convert_magic != CONVERT_MAGIC) {
>                 die("Internal error convert_magic %16llx != %16llx\n",
>                         (unsigned long long)(params->convert_magic),
> CONVERT_MAGIC);
>         }
>
> params->convert_magic is set inside some assembly code:
>         .section ".trailer", "a"
>         /* Constants set at build time, these are at the very end of my
> image */
>         .balign 16
>         .global params
> params:
> convert_magic:
>         .quad   CONVERT_MAGIC
>
> It might be a simple fix, but I have not dived the rest of the way!
>

looks like there are some parameter mismatch. its quite likely that
some displaced
addresses are being fed. Its probably easy enough to debug it. Just
match the elf
header and the members of struct image_parameters which it is mapping into


static unsigned char payload[] = {
#include "convert.bin.c"
};

so check whats the content of convert.bin.c and may be answer is there

secondly I do not see it handling ET_DYN objects. If you are building
with PIE that could
be another issue



> Sau!
>
>
>> >
>> >
>> > Sau!
>> >
>> > _______________________________________________
>> > Openembedded-architecture mailing list
>> > Openembedded-architecture at lists.openembedded.org
>> > http://lists.openembedded.org/mailman/listinfo/openembedded-archite
>> > cture



More information about the Openembedded-core mailing list