[dpdk-dev] [PATCH v4 1/7] eal: introduce portable format attribute
Thomas Monjalon
thomas at monjalon.net
Mon Mar 16 15:27:48 CET 2020
14/03/2020 00:38, Dmitry Kozlyuk:
> > I suggest this change (I can send a patch fixing the issue in other .h files):
> >
> > +/*
> > + * RTE_TOOLCHAIN_GCC is true if the target is built with GCC,
> > + * while a host application (like pmdinfogen) may have another compiler.
> > + * RTE_CC_IS_GNU is true if the file is compiled with GCC,
> > + * no matter it is a target or host application.
> > + */
> > +#if defined __GNUC__ && !defined __clang__ && !defined __INTEL_COMPILER
> > +#define RTE_CC_IS_GNU
> > +#endif
> > +
> > +#ifdef RTE_CC_IS_GNU
> > -/** Define GCC_VERSION **/
> > -#ifdef RTE_TOOLCHAIN_GCC
> > #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + \
> > __GNUC_PATCHLEVEL__)
> > #endif
> > @@ -96,7 +105,7 @@ typedef uint16_t unaligned_uint16_t;
> > * even if the underlying stdio implementation is ANSI-compliant,
> > * so this must be overridden.
> > */
> > -#if defined(RTE_TOOLCHAIN_GCC)
> > +#ifdef RTE_CC_IS_GNU
> > #define __rte_format_printf(format_index, first_arg) \
> > __attribute__((format(gnu_printf, format_index, first_arg)))
> > #else
>
> The code you propose LGTM itself. If you think it's a better solution than
> the one proposed below, I see no problem going with it.
>
> What I wonder is whether pmdinfogen should include the problematic code in the
> first place. The errors come from declarations in rte_debug.h,
No the error comes from rte_common.h included by pmdinfogen.c
Please review this patch:
https://patches.dpdk.org/patch/66702/
More information about the dev
mailing list