Jörg Krause <[email protected]> writes: > Dear Måns Rullgård, Otavio Salvador, > > On Di, 2015-07-28 at 14:39 +0100, Måns Rullgård wrote: >> Otavio Salvador <[email protected]> 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 [email protected] _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

