diff --git a/configure b/configure index 48b405f015..897e1ed3bf 100755 --- a/configure +++ b/configure @@ -2340,16 +2340,17 @@ ccc_flags(){ done } -msvc_flags(){ +msvc_common_flags(){ for flag; do case $flag in + # In addition to specifying certain flags under the compiler + # specific filters, they must be specified here as well or else the + # generic catch all at the bottom will print the original flag. + -Wall) ;; + -std=c99) ;; + # Common flags -fomit-frame-pointer) echo -Oy ;; -g) echo -Z7 ;; - -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ - -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \ - -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \ - -wd4996 -wd4273 ;; - -std=c99) ;; -fno-math-errno) ;; -fno-common) ;; -fno-signed-zeros) ;; @@ -2365,6 +2366,30 @@ msvc_flags(){ done } +msvc_flags(){ + msvc_common_flags "$@" + for flag; do + case $flag in + -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \ + -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \ + -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \ + -wd4996 -wd4273 ;; + esac + done +} + +icl_flags(){ + msvc_common_flags "$@" + for flag; do + case $flag in + # Despite what Intel's documentation says -Wall, which is supported + # on Windows, does enable remarks so disable them here. + -Wall) echo $flag -Qdiag-disable:remark ;; + -std=c99) echo -Qstd=c99 ;; + esac + done +} + pgi_flags(){ for flag; do case $flag in @@ -2590,13 +2615,13 @@ probe_cc(){ fi _cc_o='-Fo $@' _cc_e='-P' - _flags_filter=msvc_flags + _flags_filter=icl_flags _ld_lib='lib%.a' _ld_path='-libpath:' # -Qdiag-error to make icl error when presented with certain unknown arguments _flags='-nologo -Qdiag-error:10157 -Qdiag-error:4044' # -Qvec- -Qsimd- to prevent miscompilation, -GS for consistency with msvc which enables it by default - _cflags='-D_USE_MATH_DEFINES -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64 -Qstd=c99 -Qms0 -Qvec- -Qsimd- -GS' + _cflags='-D_USE_MATH_DEFINES -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64 -Qms0 -Qvec- -Qsimd- -GS' if [ $pfx = hostcc ]; then append _cflags -Dsnprintf=_snprintf fi @@ -3916,7 +3941,6 @@ elif enabled msvc; then enabled x86_32 && disable aligned_stack elif enabled icl; then enabled x86_32 && disable aligned_stack - check_cflags -W1 # Just warnings, no remark spam # basically -fstrict-aliasing for icl that doesn't work (correctly) on 13.x+ check_cpp_condition "windows.h" "__ICL < 1300" && add_cflags -Qansi-alias # icl will pass the inline asm tests but inline asm is currently not supported (build will fail)