windows: build warnings with clang
Checks
Commit Message
Compiling with Clang (11.0, --buildtype=debug) for Windows
produces deprecated warnings related to secure crt functions.
Disable this by defining -D_CRT_SECURE_NO_WARNINGS.
It is unclear exactly which commit this fixes. It is probably a
consequence of building more libraries for Windows.
Signed-off-by: Nick Connolly <nick.connolly@mayadata.io>
---
config/meson.build | 5 +++++
1 file changed, 5 insertions(+)
Comments
On Fri, 27 Nov 2020 11:36:23 +0000, Nick Connolly wrote:
> Compiling with Clang (11.0, --buildtype=debug) for Windows
> produces deprecated warnings related to secure crt functions.
Please explain what these warnings mean and why disabling them is OK.
FWIW, I examined present warnings and found no useful ones. Also,
--buildtype=debug is not necessary to trigger these warnings.
Proposed wording (feel free to adjust):
Microsoft CRT defines Windows-specific secure alternatives to
standard library functions and triggers warnings when "insecure"
functions are used [1]. However, calling code already has all
necessary checks around those functions, so these warnings are not
useful for DPDK. MinGW provides its own CRT without this issue.
[1]:
https://docs.microsoft.com/en-us/cpp/c-runtime-library/security-features-in-the-crt?view=msvc-160
> Disable this by defining -D_CRT_SECURE_NO_WARNINGS.
>
> It is unclear exactly which commit this fixes. It is probably a
> consequence of building more libraries for Windows.
Tip: Unless you want to make this paragraph part of the commit, you can write
such notices below "---" line, like version info.
>
> Signed-off-by: Nick Connolly <nick.connolly@mayadata.io>
> ---
> config/meson.build | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/config/meson.build b/config/meson.build
> index c02802c18..a3154e29c 100644
> --- a/config/meson.build
> +++ b/config/meson.build
> @@ -279,6 +279,11 @@ if is_windows
> add_project_arguments('-D__USE_MINGW_ANSI_STDIO', language: 'c')
> endif
>
> + # Disable secure CRT deprecated warnings for clang
> + if cc.get_id() == 'clang'
> + add_project_arguments('-D_CRT_SECURE_NO_WARNINGS', language: 'c')
> + endif
> +
> add_project_link_arguments('-lws2_32', language: 'c')
>
> # Contrary to docs, VirtualAlloc2() is exported by mincore.lib
@@ -279,6 +279,11 @@ if is_windows
add_project_arguments('-D__USE_MINGW_ANSI_STDIO', language: 'c')
endif
+ # Disable secure CRT deprecated warnings for clang
+ if cc.get_id() == 'clang'
+ add_project_arguments('-D_CRT_SECURE_NO_WARNINGS', language: 'c')
+ endif
+
add_project_link_arguments('-lws2_32', language: 'c')
# Contrary to docs, VirtualAlloc2() is exported by mincore.lib