Source: http://lists.busybox.net/pipermail/buildroot/2016-September/172879.html "The issue is that C99 changed inline semantics. This patch takes these changes into account and allows to build the bundled argp and therefore [freeipmi] with non-C89-compilers." --- a/common/portability/freeipmi-argp-fmtstream.c +++ b/common/portability/freeipmi-argp-fmtstream.c @@ -389,6 +389,7 @@ __argp_fmtstream_printf (struct argp_fmt weak_alias (__argp_fmtstream_printf, argp_fmtstream_printf) #endif +#if __STDC_VERSION__ - 199900L < 1 /* Duplicate the inline definitions in argp-fmtstream.h, for compilers * that don't do inlining. */ size_t @@ -471,5 +472,6 @@ __argp_fmtstream_point (argp_fmtstream_t __argp_fmtstream_update (__fs); return __fs->point_col >= 0 ? __fs->point_col : 0; } +#endif /* __STDC_VERSION__ - 199900L < 1 */ #endif /* !ARGP_FMTSTREAM_USE_LINEWRAP */ --- a/common/portability/freeipmi-argp-fmtstream.h +++ b/common/portability/freeipmi-argp-fmtstream.h @@ -145,6 +145,7 @@ extern ssize_t argp_fmtstream_printf (ar __const char *__fmt, ...) PRINTF_STYLE(2,3); +#if __STDC_VERSION__ - 199900L < 1 extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch); extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch); @@ -155,6 +156,7 @@ extern size_t __argp_fmtstream_write (ar __const char *__str, size_t __len); extern size_t argp_fmtstream_write (argp_fmtstream_t __fs, __const char *__str, size_t __len); +#endif /* __STDC_VERSION__ - 199900L < 1 */ /* Access macros for various bits of state. */ #define argp_fmtstream_lmargin(__fs) ((__fs)->lmargin) @@ -164,6 +166,7 @@ extern size_t argp_fmtstream_write (argp #define __argp_fmtstream_rmargin argp_fmtstream_rmargin #define __argp_fmtstream_wmargin argp_fmtstream_wmargin +#if __STDC_VERSION__ - 199900L < 1 /* Set __FS's left margin to LMARGIN and return the old value. */ extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, size_t __lmargin); @@ -185,6 +188,7 @@ extern size_t __argp_fmtstream_set_wmarg /* Return the column number of the current output point in __FS. */ extern size_t argp_fmtstream_point (argp_fmtstream_t __fs); extern size_t __argp_fmtstream_point (argp_fmtstream_t __fs); +#endif /* __STDC_VERSION__ - 199900L < 1 */ /* Internal routines. */ extern void _argp_fmtstream_update (argp_fmtstream_t __fs); @@ -208,7 +212,11 @@ extern int __argp_fmtstream_ensure (argp #endif #ifndef ARGP_FS_EI +#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__) #define ARGP_FS_EI extern inline +#else +#define ARGP_FS_EI inline +#endif #endif ARGP_FS_EI size_t