Hi Kostya, As an aside, all of these asan tests have failed on powerpc64le-unknown-linux-gnu since we began testing that target. I have not yet had time to investigate why. Do you think there may be an implicit or explicit assumption anywhere that PowerPC64 is big endian? This is generally not safe to assume. Anyway, I hope it's something easy like that, and thought you might have an idea.
Thanks, Bill On Mon, 2013-11-04 at 11:46 -0500, Jack Howarth wrote: > On Mon, Nov 04, 2013 at 06:47:13AM -0800, Konstantin Serebryany wrote: > > +glider, our Mac expert. > > > > Hi Jack, > > > > This patch has not been tested on Mac and we generally do not claim > > that gcc-asan is supported on Mac. > > clang-asan *is* supported on Mac and our bots are green (this patch is > > a merge of the sources which are regularly tested on Mac, > > but the build procedure is different). > > > > The failing assertion is weird, I haven't seen it since last year > > (https://code.google.com/p/address-sanitizer/issues/detail?id=117), > > but Alexander should know more. > > > > What is your version of Mac OS? > > I am testing on MacOS X 10.8.5 with FSF gcc trunk built as... > > % gcc-fsf-4.9 -v > Using built-in specs. > COLLECT_GCC=gcc-fsf-4.9 > COLLECT_LTO_WRAPPER=/sw/lib/gcc4.9/libexec/gcc/x86_64-apple-darwin12.5.0/4.9.0/lto-wrapper > Target: x86_64-apple-darwin12.5.0 > Configured with: ../gcc-4.9-20131101/configure --prefix=/sw > --prefix=/sw/lib/gcc4.9 --mandir=/sw/share/man --infodir=/sw/lib/gcc4.9/info > --enable-languages=c,c++,fortran,lto,objc,obj-c++,java --with-gmp=/sw > --with-libiconv-prefix=/sw --with-isl=/sw --with-cloog=/sw --with-mpc=/sw > --with-system-zlib --enable-checking=yes --x-includes=/usr/X11R6/include > --x-libraries=/usr/X11R6/lib --program-suffix=-fsf-4.9 > Thread model: posix > gcc version 4.9.0 20131101 (experimental) (GCC) > > > > > --kcc > > > > On Sat, Nov 2, 2013 at 10:25 AM, Jack Howarth <howa...@bromo.med.uc.edu> > > wrote: > > > On Fri, Nov 01, 2013 at 04:13:05PM -0700, Konstantin Serebryany wrote: > > >> Jukub, > > >> > > >> This works! > > >> New patch attached. > > > > > > Konstantin, > > > This patch, when applied on top of r204305, bootstraps fine on > > > x86_64-apple-darwin12 but > > > produces a lot of regressions with... > > > > > > make -k check RUNTESTFLAGS="asan.exp --target_board=unix'{-m64}'" > > > > > > Native configuration is x86_64-apple-darwin12.5.0 > > > > > > === g++ tests === > > > > > > > > > Running target unix/-m64 > > > FAIL: c-c++-common/asan/global-overflow-1.c -O0 execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O1 execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O2 execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -Os execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O0 execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O1 execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O2 execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -Os execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O2 -flto -flto-partition=none > > > execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O0 execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O1 execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O2 execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O3 -fomit-frame-pointer execution > > > test > > > FAIL: c-c++-common/asan/memcmp-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -Os execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O2 -flto -flto-partition=none > > > execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O0 execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O1 execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O2 execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -Os execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O2 -flto -flto-partition=none > > > execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O0 execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O1 execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O2 execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -Os execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/sleep-before-dying-1.c -O2 execution test > > > FAIL: c-c++-common/asan/sleep-before-dying-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/sleep-before-dying-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O0 execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O1 execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O2 execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -Os execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/strip-path-prefix-1.c -O2 execution test > > > FAIL: c-c++-common/asan/strip-path-prefix-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/strip-path-prefix-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O0 execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O1 execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O2 execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -Os execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O0 execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O1 execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O2 execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -Os execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O2 -flto execution test > > > FAIL: g++.dg/asan/deep-stack-uaf-1.C -O0 execution test > > > FAIL: g++.dg/asan/deep-stack-uaf-1.C -O1 execution test > > > FAIL: g++.dg/asan/deep-stack-uaf-1.C -O2 execution test > > > FAIL: g++.dg/asan/deep-stack-uaf-1.C -O3 -fomit-frame-pointer execution > > > test > > > FAIL: g++.dg/asan/deep-stack-uaf-1.C -O3 -g execution test > > > FAIL: g++.dg/asan/deep-stack-uaf-1.C -Os execution test > > > FAIL: g++.dg/asan/deep-tail-call-1.C -O0 execution test > > > FAIL: g++.dg/asan/deep-tail-call-1.C -O1 execution test > > > FAIL: g++.dg/asan/deep-tail-call-1.C -O2 execution test > > > FAIL: g++.dg/asan/deep-tail-call-1.C -O3 -fomit-frame-pointer execution > > > test > > > FAIL: g++.dg/asan/deep-tail-call-1.C -O3 -g execution test > > > FAIL: g++.dg/asan/deep-tail-call-1.C -Os execution test > > > FAIL: g++.dg/asan/deep-tail-call-1.C -O2 -flto -flto-partition=none > > > execution test > > > FAIL: g++.dg/asan/deep-tail-call-1.C -O2 -flto execution test > > > FAIL: g++.dg/asan/deep-thread-stack-1.C -O0 execution test > > > FAIL: g++.dg/asan/deep-thread-stack-1.C -O1 execution test > > > FAIL: g++.dg/asan/deep-thread-stack-1.C -O2 execution test > > > FAIL: g++.dg/asan/deep-thread-stack-1.C -O3 -fomit-frame-pointer > > > execution test > > > FAIL: g++.dg/asan/deep-thread-stack-1.C -O3 -g execution test > > > FAIL: g++.dg/asan/deep-thread-stack-1.C -Os execution test > > > FAIL: g++.dg/asan/deep-thread-stack-1.C -O2 -flto -flto-partition=none > > > execution test > > > FAIL: g++.dg/asan/deep-thread-stack-1.C -O2 -flto execution test > > > FAIL: g++.dg/asan/interception-failure-test-1.C -O0 output pattern > > > test, is ==15047==AddressSanitizer CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: g++.dg/asan/interception-failure-test-1.C -O1 output pattern > > > test, is ==15061==AddressSanitizer CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: g++.dg/asan/interception-failure-test-1.C -O2 output pattern > > > test, is ==15075==AddressSanitizer CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: g++.dg/asan/interception-failure-test-1.C -O3 -fomit-frame-pointer > > > output pattern test, is ==15090==AddressSanitizer CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: g++.dg/asan/interception-failure-test-1.C -O3 -g output pattern > > > test, is ==15104==AddressSanitizer CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: g++.dg/asan/interception-failure-test-1.C -Os output pattern > > > test, is ==15118==AddressSanitizer CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: g++.dg/asan/interception-failure-test-1.C -O2 -flto > > > -flto-partition=none output pattern test, is ==15142==AddressSanitizer > > > CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: g++.dg/asan/interception-failure-test-1.C -O2 -flto output > > > pattern test, is ==15168==AddressSanitizer CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: g++.dg/asan/large-func-test-1.C -O0 execution test > > > FAIL: g++.dg/asan/large-func-test-1.C -O1 execution test > > > FAIL: g++.dg/asan/large-func-test-1.C -O2 execution test > > > FAIL: g++.dg/asan/large-func-test-1.C -O3 -fomit-frame-pointer > > > execution test > > > FAIL: g++.dg/asan/large-func-test-1.C -O3 -g execution test > > > FAIL: g++.dg/asan/large-func-test-1.C -Os execution test > > > FAIL: g++.dg/asan/large-func-test-1.C -O2 -flto -flto-partition=none > > > execution test > > > FAIL: g++.dg/asan/large-func-test-1.C -O2 -flto execution test > > > FAIL: g++.dg/asan/symbolize-callback-1.C -O2 execution test > > > FAIL: g++.dg/asan/symbolize-callback-1.C -O2 -flto -flto-partition=none > > > execution test > > > FAIL: g++.dg/asan/symbolize-callback-1.C -O2 -flto execution test > > > > > > === g++ Summary === > > > > > > # of expected passes 259 > > > # of unexpected failures 111 > > > # of unsupported tests 132 > > > /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/testsuite/g++/../../xg++ > > > version 4.9.0 20131101 (experimental) (GCC) > > > > > > === gcc tests === > > > > > > > > > Running target unix/-m64 > > > FAIL: c-c++-common/asan/global-overflow-1.c -O0 execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O1 execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O2 execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -Os execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/global-overflow-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O0 execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O1 execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O2 execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -Os execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O2 -flto -flto-partition=none > > > execution test > > > FAIL: c-c++-common/asan/heap-overflow-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O0 execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O1 execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O2 execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O3 -fomit-frame-pointer execution > > > test > > > FAIL: c-c++-common/asan/memcmp-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -Os execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O2 -flto -flto-partition=none > > > execution test > > > FAIL: c-c++-common/asan/memcmp-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O0 execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O1 execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O2 execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -Os execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O2 -flto -flto-partition=none > > > execution test > > > FAIL: c-c++-common/asan/null-deref-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O0 execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O1 execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O2 execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -Os execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/sanity-check-pure-c-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/sleep-before-dying-1.c -O2 execution test > > > FAIL: c-c++-common/asan/sleep-before-dying-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/sleep-before-dying-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O0 execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O1 execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O2 execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -Os execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/stack-overflow-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/strip-path-prefix-1.c -O2 execution test > > > FAIL: c-c++-common/asan/strip-path-prefix-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/strip-path-prefix-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O0 execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O1 execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O2 execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -Os execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/strncpy-overflow-1.c -O2 -flto execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O0 execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O1 execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O2 execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O3 -fomit-frame-pointer > > > execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O3 -g execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -Os execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O2 -flto > > > -flto-partition=none execution test > > > FAIL: c-c++-common/asan/use-after-free-1.c -O2 -flto execution test > > > > > > === gcc Summary === > > > > > > # of expected passes 178 > > > # of unexpected failures 70 > > > # of unsupported tests 101 > > > /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/xgcc version 4.9.0 > > > 20131101 (experimental) (GCC) > > > > > > > > > /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/xgcc version 4.9.0 > > > 20131101 (experimental) (GCC) > > > > > > > > > Compiler version: 4.9.0 20131101 (experimental) (GCC) > > > Platform: x86_64-apple-darwin12.5.0 > > > configure flags: --prefix=/sw --prefix=/sw/lib/gcc4.9 > > > --mandir=/sw/share/man --infodir=/sw/lib/gcc4.9/info > > > --enable-languages=c,c++,fortran,lto,objc,obj-c++,java --with-gmp=/sw > > > --with-libiconv-prefix=/sw --with-isl=/sw --with-cloog=/sw --with-mpc=/sw > > > --with-system-zlib --enable-checking=yes --x-includes=/usr/X11R6/include > > > --x-libraries=/usr/X11R6/lib --program-suffix=-fsf-4.9 > > > > > > Oddly executing... > > > > > > make -k check RUNTESTFLAGS="asan.exp --target_board=unix'{-m32}'" > > > > > > results in no regressions on x86_64-apple-darwin12. > > > > > > Native configuration is x86_64-apple-darwin12.5.0 > > > > > > === g++ tests === > > > > > > > > > Running target unix/-m32 > > > > > > === g++ Summary === > > > > > > # of expected passes 473 > > > # of unsupported tests 132 > > > /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/testsuite/g++/../../xg++ > > > version 4.9.0 20131101 (experimental) (GCC) > > > > > > === gcc tests === > > > > > > > > > Running target unix/-m32 > > > > > > === gcc Summary === > > > > > > # of expected passes 318 > > > # of unsupported tests 101 > > > /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/xgcc version 4.9.0 > > > 20131101 (experimental) (GCC) > > > > > > === gfortran tests === > > > > > > > > > Compiler version: 4.9.0 20131101 (experimental) (GCC) > > > Platform: x86_64-apple-darwin12.5.0 > > > configure flags: --prefix=/sw --prefix=/sw/lib/gcc4.9 > > > --mandir=/sw/share/man --infodir=/sw/lib/gcc4.9/info > > > --enable-languages=c,c++,fortran,lto,objc,obj-c++,java --with-gmp=/sw > > > --with-libiconv-prefix=/sw --with-isl=/sw --with-cloog=/sw --with-mpc=/sw > > > --with-system-zlib --enable-checking=yes --x-includes=/usr/X11R6/include > > > --x-libraries=/usr/X11R6/lib --program-suffix=-fsf-4.9 > > > > > > Has this patch been test on any darwin targets? > > > Jack > > > ps The failures all appear to be of the form... > > > > > > > > > Executing on host: > > > /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/xgcc > > > -B/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/ > > > /sw/src/fink.build/gcc49-4.9.0-1000/gcc-4.9-20131101/gcc/testsuite/c-c++-common/asan/memcmp-1.c > > > > > > -B/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/x86_64-apple-darwin12.5.0/./libsanitizer/asan/ > > > > > > -L/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/x86_64-apple-darwin12.5.0/./libsanitizer/asan/.libs > > > -fsanitize=address -g -fno-diagnostics-show-caret > > > -fdiagnostics-color=never -O0 -fno-builtin-memcmp -lm -m64 -o > > > ./memcmp-1.exe (timeout = 300) > > > spawn /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/xgcc > > > -B/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/ > > > /sw/src/fink.build/gcc49-4.9.0-1000/gcc-4.9-20131101/gcc/testsuite/c-c++-common/asan/memcmp-1.c > > > > > > -B/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/x86_64-apple-darwin12.5.0/./libsanitizer/asan/ > > > > > > -L/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/x86_64-apple-darwin12.5.0/./libsanitizer/asan/.libs > > > -fsanitize=address -g -fno-diagnostics-show-caret > > > -fdiagnostics-color=never -O0 -fno-builtin-memcmp -lm -m64 -o > > > ./memcmp-1.exe^M > > > PASS: c-c++-common/asan/memcmp-1.c -O0 (test for excess errors) > > > Setting LD_LIBRARY_PATH to > > > :/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc:/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/x86_64-apple-darwin12.5.0/./libsanitizer/asan/.libs::/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc:/sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/x86_64-apple-darwin12.5.0/./libsanitizer/asan/.libs > > > spawn [open ...]^M > > > ==23392==AddressSanitizer CHECK failed: > > > ../../../../gcc-4.9-20131101/libsanitizer/sanitizer_common/sanitizer_mac.cc:146 > > > "((env_ptr)) != (0)" (0x0, 0x0) > > > FAIL: c-c++-common/asan/memcmp-1.c -O0 execution test > > > > > >> > > >> Tested: > > >> make -C gcc check-g{cc,++} > > >> RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} asan.exp' > > >> make check -C gcc RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} > > >> ubsan.exp' > > >> > > >> =========== gcc/testsuite/ChangeLog > > >> > > >> 2013-10-XX Kostya Serebryany <k...@google.com> > > >> > > >> * g++.dg/asan/asan_test.cc: Update the test > > >> to match the fresh asan run-time. > > >> * c-c++-common/asan/stack-overflow-1.c: Ditto. > > >> > > >> =========== gcc/ChangeLog > > >> > > >> 2013-10-XX Kostya Serebryany <k...@google.com> > > >> > > >> Update to match the changed asan API. > > >> * asan.c: > > >> (asan_function_start): New function. > > >> (asan_emit_stack_protection): Update the string stored in the > > >> stack red zone to match new API. Store the PC of the current > > >> function in the red zone. > > >> (asan_global_struct): Update the __asan_global definition to > > >> match > > >> the new API. > > >> (asan_add_global): Ditto. > > >> * asan.h: Declare asan_function_start. > > >> * final.c: > > >> (final_start_function): Call asan_function_start. > > >> * sanitizer.def: Rename __asan_init_v1 to __asan_init_v3. > > >> > > >> =========== libsanitizer/ChangeLog > > >> > > >> 2013-10-XX Kostya Serebryany <k...@google.com> > > >> > > >> * All source files: Merge from upstream r191666. > > >> * merge.sh: Added lsan. > > >> * configure.ac: Added lsan. > > >> * Makefile.am: Added lsan. > > >> * sanitizer_common/Makefile.am: Added lsan. > > >> * asan/Makefile.am: Added dependency on lsan. > > >> * lsan/Makefile.am: New file. > > >> * asan/Makefile.in: Regenerate. > > >> * lsan/Makefile.in: Regenerate. > > >> * Makefile.in: Regenerate. > > >> * configure: Regenerate. > > >> * sanitizer_common/Makefile.in: Regenerate. > > >> > > >> On Wed, Oct 30, 2013 at 12:03 AM, Jakub Jelinek <ja...@redhat.com> wrote: > > >> > On Tue, Oct 29, 2013 at 05:15:24PM -0700, Konstantin Serebryany wrote: > > >> >> Actually, I guessed the flags: > > >> > > > >> > You don't have to guess them, if you look into > > >> > testsuite/g++/g++.log (or testsuite/gcc/gcc.log etc.), you can find > > >> > them > > >> > there. > > >> > > > >> >> % ../gcc-inst/bin/g++ -g -fsanitize=address -static-libasan -O2 -flto > > >> >> -fno-use-linker-plugin -flto-partition=none > > >> >> ../gcc/gcc/testsuite/c-c++-common/asan/stack-overflow-1.c; ./a.out > > >> >> 2>&1 > > >> >> > > >> >> /tmp/ccgSw6NI.lto.o: In function `main': > > >> >> ../gcc/gcc/testsuite/c-c++-common/asan/stack-overflow-1.c:13: > > >> >> undefined reference to `.LASANPC0.2585' > > >> >> collect2: error: ld returned 1 exit status > > >> >> > > >> >> Looks like this patch is not friendly to -flto > > >> > > > >> > I guess if you do: > > >> > ... > > >> > - tree str_cst; > > >> > + tree str_cst, decl, id; > > >> > ... > > >> > + ASM_GENERATE_INTERNAL_LABEL (buf, "LASANPC", > > >> > current_function_funcdef_no); > > >> > + id = get_identifier (buf); > > >> > + decl = build_decl (DECL_SOURCE_LOCATION (current_function_decl), > > >> > + VAR_DECL, id, char_type_node); > > >> > + SET_DECL_ASSEMBLER_NAME (decl, id); > > >> > + TREE_ADDRESSABLE (decl) = 1; > > >> > ... > > >> > > > >> > it might work even for -flto. The problem with -flto is that the > > >> > default > > >> > set_decl_assembler_name langhook for -flto appends dot and some number > > >> > to > > >> > the non-exported names, which is undesirable here, because we already > > >> > make > > >> > sure those first numbers are unique for the whole compilation unit. > > >> > > > >> > Jakub > > > > > > >