summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Bieneman <beanz@apple.com>2015-09-28 22:18:31 +0000
committerChris Bieneman <beanz@apple.com>2015-09-28 22:18:31 +0000
commit1341472f929a01b7c1b49ee539e74770ede78ffd (patch)
tree360d5e69987d3594233873664f139517fd907153
parent4e6527682a7f828611d23693507da1911a30c431 (diff)
downloadbcm5719-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.cmake50
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()
OpenPOWER on IntegriCloud