[dpdk-dev] [PATCH] eal: fix compiler detection in public headers
Thomas Monjalon
thomas at monjalon.net
Mon Mar 16 15:25:44 CET 2020
16/03/2020 13:04, Thomas Monjalon:
> RTE_TOOLCHAIN_* macros are defining the target compiler.
> Some API may be used in a host application like pmdinfogen.
> That's why the the public headers should check the effective compiler
> in use instead of the target compiler.
>
> Detecting the compiler with macros is easy, except for __GNUC__
> which is defined in all compilers supporting some GNU compatibility.
>
> It is improved by defining RTE_CC_CLANG, RTE_CC_ICC and RTE_CC_GCC.
> The extra macro RTE_CC_IS_GNU is defined to 0 or 1 in GCC case,
> so it can be used simply with #if.
>
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
>
> This patch is probably useless.
> The first intent was fixing pmdinfogen compilation with clang
> while compiling the target with GCC, with MinGW support patch.
>
> This case is now better fixed with a patch removing EAL dependencies
> from the PCI library, which drops rte_common.h inclusion from pmdinfogen:
> http://patches.dpdk.org/patch/66701/
Actually rte_common.h is directly included by buildtools/pmdinfogen/pmdinfogen.c
so we need this patch in my opinion.
> As a consequence, I send this EAL patch just in case we need it
> in future. We can decide to apply or leave it.
This patch is now gating acceptance of MinGW support.
More information about the dev
mailing list