<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>