On Mon, Nov 4, 2013 at 8:46 AM, Jack Howarth <howa...@bromo.med.uc.edu> 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...
Jack, Have you been able to figure out what's wrong? Also, does asan from the clang trunk work for you? I suspect that this is some kind of build/Makefile issue. I'll commit this patch now and let's follow up on the Mac problem separately (with help from Alexander) --kcc > > % 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 >> > >> >