[U-Boot] [PATCH 1/1] arm: mxs: make inline function compatible for GCC 5

Jörg Krause joerg.krause at embedded.rocks
Wed Aug 5 17:06:38 CEST 2015


GCC 5 uses C99 inline semantics. To generate external visibility in C99 for
the lowlevel_init() function must be declared with extern inline [1].

The GNU89 inline semantic is the same as C99 extern inline.

Use the __GNUC_STDC_INLINE__ macro to detect if C99 inline semantic will be
used by GCC.

Fixes the build error "undefined reference to `lowlevel_init'" for mx28 based
targets.

[1] "Different semantics for inline functions"
https://gcc.gnu.org/gcc-5/porting_to.html

Signed-off-by: Jörg Krause <joerg.krause at embedded.rocks>
---
 arch/arm/cpu/arm926ejs/mxs/mxs.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/cpu/arm926ejs/mxs/mxs.c b/arch/arm/cpu/arm926ejs/mxs/mxs.c
index ef130ae..439396b 100644
--- a/arch/arm/cpu/arm926ejs/mxs/mxs.c
+++ b/arch/arm/cpu/arm926ejs/mxs/mxs.c
@@ -24,6 +24,9 @@
 DECLARE_GLOBAL_DATA_PTR;
 
 /* Lowlevel init isn't used on i.MX28, so just have a dummy here */
+#if defined(__GNUC_STDC_INLINE__)  /* e.g. GCC 5.x default */
+extern
+#endif
 inline void lowlevel_init(void) {}
 
 void reset_cpu(ulong ignored) __attribute__((noreturn));
-- 
2.5.0



More information about the U-Boot mailing list