[U-Boot] GCC 5.2 issue on imx28
Måns Rullgård
mans at mansr.com
Wed Aug 5 21:23:14 CEST 2015
Jörg Krause <joerg.krause at embedded.rocks> writes:
> Dear Måns Rullgård, Otavio Salvador,
>
> On Di, 2015-07-28 at 14:39 +0100, Måns Rullgård wrote:
>> Otavio Salvador <otavio.salvador at ossystems.com.br> writes:
>
> [snip]
>
>> There are two errors reports:
>>
>> 1. An undefined reference to the symbol "lowlevel_init"
>> 2. A complaint about the ".rel.plt" section not being handled by the
>> linker script.
>>
>> The second error is probably caused by the first. A quick grep turns
>> up
>> this snippet in arch/arm/cpu/arm926ejs/mxs/mxs.c:
>>
>> /* Lowlevel init isn't used on i.MX28, so just have a dummy here */
>> inline void lowlevel_init(void) {}
>>
>> The semantics for non-static functions declared inline have changed
>> in
>> gcc5, causing the above (empty) function not to be emitted as an
>> external symbol.
>>
>> Since that function is only referenced from start.S, it should not be
>> declared inline at all. This patch should thus fix your problem:
>>
>> diff --git a/arch/arm/cpu/arm926ejs/mxs/mxs.c
>> b/arch/arm/cpu/arm926ejs/mxs/mxs.c
>> index ef130ae..b1d8721 100644
>> --- a/arch/arm/cpu/arm926ejs/mxs/mxs.c
>> +++ b/arch/arm/cpu/arm926ejs/mxs/mxs.c
>> @@ -24,7 +24,7 @@
>> DECLARE_GLOBAL_DATA_PTR;
>>
>> /* Lowlevel init isn't used on i.MX28, so just have a dummy here */
>> -inline void lowlevel_init(void) {}
>> +void lowlevel_init(void) {}
>>
>> void reset_cpu(ulong ignored) __attribute__((noreturn));
>>
>
> I stumbled over the same problem. Unfortunatly, I did not find this
> patch before (only the error report from Otavia) and submitted a
> similar patch [1] which keeps the inline keyword.
>
> Best regards
> Jörg Krause
>
> [1] "arm: mxs: make inline function compatible for GCC 5"
> https://patchwork.ozlabs.org/patch/504043/
Since the function is only referenced from outside the C file, any use
of inline makes little sense to me. While your patch achieves the
result of creating a linkable instance of the function, it is more
complicated than it needs to be.
--
Måns Rullgård
mans at mansr.com
More information about the U-Boot
mailing list