--- a/ustr-conf.h.in 2007-10-22 08:00:55.000000000 +0200 +++ b/ustr-conf.h.in 2015-09-10 12:24:34.998796842 +0200 @@ -4,13 +4,23 @@ /* this is the custom version for the library itself, for everyone else * ustr-import generates one depending on the options. */ +/* Ustr relies on GCC's traditional handling of inline functions, not + * the version that was actually standardized in C99. GCC-compatible + * compilers define __GNUC_STDC_INLINE__ when using the standard + * behavior. When this is set we must restore the old inline behavior: + */ +#if defined(__GNUC__) \ + && defined(__GNUC_STDC_INLINE__) +# define inline inline __attribute__ ((gnu_inline)) +#endif + /* The default is now to link against libc. */ #ifndef USTR_CONF_INCLUDE_CODEONLY_HEADERS #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 0 #endif /* We can't: if defined(__GLIBC__) && (!defined(_GNU_SOURCE) || !_GNU_SOURCE) - * because by the time we've included a libc header it's too late. */ + * because by the time we've included a libc header it's too late. */ #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif