70 lines
2.7 KiB
Diff
70 lines
2.7 KiB
Diff
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
|