On Thu, 20 Mar 2025, Pali Rohár wrote:
Hello, I started getting new compile warnings during compilation of
mingw-w64 runtime.
In file included from math/modfl.c:6:
.../mingw-w64-headers/crt/fenv.h:64:39: warning: ‘__mingw_fe_dfl_env’
initialized and declared ‘extern’
extern const __MINGW_SELECTANY fenv_t __mingw_fe_dfl_env = { 0, 0 };
^~~~~~~~~~~~~~~~~~
.../mingw-w64-headers/crt/fenv.h:72:39: warning: ‘__mingw_fe_pc64_env’
initialized and declared ‘extern’
extern const __MINGW_SELECTANY fenv_t __mingw_fe_pc64_env = { 0x3f3f003f, 0 };
^~~~~~~~~~~~~~~~~~~
.../mingw-w64-headers/crt/fenv.h:76:39: warning: ‘__mingw_fe_pc53_env’
initialized and declared ‘extern’
extern const __MINGW_SELECTANY fenv_t __mingw_fe_pc53_env = { 0x3f3f103f, 0 };
^~~~~~~~~~~~~~~~~~~
To make this clearer and more actionable, let's repeat a couple relevant
bits of context here:
By default, both GCC and Clang ignore and suppress warnings in files in
what they consider "system header" directories. When most people build
mingw-w64-crt using what would be considered the default way to build it -
by installing mingw-w64-headers into the toolchain's system header
directory, then building mingw-w64-crt so that it finds those headers
implicitly, these warnings are not visible.
Pali builds his mingw-w64-crt in a way that the compiler doesn't consider
mingw-w64-headers as system headers, and thus gets warnings that nobody
else runs into.
(Not taking any stance on whether any action should be taken on these
warnings, just providing context to the situation.)
// Martin
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public