diff options
author | Alex Smith <alex.smith@warpsharp.info> | 2013-05-25 06:07:42 -0400 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2013-05-25 17:52:44 +0200 |
commit | 322e4194dd24ff06aeef72210beee4f19efa2e08 (patch) | |
tree | 452aeb1dc0eec8716889273048917e93b92ab202 /configure | |
parent | 9495cd170b5786c3518419e873d94eb5e7ada11a (diff) | |
download | ffmpeg-streaming-322e4194dd24ff06aeef72210beee4f19efa2e08.zip ffmpeg-streaming-322e4194dd24ff06aeef72210beee4f19efa2e08.tar.gz |
msvc/icl: Intel Compiler support on Windows
Initial support for the ICL compiler on windows. Requires a new
c99wrap with ICL support (1.0.2+).
Currently not much different speed wise compared to msvc. In the
future with a few changes it can be made to support the inline asm.
This would be the primary reason for using it.
Passed all fate tests, versions tested:
13.1.1.171 (2013 Update 3) x86 and x64
12.1.5.344 (2011 Update 11) x86 and x64
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -2227,6 +2227,13 @@ case "$toolchain" in ar_default="lib" target_os_default="win32" ;; + icl) + cc_default="c99wrap -noconv icl" + ld_default="c99wrap xilink" + nm_default="dumpbin -symbols" + ar_default="xilib" + target_os_default="win32" + ;; gcov) add_cflags -fprofile-arcs -ftest-coverage add_ldflags -fprofile-arcs -ftest-coverage @@ -2554,6 +2561,31 @@ probe_cc(){ if [ $pfx = hostcc ]; then append _cflags -Dsnprintf=_snprintf fi + elif $_cc 2>&1 | grep -q Intel; then + _type=icl + _ident=$($cc 2>&1 | head -n1) + _depflags='-QMMD -QMF$(@:.o=.d) -QMT$@' + # Not only is O3 broken on 13.x+ but it's slower on all previous versions (tested) as well + _cflags_speed="-O2" + _cflags_size="-O1 -Oi" # -O1 without -Oi miscompiles stuff + # Nonstandard output options, to avoid msys path conversion issues, relies on wrapper to remap it + if $_cc 2>&1 | grep -q Linker; then + _ld_o='-out $@' + else + _ld_o='-Fe$@' + fi + _cc_o='-Fo $@' + _cc_e='-P' + _flags_filter=msvc_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' + if [ $pfx = hostcc ]; then + append _cflags -Dsnprintf=_snprintf + fi fi eval ${pfx}_type=\$_type @@ -3868,6 +3900,13 @@ elif enabled pathscale; then add_cflags -fstrict-overflow -OPT:wrap_around_unsafe_opt=OFF 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) + disable inline_asm fi case $target_os in |