[llvm-commits] [compiler-rt] r158811 - in /compiler-rt/trunk/lib: CMakeLists.txt asan/CMakeLists.txt sanitizer_common/CMakeLists.txt

Chandler Carruth chandlerc at gmail.com
Wed Jun 20 03:18:43 PDT 2012


Author: chandlerc
Date: Wed Jun 20 05:18:43 2012
New Revision: 158811

URL: http://llvm.org/viewvc/llvm-project?rev=158811&view=rev
Log:
Resuming work on the compiler-rt CMake build at long long last. In order
to get it working again, two changes were needed:

- I had to give up on glob-based file expansion. This just isn't well
  supported by CMake, and until we convince upstream there of its value,
  it's not worth dealing with the pain.
- Add the common library as otherwise even ASan won't build.

This now builds again, although the "correctness" of it is a touch
debatable. ;] Specifically, there is no merging of the common runtime
library with the asan runtime library into a single archive file. I'm
not really sure what the best technique is for that, and it may be
influenced by the ongoing discussion about how best to link runtime
libraries.

Note of course that this is still very much WIP. It doesn't entirely
work yet, and remains disabled by the LLVM projects/CMakeLists.txt until
it is in a working state.

Added:
    compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt
Modified:
    compiler-rt/trunk/lib/CMakeLists.txt
    compiler-rt/trunk/lib/asan/CMakeLists.txt

Modified: compiler-rt/trunk/lib/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/CMakeLists.txt?rev=158811&r1=158810&r2=158811&view=diff
==============================================================================
--- compiler-rt/trunk/lib/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/CMakeLists.txt Wed Jun 20 05:18:43 2012
@@ -2,27 +2,172 @@
 # generic implementations of the core runtime library along with optimized
 # architecture-specific code in various subdirectories.
 
-file(GLOB GENERIC_SOURCES . "*.c")
-
-# FIXME: We don't currently support building an atomic library, and as it must
-# be a separate library from the runtime library, we need to remove its source
-# code from the glob.
-file(GLOB ATOMIC . "atomic.c")
-list(REMOVE_ITEM GENERIC_SOURCES ${ATOMIC})
+set(GENERIC_SOURCES
+  absvdi2.c
+  absvsi2.c
+  absvti2.c
+  adddf3.c
+  addsf3.c
+  addvdi3.c
+  addvsi3.c
+  addvti3.c
+  apple_versioning.c
+  ashldi3.c
+  ashlti3.c
+  ashrdi3.c
+  ashrti3.c
+  clear_cache.c
+  clzdi2.c
+  clzsi2.c
+  clzti2.c
+  cmpdi2.c
+  cmpti2.c
+  comparedf2.c
+  comparesf2.c
+  ctzdi2.c
+  ctzsi2.c
+  ctzti2.c
+  divdc3.c
+  divdf3.c
+  divdi3.c
+  divmoddi4.c
+  divmodsi4.c
+  divsc3.c
+  divsf3.c
+  divsi3.c
+  divti3.c
+  divxc3.c
+  enable_execute_stack.c
+  eprintf.c
+  extendsfdf2.c
+  ffsdi2.c
+  ffsti2.c
+  fixdfdi.c
+  fixdfsi.c
+  fixdfti.c
+  fixsfdi.c
+  fixsfsi.c
+  fixsfti.c
+  fixunsdfdi.c
+  fixunsdfsi.c
+  fixunsdfti.c
+  fixunssfdi.c
+  fixunssfsi.c
+  fixunssfti.c
+  fixunsxfdi.c
+  fixunsxfsi.c
+  fixunsxfti.c
+  fixxfdi.c
+  fixxfti.c
+  floatdidf.c
+  floatdisf.c
+  floatdixf.c
+  floatsidf.c
+  floatsisf.c
+  floattidf.c
+  floattisf.c
+  floattixf.c
+  floatundidf.c
+  floatundisf.c
+  floatundixf.c
+  floatunsidf.c
+  floatunsisf.c
+  floatuntidf.c
+  floatuntisf.c
+  floatuntixf.c
+  gcc_personality_v0.c
+  int_util.c
+  lshrdi3.c
+  lshrti3.c
+  moddi3.c
+  modsi3.c
+  modti3.c
+  muldc3.c
+  muldf3.c
+  muldi3.c
+  mulodi4.c
+  mulosi4.c
+  muloti4.c
+  mulsc3.c
+  mulsf3.c
+  multi3.c
+  mulvdi3.c
+  mulvsi3.c
+  mulvti3.c
+  mulxc3.c
+  negdf2.c
+  negdi2.c
+  negsf2.c
+  negti2.c
+  negvdi2.c
+  negvsi2.c
+  negvti2.c
+  paritydi2.c
+  paritysi2.c
+  parityti2.c
+  popcountdi2.c
+  popcountsi2.c
+  popcountti2.c
+  powidf2.c
+  powisf2.c
+  powitf2.c
+  powixf2.c
+  subdf3.c
+  subsf3.c
+  subvdi3.c
+  subvsi3.c
+  subvti3.c
+  trampoline_setup.c
+  truncdfsf2.c
+  ucmpdi2.c
+  ucmpti2.c
+  udivdi3.c
+  udivmoddi4.c
+  udivmodsi4.c
+  udivmodti4.c
+  udivsi3.c
+  udivti3.c
+  umoddi3.c
+  umodsi3.c
+  umodti3.c
+  )
 
 if(CAN_TARGET_X86_64)
-  file(GLOB X86_64_SOURCES . "*.c" "*.S")
-  add_library(clang_rt.x86_64 STATIC ${X86_64_SOURCES} ${GENERIC_SOURCES})
+  add_library(clang_rt.x86_64 STATIC
+    x86_64/floatdidf.c
+    x86_64/floatdisf.c
+    x86_64/floatdixf.c
+    x86_64/floatundidf.S
+    x86_64/floatundisf.S
+    x86_64/floatundixf.S
+    ${GENERIC_SOURCES}
+    )
   set_target_properties(clang_rt.x86_64 PROPERTIES COMPILE_FLAGS "${TARGET_X86_64_CFLAGS}")
 endif()
 if(CAN_TARGET_I386)
-  file(GLOB I386_SOURCES . "*.c" "*.S")
-  add_library(clang_rt.i386 STATIC ${I386_SOURCES} ${GENERIC_SOURCES})
+  add_library(clang_rt.i386 STATIC
+    i386/ashldi3.S
+    i386/ashrdi3.S
+    i386/divdi3.S
+    i386/floatdidf.S
+    i386/floatdisf.S
+    i386/floatdixf.S
+    i386/floatundidf.S
+    i386/floatundisf.S
+    i386/floatundixf.S
+    i386/lshrdi3.S
+    i386/moddi3.S
+    i386/muldi3.S
+    i386/udivdi3.S
+    i386/umoddi3.S
+    ${GENERIC_SOURCES}
+    )
   set_target_properties(clang_rt.i386 PROPERTIES COMPILE_FLAGS "${TARGET_I386_CFLAGS}")
 endif()
 
 # Also support building feature-based runtime libraries in their various
 # subdircetories.
+add_subdirectory(sanitizer_common)
 add_subdirectory(asan)
 
 # FIXME: Add support for the profile library.

Modified: compiler-rt/trunk/lib/asan/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/CMakeLists.txt?rev=158811&r1=158810&r2=158811&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/asan/CMakeLists.txt Wed Jun 20 05:18:43 2012
@@ -1,6 +1,27 @@
 # Build for the AddressSanitizer runtime support library.
 
-file(GLOB ASAN_SOURCES "*.cc")
+include_directories(..)
+
+set(ASAN_SOURCES
+  asan_allocator.cc
+  asan_globals.cc
+  asan_interceptors.cc
+  asan_linux.cc
+  asan_mac.cc
+  asan_malloc_linux.cc
+  asan_malloc_mac.cc
+  asan_malloc_win.cc
+  asan_new_delete.cc
+  asan_poisoning.cc
+  asan_posix.cc
+  asan_printf.cc
+  asan_rtl.cc
+  asan_stack.cc
+  asan_stats.cc
+  asan_thread.cc
+  asan_thread_registry.cc
+  asan_win.cc
+  )
 
 if(CAN_TARGET_X86_64)
   add_library(clang_rt.asan-x86_64 STATIC ${ASAN_SOURCES})

Added: compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt?rev=158811&view=auto
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt (added)
+++ compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt Wed Jun 20 05:18:43 2012
@@ -0,0 +1,23 @@
+# Build system for the common Sanitizer runtime support library components.
+# These components are shared between AddressSanitizer and ThreadSanitizer.
+
+set(SANITIZER_SOURCES
+  sanitizer_allocator.cc
+  sanitizer_common.cc
+  sanitizer_libc.cc
+  sanitizer_linux.cc
+  sanitizer_mac.cc
+  sanitizer_posix.cc
+  sanitizer_printf.cc
+  sanitizer_symbolizer.cc
+  sanitizer_win.cc
+  )
+
+if(CAN_TARGET_X86_64)
+  add_library(clang_rt.sanitizer-x86_64 STATIC ${SANITIZER_SOURCES})
+  set_target_properties(clang_rt.sanitizer-x86_64 PROPERTIES COMPILE_FLAGS "${TARGET_X86_64_CFLAGS}")
+endif()
+if(CAN_TARGET_I386)
+  add_library(clang_rt.sanitizer-i386 STATIC ${SANITIZER_SOURCES})
+  set_target_properties(clang_rt.sanitizer-i386 PROPERTIES COMPILE_FLAGS "${TARGET_I386_CFLAGS}")
+endif()





More information about the llvm-commits mailing list