<br><br><div class="gmail_quote">On Thu, Sep 6, 2012 at 12:58 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_extra"><div class="gmail_quote"><div class="im">On Thu, Sep 6, 2012 at 2:39 AM, Alexey Samsonov <span dir="ltr"><<a href="mailto:samsonov@google.com" target="_blank">samsonov@google.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: samsonov<br>
Date: Thu Sep  6 01:39:02 2012<br>
New Revision: 163294<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=163294&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=163294&view=rev</a><br>
Log:<br>
[ASan] Nuke output_tests/ in favor of lit_tests/. Stop using Makefile.old.<br></blockquote><div><br></div></div><div>Wow, awesome! Any specific complaints thus far?</div></div></div></blockquote><div><br></div><div>Hm, don't think so. Evgeniy is having a hard time leveraging cmake for Android build, though.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div>One I have run into is that there appears to be at least one .o file that takes over a minute to compile with a the just-built Clang when doing a debug+asserts build... I suspect there is some assert that is even more expensive than is reasonable slowing everything down, but I haven't dug into it...</div>
</div></div></blockquote><div><br></div><div>I haven't tested debug build. Regarding compile time, I've only noticed relatively slow compile time of main ASan unit test (few seconds). (release build), but I didn't look at it closely either.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Added:<br>
    compiler-rt/trunk/lib/asan/Makefile.disabled<br>
      - copied unchanged from r163292, compiler-rt/trunk/lib/asan/Makefile.old<br>
Removed:<br>
    compiler-rt/trunk/lib/asan/Makefile.old<br>
    compiler-rt/trunk/lib/asan/output_tests/<br>
Modified:<br>
    compiler-rt/trunk/lib/asan/README.txt<br>
<br>
Removed: compiler-rt/trunk/lib/asan/Makefile.old<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/Makefile.old?rev=163293&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/Makefile.old?rev=163293&view=auto</a><br>


