[compiler-rt] r248751 - [CMake] [Darwin] [builtins] Fix building builtins for Darwin simulator platforms.
Chris Bieneman via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 28 15:18:31 PDT 2015
Author: cbieneman
Date: Mon Sep 28 17:18:31 2015
New Revision: 248751
URL: http://llvm.org/viewvc/llvm-project?rev=248751&view=rev
Log:
[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.
Modified:
compiler-rt/trunk/cmake/Modules/CompilerRTDarwinUtils.cmake
Modified: compiler-rt/trunk/cmake/Modules/CompilerRTDarwinUtils.cmake
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/Modules/CompilerRTDarwinUtils.cmake?rev=248751&r1=248750&r2=248751&view=diff
==============================================================================
--- compiler-rt/trunk/cmake/Modules/CompilerRTDarwinUtils.cmake (original)
+++ compiler-rt/trunk/cmake/Modules/CompilerRTDarwinUtils.cmake Mon Sep 28 17:18:31 2015
@@ -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()
More information about the llvm-commits
mailing list