Skip to content

Commit

Permalink
[CMake] Add partial support for MSVC in compiler-rt builtins, by Roma…
Browse files Browse the repository at this point in the history
…n Shirokiy.

This enables MSVC build of complex number arithmetic compiler-rt builtins.

Differential Revision: http://reviews.llvm.org/D17452

llvm-svn: 261432
  • Loading branch information
aturetsk committed Feb 20, 2016
1 parent 10f3cf5 commit bc0122b
Showing 2 changed files with 16 additions and 4 deletions.
2 changes: 2 additions & 0 deletions compiler-rt/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -241,6 +241,8 @@ if(MSVC)
# FIXME: In fact, sanitizers should support both /MT and /MD, see PR20214.
if(COMPILER_RT_HAS_MT_FLAG)
foreach(flag_var
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
string(REGEX REPLACE "/M[DT]d" "/MT" ${flag_var} "${${flag_var}}")
18 changes: 14 additions & 4 deletions compiler-rt/lib/builtins/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -143,6 +143,15 @@ set(GENERIC_SOURCES
umodsi3.c
umodti3.c)

set(MSVC_SOURCES
divsc3.c
divdc3.c
divxc3.c
mulsc3.c
muldc3.c
mulxc3.c)


if(APPLE)
set(GENERIC_SOURCES
${GENERIC_SOURCES}
@@ -216,14 +225,15 @@ if (NOT MSVC)
${i386_SOURCES})
else () # MSVC
# Use C versions of functions when building on MSVC
# MSVC's assembler takes Intel syntax, not AT&T syntax
# MSVC's assembler takes Intel syntax, not AT&T syntax.
# Also use only MSVC compilable builtin implementations.
set(x86_64_SOURCES
x86_64/floatdidf.c
x86_64/floatdisf.c
x86_64/floatdixf.c
${GENERIC_SOURCES})
${MSVC_SOURCES})
set(x86_64h_SOURCES ${x86_64_SOURCES})
set(i386_SOURCES ${GENERIC_SOURCES})
set(i386_SOURCES ${MSVC_SOURCES})
set(i686_SOURCES ${i386_SOURCES})
endif () # if (NOT MSVC)

@@ -363,7 +373,7 @@ if (APPLE)
add_subdirectory(Darwin-excludes)
add_subdirectory(macho_embedded)
darwin_add_builtin_libraries(${BUILTIN_SUPPORTED_OS})
elseif (NOT WIN32 OR MINGW)
else ()
append_string_if(COMPILER_RT_HAS_STD_C99_FLAG -std=c99 maybe_stdc99)

foreach (arch ${BUILTIN_SUPPORTED_ARCH})

0 comments on commit bc0122b

Please sign in to comment.