[PATCH v2] build: set rte toolchain macros from predefined macros

Bruce Richardson bruce.richardson at intel.com
Mon Jan 8 12:18:50 CET 2024


On Tue, Jan 02, 2024 at 04:11:15PM -0800, Tyler Retzlaff wrote:
> Stop writing RTE_TOOLCHAIN_XXX macros to rte_build_config.h. When an
> application builds it doesn't necessarily use the same toolchain that
> DPDK was built with.
> 
> Instead evaluate toolchain predefined macros and define
> RTE_TOOLCHAIN_XXX macros as appropriate each time rte_config.h is
> preprocessed.
> 
> Signed-off-by: Tyler Retzlaff <roretzla at linux.microsoft.com>

I don't see an issue with doing this.

Acked-by: Bruce Richardson <bruce.richardson at intel.com>

> ---
> 
> v2:
>   * use defined(macro) to correctly test for predefined macros
> 
>  config/meson.build  |  2 --
>  config/rte_config.h | 11 +++++++++++
>  2 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/config/meson.build b/config/meson.build
> index a9ccd56..0c3550e 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -180,8 +180,6 @@ if not is_ms_compiler
>  endif
>  
>  toolchain = cc.get_id()
> -dpdk_conf.set_quoted('RTE_TOOLCHAIN', toolchain)
> -dpdk_conf.set('RTE_TOOLCHAIN_' + toolchain.to_upper().underscorify(), 1)
>  
>  dpdk_conf.set('RTE_ARCH_64', cc.sizeof('void *') == 8)
>  dpdk_conf.set('RTE_ARCH_32', cc.sizeof('void *') == 4)
> diff --git a/config/rte_config.h b/config/rte_config.h
> index da265d7..d743a5c 100644
> --- a/config/rte_config.h
> +++ b/config/rte_config.h
> @@ -14,6 +14,17 @@
>  
>  #include <rte_build_config.h>
>  
> +#if defined(__clang__)
> +#define RTE_TOOLCHAIN "clang"
> +#define RTE_TOOLCHAIN_CLANG 1
> +#elif defined(__GNUC__)
> +#define RTE_TOOLCHAIN "gcc"
> +#define RTE_TOOLCHAIN_GCC 1
> +#elif defined(_MSC_VER)
> +#define RTE_TOOLCHAIN "msvc"
> +#define RTE_TOOLCHAIN_MSVC 1
> +#endif
> +
>  /* legacy defines */
>  #ifdef RTE_EXEC_ENV_LINUX
>  #define RTE_EXEC_ENV_LINUXAPP 1
> -- 
> 1.8.3.1
> 


More information about the dev mailing list