Hi Yao Zi, > Macros __attribute__, __format__ and __printf__ are defined in argp.h > for compatibility with ANSI and old gccs. But leaving them effective > out of the scope of the header may break applications relying on > these compiler attributes even with __STRICT_ANSI__ defined. So undef > the macros after using.
LGTM. Reviewed-by: Petr Vorel <petr.vo...@gmail.com> Kind regards, Petr > Signed-off-by: Yao Zi <zi...@disroot.org> > --- > include/argp.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > diff --git a/include/argp.h b/include/argp.h > index 8e8674296..d57920970 100644 > --- a/include/argp.h > +++ b/include/argp.h > @@ -46,12 +46,14 @@ > /* This feature is available in gcc versions 2.5 and later. */ > # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || > defined(__STRICT_ANSI__) > # define __attribute__(Spec) /* empty */ > +# define __UCLIBC_ATTRIBUTE_FALLBACK__ > # endif > /* The __-protected variants of `format' and `printf' attributes > are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ > # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || > defined(__STRICT_ANSI__) > # define __format__ format > # define __printf__ printf > +# define __UCLIBC_PRINTF_FALLBACK__ > # endif > #endif > @@ -562,4 +564,13 @@ __NTH (__option_is_end (__const struct argp_option > *__opt)) > } > #endif > +#ifdef __UCLIBC_ATTRIBUTE_FALLBACK__ > +# undef __attribute__ > +#endif > + > +#ifdef __UCLIBC_PRINTF_FALLBACK__ > +# undef __format__ > +# undef __printf__ > +#endif > + > #endif /* argp.h */ _______________________________________________ devel mailing list -- devel@uclibc-ng.org To unsubscribe send an email to devel-le...@uclibc-ng.org