mirror of https://git.ffmpeg.org/ffmpeg.git
configure: Support MSVC 2015
The C runtime C99 compatibility had been improved a lot and it now rejects some of the compatibility defines provided for the older versions. Many thanks to Ray for the time spent testing. Bug-Id: 864 CC: libav-stable@libav.org
This commit is contained in:
parent
bc76c46943
commit
a6f19d6a9f
|
@ -3021,9 +3021,6 @@ probe_cc(){
|
||||||
_ld_path='-libpath:'
|
_ld_path='-libpath:'
|
||||||
_flags='-nologo'
|
_flags='-nologo'
|
||||||
_cflags='-D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64'
|
_cflags='-D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64'
|
||||||
if [ $pfx = hostcc ]; then
|
|
||||||
append _cflags -Dsnprintf=_snprintf
|
|
||||||
fi
|
|
||||||
elif $_cc 2>&1 | grep -q Intel; then
|
elif $_cc 2>&1 | grep -q Intel; then
|
||||||
_type=icl
|
_type=icl
|
||||||
_ident=$($_cc 2>&1 | head -n1)
|
_ident=$($_cc 2>&1 | head -n1)
|
||||||
|
@ -3047,9 +3044,6 @@ probe_cc(){
|
||||||
# -Qvec- -Qsimd- to prevent miscompilation, -GS for consistency
|
# -Qvec- -Qsimd- to prevent miscompilation, -GS for consistency
|
||||||
# with MSVC which enables it by default.
|
# with MSVC which enables it by default.
|
||||||
_cflags='-D_USE_MATH_DEFINES -FIstdlib.h -Dstrtoll=_strtoi64 -Qms0 -Qvec- -Qsimd- -GS'
|
_cflags='-D_USE_MATH_DEFINES -FIstdlib.h -Dstrtoll=_strtoi64 -Qms0 -Qvec- -Qsimd- -GS'
|
||||||
if [ $pfx = hostcc ]; then
|
|
||||||
append _cflags -Dsnprintf=_snprintf
|
|
||||||
fi
|
|
||||||
elif $_cc --version 2>/dev/null | grep -q ^cparser; then
|
elif $_cc --version 2>/dev/null | grep -q ^cparser; then
|
||||||
_type=cparser
|
_type=cparser
|
||||||
_ident=$($_cc --version | head -n1)
|
_ident=$($_cc --version | head -n1)
|
||||||
|
@ -3743,6 +3737,16 @@ probe_libc(){
|
||||||
add_${pfx}cppflags -D__printf__=__gnu_printf__
|
add_${pfx}cppflags -D__printf__=__gnu_printf__
|
||||||
elif check_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then
|
elif check_${pfx}cpp_condition crtversion.h "defined _VC_CRT_MAJOR_VERSION"; then
|
||||||
eval ${pfx}libc_type=msvcrt
|
eval ${pfx}libc_type=msvcrt
|
||||||
|
if check_${pfx}cpp_condition crtversion.h "_VC_CRT_MAJOR_VERSION < 14"; then
|
||||||
|
if [ "$pfx" = host_ ]; then
|
||||||
|
add_host_cppflags -Dsnprintf=_snprintf
|
||||||
|
else
|
||||||
|
add_compat strtod.o strtod=avpriv_strtod
|
||||||
|
add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \
|
||||||
|
_snprintf=avpriv_snprintf \
|
||||||
|
vsnprintf=avpriv_vsnprintf
|
||||||
|
fi
|
||||||
|
fi
|
||||||
# The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to
|
# The MSVC 2010 headers (Win 7.0 SDK) set _WIN32_WINNT to
|
||||||
# 0x601 by default unless something else is set by the user.
|
# 0x601 by default unless something else is set by the user.
|
||||||
# This can easily lead to us detecting functions only present
|
# This can easily lead to us detecting functions only present
|
||||||
|
@ -3773,12 +3777,6 @@ case $libc_type in
|
||||||
bionic)
|
bionic)
|
||||||
add_compat strtod.o strtod=avpriv_strtod
|
add_compat strtod.o strtod=avpriv_strtod
|
||||||
;;
|
;;
|
||||||
msvcrt)
|
|
||||||
add_compat strtod.o strtod=avpriv_strtod
|
|
||||||
add_compat msvcrt/snprintf.o snprintf=avpriv_snprintf \
|
|
||||||
_snprintf=avpriv_snprintf \
|
|
||||||
vsnprintf=avpriv_vsnprintf
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# hacks for compiler/libc/os combinations
|
# hacks for compiler/libc/os combinations
|
||||||
|
|
|
@ -130,11 +130,6 @@
|
||||||
|
|
||||||
#include "libm.h"
|
#include "libm.h"
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
#pragma comment(linker, "/include:"EXTERN_PREFIX"avpriv_strtod")
|
|
||||||
#pragma comment(linker, "/include:"EXTERN_PREFIX"avpriv_snprintf")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return NULL if CONFIG_SMALL is true, otherwise the argument
|
* Return NULL if CONFIG_SMALL is true, otherwise the argument
|
||||||
* without modification. Used to disable the definition of strings
|
* without modification. Used to disable the definition of strings
|
||||||
|
@ -208,6 +203,12 @@ void avpriv_request_sample(void *avc,
|
||||||
const char *msg, ...) av_printf_format(2, 3);
|
const char *msg, ...) av_printf_format(2, 3);
|
||||||
|
|
||||||
#if HAVE_LIBC_MSVCRT
|
#if HAVE_LIBC_MSVCRT
|
||||||
|
#include <crtversion.h>
|
||||||
|
#if defined(_VC_CRT_MAJOR_VERSION) && _VC_CRT_MAJOR_VERSION < 14
|
||||||
|
#pragma comment(linker, "/include:"EXTERN_PREFIX"avpriv_strtod")
|
||||||
|
#pragma comment(linker, "/include:"EXTERN_PREFIX"avpriv_snprintf")
|
||||||
|
#endif
|
||||||
|
|
||||||
#define avpriv_open ff_open
|
#define avpriv_open ff_open
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue