<div style="font-family: arial, helvetica, sans-serif"><font size="2"><br><br><div class="gmail_quote">On Wed, Jun 20, 2012 at 2:18 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: chandlerc<br>
Date: Wed Jun 20 05:18:43 2012<br>
New Revision: 158811<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=158811&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=158811&view=rev</a><br>
Log:<br>
Resuming work on the compiler-rt CMake build at long long last. In order<br>
to get it working again, two changes were needed:<br>
<br>
- I had to give up on glob-based file expansion.</blockquote><div><br></div><div>I never used cmake, but this sounds strange. </div><div>At least this is a regression compared to the old makefiles, which use glob expansion. </div>
<div>Not a big deal, but until we switch to cmake completely, it'll be hard to maintain it in working state. </div><div><br></div><div>Thanks anyway! </div><div><br></div><div>--kcc</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 This just isn't well<br>
  supported by CMake, and until we convince upstream there of its value,<br>
  it's not worth dealing with the pain.<br>
- Add the common library as otherwise even ASan won't build.<br>
<br>
This now builds again, although the "correctness" of it is a touch<br>
debatable. ;] Specifically, there is no merging of the common runtime<br>
library with the asan runtime library into a single archive file. I'm<br>
not really sure what the best technique is for that, and it may be<br>
influenced by the ongoing discussion about how best to link runtime<br>
libraries.<br>
<br>
Note of course that this is still very much WIP. It doesn't entirely<br>
work yet, and remains disabled by the LLVM projects/CMakeLists.txt until<br>
it is in a working state.<br>
<br>
Added:<br>
    compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt<br>
Modified:<br>
    compiler-rt/trunk/lib/CMakeLists.txt<br>
    compiler-rt/trunk/lib/asan/CMakeLists.txt<br>
<br>
Modified: compiler-rt/trunk/lib/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/CMakeLists.txt?rev=158811&r1=158810&r2=158811&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/CMakeLists.txt?rev=158811&r1=158810&r2=158811&view=diff</a><br>

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

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

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt (added)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt Wed Jun 20 05:18:43 2012<br>
@@ -0,0 +1,23 @@<br>
+# Build system for the common Sanitizer runtime support library components.<br>
+# These components are shared between AddressSanitizer and ThreadSanitizer.<br>
+<br>
+set(SANITIZER_SOURCES<br>
+  sanitizer_allocator.cc<br>
+  sanitizer_common.cc<br>
+  sanitizer_libc.cc<br>
+  sanitizer_linux.cc<br>
+  sanitizer_mac.cc<br>
+  sanitizer_posix.cc<br>
+  sanitizer_printf.cc<br>
+  sanitizer_symbolizer.cc<br>
+  sanitizer_win.cc<br>
+  )<br>
+<br>
+if(CAN_TARGET_X86_64)<br>
+  add_library(clang_rt.sanitizer-x86_64 STATIC ${SANITIZER_SOURCES})<br>
+  set_target_properties(clang_rt.sanitizer-x86_64 PROPERTIES COMPILE_FLAGS "${TARGET_X86_64_CFLAGS}")<br>
+endif()<br>
+if(CAN_TARGET_I386)<br>
+  add_library(clang_rt.sanitizer-i386 STATIC ${SANITIZER_SOURCES})<br>
+  set_target_properties(clang_rt.sanitizer-i386 PROPERTIES COMPILE_FLAGS "${TARGET_I386_CFLAGS}")<br>
+endif()<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></font></div>