diff options
author | Chris Bieneman <beanz@apple.com> | 2015-09-28 22:18:31 +0000 |
---|---|---|
committer | Chris Bieneman <beanz@apple.com> | 2015-09-28 22:18:31 +0000 |
commit | 1341472f929a01b7c1b49ee539e74770ede78ffd (patch) | |
tree | 360d5e69987d3594233873664f139517fd907153 | |
parent | 4e6527682a7f828611d23693507da1911a30c431 (diff) | |
download | bcm5719-llvm-1341472f929a01b7c1b49ee539e74770ede78ffd.tar.gz bcm5719-llvm-1341472f929a01b7c1b49ee539e74770ede78ffd.zip |
[CMake] [Darwin] [builtins] Fix building builtins for Darwin simulator platforms.
For Darwin simulator platforms we shouldn't build the cc_kext builtins at all because they aren't applicable, and we should includ the simulator builtins as slices inside the main platform builtin library.
llvm-svn: 248751
-rw-r--r-- | compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake | 50 |
1 files changed, 30 insertions, 20 deletions
diff --git a/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake b/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake index 466dc04f535..08a02e1040e 100644 --- a/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake +++ b/compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake @@ -251,16 +251,7 @@ macro(darwin_add_builtin_libraries) ../profile/InstrProfilingPlatformDarwin) foreach (os ${ARGN}) list_union(DARWIN_BUILTIN_ARCHS DARWIN_${os}_ARCHS BUILTIN_SUPPORTED_ARCH) - foreach (arch ${DARWIN_BUILTIN_ARCHS}) - # In addition to the builtins cc_kext includes some profile sources - darwin_add_builtin_library(clang_rt cc_kext - OS ${os} - ARCH ${arch} - SOURCES ${${arch}_SOURCES} ${PROFILE_SOURCES} - CFLAGS -arch ${arch} -mkernel - DEFS KERNEL_USE - PARENT_TARGET builtins) - + foreach (arch ${DARWIN_BUILTIN_ARCHS} ${DARWIN_BUILTIN_SIM_ARCHS}) darwin_find_excluded_builtins_list(${arch}_${os}_EXCLUDED_BUILTINS OS ${os} ARCH ${arch} @@ -278,16 +269,35 @@ macro(darwin_add_builtin_libraries) PARENT_TARGET builtins) endforeach() - darwin_lipo_libs(clang_rt.cc_kext_${os} - PARENT_TARGET builtins - LIPO_FLAGS ${${os}_cc_kext_lipo_flags} - DEPENDS ${${os}_cc_kext_libs} - OUTPUT_DIR ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) - darwin_lipo_libs(clang_rt.${os} - PARENT_TARGET builtins - LIPO_FLAGS ${${os}_builtins_lipo_flags} - DEPENDS ${${os}_builtins_libs} - OUTPUT_DIR ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) + # Don't build cc_kext libraries for simulator platforms + if(NOT ${os} MATCHES ".*sim$") + foreach (arch ${DARWIN_BUILTIN_ARCHS}) + # In addition to the builtins cc_kext includes some profile sources + darwin_add_builtin_library(clang_rt cc_kext + OS ${os} + ARCH ${arch} + SOURCES ${${arch}_SOURCES} ${PROFILE_SOURCES} + CFLAGS -arch ${arch} -mkernel + DEFS KERNEL_USE + PARENT_TARGET builtins) + endforeach() + darwin_lipo_libs(clang_rt.cc_kext_${os} + PARENT_TARGET builtins + LIPO_FLAGS ${${os}_cc_kext_lipo_flags} + DEPENDS ${${os}_cc_kext_libs} + OUTPUT_DIR ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) + endif() + endforeach() + + # We put the x86 sim slices into the archives for their base OS + foreach (os ${ARGN}) + if(NOT ${os} MATCHES ".*sim$") + darwin_lipo_libs(clang_rt.${os} + PARENT_TARGET builtins + LIPO_FLAGS ${${os}_builtins_lipo_flags} ${${os}sim_builtins_lipo_flags} + DEPENDS ${${os}_builtins_libs} ${${os}sim_builtins_libs} + OUTPUT_DIR ${COMPILER_RT_LIBRARY_OUTPUT_DIR}) + endif() endforeach() endmacro() |