On 2017-09-05 15:46, Jan Kiszka wrote:
> On 2017-09-05 15:31,
chomb...@gmail.com wrote:
>> Hello,
>>
>> I tried to use efibootguard on the Siemens IOT2020 but using Mentor
>> Embedded Linux (instead of Yocto).
>> I used the meta-efibootguard layer that Andreas kindly posted last week.
>>
>> efibootguard was built and shows its prompt but it is then unable to
>> find a supported watchdog device
>> (see below for a boot log)
>>
>> I eventually traced this problem to be a difference in the compiler output.
>> The init() function of the driver is expected to be registered in the
>> .init_array section
>>
>> This is definitely the case with GCC 6.3
>> It unfortunately isn't with GCC 6.2.
>>
>> I checked this by compiling a single line compilation unit:
>> void __attribute__ ((constructor)) test (void) {}
>>
>> readelf shows an .init_array with 6.3 but I get a .ctors section with 6.2
>
> Thanks for analysing. Interestingly, I can reproduce with gcc 4.8.5 of
> my distro. Neither is init_array empty nor is there a ctors section. Is
> there some switch that controls this?
Actually, morty is using 6.2 as well, and we never saw this issue. Could
something to stay backward compatible. And maybe that something gives