==============================================================================<br>
--- compiler-rt/trunk/lib/asan/Makefile.old (original)<br>
+++ compiler-rt/trunk/lib/asan/Makefile.old (removed)<br>
@@ -1,334 +0,0 @@<br>
-#===- lib/asan/Makefile.old --------------------------------*- Makefile -*--===#<br>
-#<br>
-#                     The LLVM Compiler Infrastructure<br>
-#<br>
-# This file is distributed under the University of Illinois Open Source<br>
-# License. See LICENSE.TXT for details.<br>
-#<br>
-#===------------------------------------------------------------------------===#<br>
-<br>
-OS=$(shell uname | tr '[A-Z]' '[a-z]')<br>
-ROOT=$(shell pwd)<br>
-MAKEFILE=Makefile.old  # this file.<br>
-<br>
-ifeq ($(ARCH), android)<br>
-  ANDROID_CFLAGS= \<br>
-               -DANDROID \<br>
-               -D__WORDSIZE=32 \<br>
-               -I$(ANDROID_BUILD_TOP)/external/stlport/stlport \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic/libstdc++/include \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic/libc/arch-arm/include \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic/libc/include \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic/libc/kernel/common \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic/libc/kernel/arch-arm \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic/libm/include \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic/libm/include/arm \<br>
-               -I$(ANDROID_BUILD_TOP)/bionic/libthread_db/include \<br>
-               -L$(ANDROID_PRODUCT_OUT)/obj/lib<br>
-  CLANG_FLAGS= \<br>
-               -ccc-host-triple arm-linux-androideabi \<br>
-               -D__compiler_offsetof=__builtin_offsetof \<br>
-               -D__ELF__=1 \<br>
-               -ccc-gcc-name arm-linux-androideabi-g++ \<br>
-               $(ANDROID_CFLAGS)<br>
-  CC=$(ANDROID_EABI_TOOLCHAIN)/arm-linux-androideabi-gcc $(ANDROID_CFLAGS)<br>
-  CXX=$(ANDROID_EABI_TOOLCHAIN)/arm-linux-androideabi-g++ $(ANDROID_CFLAGS)<br>
-endif<br>
-<br>
-ifeq ($(ARCH), arm)<br>
-  # Example make command line:<br>
-  # CROSSTOOL=$HOME/x-tools/arm-unknown-linux-gnueabi/ PATH=$CROSSTOOL/bin:$PATH make ARCH=arm asan_test<br>
-  CLANG_FLAGS= \<br>
-               -ccc-host-triple arm-unknown-linux-gnueabi \<br>
-               -march=armv7-a -mfloat-abi=softfp -mfp=neon \<br>
-               -ccc-gcc-name arm-unknown-linux-gnueabi-g++ \<br>
-               -B$(CROSSTOOL)/lib/gcc/arm-unknown-linux-gnueabi/4.4.4 \<br>
-               -B$(CROSSTOOL)/arm-unknown-linux-gnueabi/sys-root/usr/lib \<br>
-               -I$(CROSSTOOL)/lib/gcc/arm-unknown-linux-gnueabi/4.4.4/include \<br>
-               -I$(CROSSTOOL)/arm-unknown-linux-gnueabi/include/c++/4.4.4 \<br>
-               -I$(CROSSTOOL)/arm-unknown-linux-gnueabi/include/c++/4.4.4/arm-unknown-linux-gnueabi \<br>
-               -I$(CROSSTOOL)/arm-unknown-linux-gnueabi/sys-root/include \<br>
-               -I$(CROSSTOOL)/arm-unknown-linux-gnueabi/sys-root/usr/include \<br>
-               -L$(CROSSTOOL)/lib/gcc/arm-unknown-linux-gnueabi/4.4.4 \<br>
-               -L$(CROSSTOOL)/arm-unknown-linux-gnueabi/sys-root/lib \<br>
-               -L$(CROSSTOOL)/arm-unknown-linux-gnueabi/sys-root/usr/lib<br>
-  CC=$(CROSSTOOL)/bin/arm-unknown-linux-gnueabi-gcc<br>
-  CXX=$(CROSSTOOL)/bin/arm-unknown-linux-gnueabi-g++<br>
-endif<br>
-<br>
-CLANG_FLAGS=<br>
-CLANG_VERSION=3.2<br>
-CLANG_BUILD=$(ROOT)/../../../../build/Release+Asserts<br>
-CLANG_CC=$(CLANG_BUILD)/bin/clang $(CLANG_FLAGS)<br>
-CLANG_CXX=$(CLANG_BUILD)/bin/clang++ $(CLANG_FLAGS)<br>
-FILE_CHECK=$(CLANG_BUILD)/bin/FileCheck<br>
-<br>
-CC=$(CLANG_CC)<br>
-CXX=$(CLANG_CXX)<br>
-<br>
-CFLAGS:=-Wall -fvisibility=hidden<br>
-<br>
-CLEANROOM_CXX=$(CXX) -Wall<br>
-<br>
-INSTALL_DIR=../asan_clang_$(OS)<br>
-BIN=bin_$(OS)<br>
-<br>
-LIBS=#-lpthread -ldl<br>
-ARCH=x86_64<br>
-<br>
-ASAN_STACK=1<br>
-ASAN_GLOBALS=1<br>
-ASAN_SCALE=0  # default will be used<br>
-ASAN_OFFSET=-1  #default will be used<br>
-ASAN_UAR=0<br>
-ASAN_HAS_EXCEPTIONS=1<br>
-ASAN_FLEXIBLE_MAPPING_AND_OFFSET=0<br>
-ASAN_HAS_BLACKLIST=1<br>
-ASAN_NEEDS_SEGV=1<br>
-ASAN_PIE=0<br>
-<br>
-ifeq ($(ARCH), i386)<br>
-BITS=32<br>
-SUFF=$(BITS)<br>
-CFLAGS:=$(CFLAGS) -m$(BITS)<br>
-endif<br>
-<br>
-ifeq ($(ARCH), x86_64)<br>
-BITS=64<br>
-SUFF=$(BITS)<br>
-CFLAGS:=$(CFLAGS) -m$(BITS)<br>
-endif<br>
-<br>
-ifeq ($(ARCH), arm)<br>
-BITS=32<br>
-SUFF=_arm<br>
-CFLAGS:=$(CFLAGS) -march=armv7-a<br>
-ASAN_HAS_EXCEPTIONS=0<br>
-endif<br>
-<br>
-ifeq ($(ARCH), android)<br>
-BITS=32<br>
-SUFF=_android<br>
-CFLAGS:=$(CFLAGS)<br>
-ASAN_HAS_EXCEPTIONS=0<br>
-endif<br>
-<br>
-PIE=<br>
-ifeq ($(ASAN_PIE), 1)<br>
-  PIE=-fPIE -pie<br>
-endif<br>
-<br>
-# This will build libasan on linux for both x86_64 and i386 in the<br>
-# desired location. The Mac library is already build by the clang's make.<br>
-# $(CLANG_BUILD)/lib/clang/$(CLANG_VERSION)/lib/$(OS)/libclang_rt.asan-$(ARCH).a<br>
-LIBASAN_INST_DIR=$(CLANG_BUILD)/lib/clang/$(CLANG_VERSION)/lib/$(OS)<br>
-LIBASAN_A=$(LIBASAN_INST_DIR)/libclang_rt.asan-$(ARCH).a<br>
-<br>
-BLACKLIST=<br>
-ifeq ($(ASAN_HAS_BLACKLIST), 1)<br>
-  BLACKLIST=-mllvm -asan-blacklist=$(ROOT)/tests/asan_test.ignore<br>
-endif<br>
-<br>
-COMMON_ASAN_DEFINES=\<br>
-                -DASAN_UAR=$(ASAN_UAR) \<br>
-               -DASAN_HAS_EXCEPTIONS=$(ASAN_HAS_EXCEPTIONS) \<br>
-               -DASAN_NEEDS_SEGV=$(ASAN_NEEDS_SEGV) \<br>
-               -DASAN_HAS_BLACKLIST=$(ASAN_HAS_BLACKLIST)<br>
-<br>
-CLANG_ASAN_CXX=$(CLANG_CXX) \<br>
-              -faddress-sanitizer \<br>
-               $(BLACKLIST)  \<br>
-               -mllvm -asan-stack=$(ASAN_STACK)      \<br>
-               -mllvm -asan-globals=$(ASAN_GLOBALS)  \<br>
-               -mllvm -asan-mapping-scale=$(ASAN_SCALE) \<br>
-               -mllvm -asan-mapping-offset-log=$(ASAN_OFFSET) \<br>
-               -mllvm -asan-use-after-return=$(ASAN_UAR) \<br>
-               $(COMMON_ASAN_DEFINES)<br>
-<br>
-CLANG_ASAN_LD=$(CLANG_CXX) -faddress-sanitizer<br>
-<br>
-GCC_ASAN_PATH=SET_FROM_COMMAND_LINE<br>
-GCC_ASAN_CXX=$(GCC_ASAN_PATH)/g++ \<br>
-            -faddress-sanitizer \<br>
-            $(COMMON_ASAN_DEFINES)<br>
-<br>
-GCC_ASAN_LD=$(GCC_ASAN_PATH)/g++ -ldl -lpthread<br>
-<br>
-ASAN_COMPILER=clang<br>
-<br>
-ifeq ($(ASAN_COMPILER), clang)<br>
-  ASAN_CXX=$(CLANG_ASAN_CXX)<br>
-  ASAN_LD=$(CLANG_ASAN_LD)<br>
-  ASAN_LD_TAIL=<br>
-endif<br>
-<br>
-ifeq ($(ASAN_COMPILER), gcc)<br>
-  ASAN_CXX=$(GCC_ASAN_CXX)<br>
-  ASAN_LD=$(GCC_ASAN_LD)<br>
-  ASAN_LD_TAIL=$(LIBASAN_A)<br>
-endif<br>
-<br>
-INTERCEPTION=../interception<br>
-MACH_OVERRIDE=$(INTERCEPTION)/mach_override<br>
-COMMON=../sanitizer_common<br>
-<br>
-RTL_HDR=$(wildcard *.h) \<br>
-       $(wildcard $(INTERCEPTION)/*.h) \<br>
-       $(wildcard $(MACH_OVERRIDE)/*.h) \<br>
-       $(wildcard $(COMMON)/*.h)<br>
-<br>
-LIBTSAN_SRC=$(wildcard *.cc)<br>
-INTERCEPTION_SRC=$(wildcard $(INTERCEPTION)/*.cc)<br>
-MACH_OVERRIDE_SRC=$(wildcard $(MACH_OVERRIDE)/*.c)<br>
-COMMON_SRC=$(wildcard $(COMMON)/*.cc)<br>
-<br>
-<br>
-LIBASAN_OBJ=$(patsubst %.cc,$(BIN)/%$(SUFF).o,$(LIBTSAN_SRC)) \<br>
-           $(patsubst $(INTERCEPTION)/%.cc,$(BIN)/%$(SUFF).o,$(INTERCEPTION_SRC)) \<br>
-           $(patsubst $(COMMON)/%.cc,$(BIN)/%$(SUFF).o,$(COMMON_SRC)) \<br>
-           $(patsubst $(MACH_OVERRIDE)/%.c,$(BIN)/%$(SUFF).o,$(MACH_OVERRIDE_SRC))<br>
-<br>
-GTEST_ROOT=third_party/googletest<br>
-GTEST_INCLUDE=-I$(GTEST_ROOT)/include<br>
-GTEST_MAKE_DIR=$(GTEST_ROOT)/make-$(OS)$(SUFF)<br>
-GTEST_LIB=$(GTEST_MAKE_DIR)/gtest-all.o<br>
-<br>
-all: b64 b32<br>
-<br>
-test: t64 t32 output_tests<br>
-       @echo "ALL TESTS PASSED"<br>
-<br>
-output_tests: b32 b64<br>
-       cd output_tests && ./test_output.sh $(CLANG_CXX) $(CLANG_CC) $(FILE_CHECK)<br>
-<br>
-t64: b64<br>
-       $(BIN)/asan_test64<br>
-t32: b32<br>
-       $(BIN)/asan_test32<br>
-<br>
-b64: | mk_bin_dir<br>
-       $(MAKE) -f $(MAKEFILE) ARCH=x86_64 asan_test asan_benchmarks<br>
-b32: | mk_bin_dir<br>
-       $(MAKE) -f $(MAKEFILE) ARCH=i386 asan_test asan_benchmarks<br>
-<br>
-lib64:<br>
-       $(MAKE) -f $(MAKEFILE) ARCH=x86_64 lib<br>
-lib32:<br>
-       $(MAKE) -f $(MAKEFILE) ARCH=i386 lib<br>
-<br>
-mk_bin_dir:<br>
-       mkdir -p $(BIN)<br>
-<br>
-clang:<br>
-       cd ../ && llvm/rebuild_clang_and_asan.sh > /dev/null<br>
-<br>
-install: install_clang<br>
-<br>
-$(INSTALL_DIR):<br>
-       mkdir -p $(INSTALL_DIR) $(INSTALL_DIR)/bin $(INSTALL_DIR)/lib<br>
-<br>
-install_clang: | $(INSTALL_DIR)<br>
-       cp -v $(CLANG_BUILD)/bin/clang $(INSTALL_DIR)/bin<br>
-       cp -rv $(CLANG_BUILD)/lib/clang $(INSTALL_DIR)/lib<br>
-       (cd $(INSTALL_DIR)/bin; ln -sf clang clang++)<br>
-<br>
-#install_lib: | $(INSTALL_DIR)<br>
-#      cp -v $(CLANG_BUILD)/lib/libasan*.a $(INSTALL_DIR)/lib<br>
-<br>
-$(BIN)/asan_noinst_test$(SUFF).o: tests/asan_noinst_test.cc $(RTL_HDR) $(MAKEFILE)<br>
-       $(CLEANROOM_CXX) $(COMMON_ASAN_DEFINES) $(PIE) $(CFLAGS) $(GTEST_INCLUDE) \<br>
-               -I. -I.. -I../../include -g -c $< -O2 -o $@<br>
-<br>
-$(BIN)/asan_break_optimization$(SUFF).o: tests/asan_break_optimization.cc $(MAKEFILE)<br>
-       $(CLEANROOM_CXX) $(PIE) $(CFLAGS) -c $< -O0 -o $@<br>
-<br>
-$(BIN)/%_test$(SUFF).o: tests/%_test.cc $(RTL_HDR) $(MAKEFILE)<br>
-       $(ASAN_CXX) $(GTEST_INCLUDE) -I. -I.. -g -c $< -O2 -o $@ $(PIE) $(CFLAGS)<br>
-<br>
-$(BIN)/%_test$(SUFF).o: tests/%_<a href="http://test.mm" target="_blank">test.mm</a> $(RTL_HDR) $(MAKEFILE)<br>
-       $(ASAN_CXX) $(GTEST_INCLUDE) -I. -I.. -g -c $< -O2 -o $@ -ObjC $(PIE) $(CFLAGS)<br>
-<br>
-RTL_COMMON_FLAGS=$(PIE) $(CFLAGS) -fPIC -c -O2 -fno-exceptions -funwind-tables \<br>
-          -Ithird_party -I.. -I../../include $(ASAN_FLAGS)<br>
-<br>
-$(BIN)/%$(SUFF).o: $(INTERCEPTION)/%.cc $(RTL_HDR) $(MAKEFILE)<br>
-       $(CXX) $(RTL_COMMON_FLAGS) -o $@ -g $<<br>
-<br>
-$(BIN)/%$(SUFF).o: $(COMMON)/%.cc $(RTL_HDR) $(MAKEFILE)<br>
-       $(CXX) $(RTL_COMMON_FLAGS) -o $@ -g $<<br>
-<br>
-$(BIN)/%$(SUFF).o: $(MACH_OVERRIDE)/%.c $(RTL_HDR) $(MAKEFILE)<br>
-       $(CC) $(RTL_COMMON_FLAGS) -o $@ -g $<<br>
-<br>
-$(BIN)/%$(SUFF).o: %.cc $(RTL_HDR) $(MAKEFILE)<br>
-       $(CXX) $(RTL_COMMON_FLAGS) -o $@ -g $<  \<br>
-               -DASAN_NEEDS_SEGV=$(ASAN_NEEDS_SEGV) \<br>
-               -DASAN_HAS_EXCEPTIONS=$(ASAN_HAS_EXCEPTIONS) \<br>
-               -DASAN_FLEXIBLE_MAPPING_AND_OFFSET=$(ASAN_FLEXIBLE_MAPPING_AND_OFFSET)<br>
-<br>
-$(BIN)/%$(SUFF).o: %.c $(RTL_HDR) $(MAKEFILE)<br>
-       $(CC) $(PIE) $(CFLAGS) -fPIC -c -O2 -o $@ -g $< -Ithird_party \<br>
-               $(ASAN_FLAGS)<br>
-<br>
-ifeq ($(OS),darwin)<br>
-LD_FLAGS=-framework Foundation<br>
-else<br>
-LD_FLAGS=<br>
-endif<br>
-<br>
-lib: $(LIBASAN_A)<br>
-<br>
-$(LIBASAN_A): mk_bin_dir $(LIBASAN_OBJ) $(MAKEFILE)<br>
-       mkdir -p $(LIBASAN_INST_DIR)<br>
-       ar ru $@ $(LIBASAN_OBJ)<br>
-       $(CXX) -shared $(CFLAGS) $(LIBASAN_OBJ) $(LD_FLAGS) -o $(BIN)/libasan$(SUFF).so<br>
-<br>
-TEST_OBJECTS_COMMON=\<br>
-            $(BIN)/asan_globals_test$(SUFF).o \<br>
-            $(BIN)/asan_break_optimization$(SUFF).o \<br>
-            $(BIN)/asan_noinst_test$(SUFF).o \<br>
-            $(BIN)/asan_test$(SUFF).o<br>
-<br>
-BENCHMARK_OBJECTS=\<br>
-            $(BIN)/asan_benchmarks_test$(SUFF).o \<br>
-            $(BIN)/asan_break_optimization$(SUFF).o<br>
-<br>
-ifeq ($(OS),darwin)<br>
-TEST_OBJECTS=$(TEST_OBJECTS_COMMON) \<br>
-            $(BIN)/asan_mac_test$(SUFF).o<br>
-else<br>
-TEST_OBJECTS=$(TEST_OBJECTS_COMMON)<br>
-endif<br>
-<br>
-$(BIN)/asan_test$(SUFF): $(TEST_OBJECTS) $(LIBASAN_A) $(MAKEFILE) tests/asan_test.ignore $(GTEST_LIB)<br>
-       $(ASAN_LD) $(PIE) $(CFLAGS) -g -O3 $(TEST_OBJECTS) \<br>
-               $(LD_FLAGS) -o $@ $(LIBS) $(GTEST_LIB) $(ASAN_LD_TAIL)<br>
-<br>
-$(BIN)/asan_benchmarks$(SUFF): $(BENCHMARK_OBJECTS) $(LIBASAN_A) $(MAKEFILE) $(GTEST_LIB)<br>
-       $(ASAN_LD) $(PIE) $(CFLAGS) -g -O3 $(BENCHMARK_OBJECTS) \<br>
-               $(LD_FLAGS) -o $@ $(LIBS) $(GTEST_LIB) $(ASAN_LD_TAIL)<br>
-<br>
-asan_test: $(BIN)/asan_test$(SUFF)<br>
-<br>
-asan_benchmarks: $(BIN)/asan_benchmarks$(SUFF)<br>
-<br>
-# for now, build gtest with clang/asan even if we use a different compiler.<br>
-$(GTEST_LIB):<br>
-       mkdir -p $(GTEST_MAKE_DIR) && \<br>
-       cd $(GTEST_MAKE_DIR) && \<br>
-       $(MAKE) -f ../make/Makefile CXXFLAGS="$(PIE) $(CFLAGS) -g -w" \<br>
-         CXX="$(CLANG_CXX)"<br>
-<br>
-get_third_party:<br>
-       rm -rf third_party<br>
-       mkdir third_party<br>
-       (cd third_party && \<br>
-       svn co -r375        <a href="http://googletest.googlecode.com/svn/trunk" target="_blank">http://googletest.googlecode.com/svn/trunk</a> googletest \<br>
-       )<br>
-<br>
-clean:<br>
-       rm -f *.o *.ll *.S *.a *.log asan_test64* asan_test32*  a.out perf.data log<br>
-       rm -f $(LIBASAN_INST_DIR)/libclang_rt.asan-*.a<br>
-       rm -rf $(BIN)<br>
-       rm -rf $(GTEST_ROOT)/make-*<br>
<br>
Modified: compiler-rt/trunk/lib/asan/README.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/README.txt?rev=163294&r1=163293&r2=163294&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/README.txt?rev=163294&r1=163293&r2=163294&view=diff</a><br>


==============================================================================<br>
--- compiler-rt/trunk/lib/asan/README.txt (original)<br>
+++ compiler-rt/trunk/lib/asan/README.txt Thu Sep  6 01:39:02 2012<br>
@@ -4,22 +4,26 @@<br>
 We are in the process of integrating AddressSanitizer with LLVM, stay tuned.<br>
<br>
 Directory structre:<br>
-<br>
 README.txt       : This file.<br>
-Makefile.mk      : Currently a stub for a proper makefile. not usable.<br>
-Makefile.old     : Old out-of-tree makefile, the only usable one so far.<br>
+Makefile.mk      : File for make-based build.<br>
+CMakeLists.txt   : File for cmake-based build.<br>
 asan_*.{cc,h}    : Sources of the asan run-time lirbary.<br>
-mach_override/*  : Utility to override functions on Darwin (MIT License).<br>
 scripts/*        : Helper scripts.<br>
+tests/*          : ASan unit tests.<br>
+lit_tests/*      : ASan output tests.<br>
<br>
-Temporary build instructions (verified on linux):<br>
+Also ASan runtime needs the following libraries:<br>
+lib/interception/      : Machinery used to intercept function calls.<br>
+lib/sanitizer_common/  : Code shared between ASan and TSan.<br>
<br>
-cd lib/asan<br>
-make -f Makefile.old get_third_party  # gets googletest<br>
-make -f Makefile.old test -j 8 CLANG_BUILD=/path/to/Release+Asserts<br>
-# Optional:<br>
-# make -f Makefile.old install # installs clang and rt to lib/asan_clang_linux<br>
+Currently ASan runtime can be built by both make and cmake build systems.<br>
+(see compiler-rt/make and files Makefile.mk for make-based build and<br>
+files CMakeLists.txt for cmake-based build).<br>
<br>
-For more info see <a href="http://code.google.com/p/address-sanitizer/" target="_blank">http://code.google.com/p/address-sanitizer/</a><br>
+ASan unit and output tests work only with cmake. You may run this<br>
+command from the root of your cmake build tree:<br>
<br>
+make check-asan<br>
<br>
+For more instructions see:<br>
+<a href="http://code.google.com/p/address-sanitizer/wiki/HowToBuild" target="_blank">http://code.google.com/p/address-sanitizer/wiki/HowToBuild</a><br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">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></div></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div><br>