[dpdk-dev] [PATCH 4/6] build: MinGW-w64 support for Meson

Thomas Monjalon thomas at monjalon.net
Tue Feb 4 23:08:48 CET 2020


31/01/2020 04:07, Dmitry Kozlyuk:
> MinGW-w64 linker does not mimic MS linker options, so the build system
> must differentiate between linkers on Windows. Use GNU linker options
> with GCC and MS linker options with Clang.
> 
> MinGW-w64 by default uses MSVCRT stdio, which does not comply to ANSI,
> most notably its formatting and string handling functions. MinGW-w64
> support for the Universal CRT (UCRT) is ongoing, but the toolchain
> provides its own standard-complying implementation of stdio. The latter
> is used in the patch to support formatting in DPDK.
> 
> Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk at gmail.com>

I really like this patch.
So both GCC (with MinGW) and native clang are supported?

[...]
> +# MS linker requires special treatment.
> +# FIXME: use cc.get_linker_id() after upgrading to Meson >=0.53.

What does it mean? It won't work with meson 0.53?

> +is_ms_linker = is_windows and (cc.get_id() == 'clang')
[...]
> +if is_windows
> +	# Require platform SDK for Windows 7 and above.
> +	add_project_arguments('-D_WIN32_WINNT=0x0601', language: 'c')

Please explain. Why Windows 7 is needed? What this define is doing?

[...]
> -			if is_windows
> +
> +			if is_ms_linker
>  				lk_args = ['-Wl,/def:' + def_file.full_path(),
>  					'-Wl,/implib:lib\\' + implib]
>  			else
>  				lk_args = ['-Wl,--version-script=' + version_map]
> +			endif

Looks good.




More information about the dev mailing list