This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Currently, the libasan shared library in FSF gcc is linked without the Foundation framework on darwin... % otool -L /sw/lib/gcc4.9/lib/libasan.1.dylib /sw/lib/gcc4.9/lib/libasan.1.dylib: /sw/lib/gcc4.9/lib/libasan.1.dylib (compatibility version 2.0.0, current version 2.0.0) /sw/lib/gcc4.9/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.19.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) /sw/lib/gcc4.9/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) compared to llvm svn... % otool -L /sw/opt/llvm-3.4/lib/clang/3.4/lib/darwin/libclang_rt.asan_osx_dynamic.dylib /sw/opt/llvm-3.4/lib/clang/3.4/lib/darwin/libclang_rt.asan_osx_dynamic.dylib: /sw/opt/llvm-3.4/lib/clang/3.4/lib/darwin/libclang_rt.asan_osx_dynamic.dylib (compatibility version 0.0.0, current version 0.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.18.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) The attached patch adds the missing linkage of the Foundation framework to libasan_la_LDFLAGS which produces the desired linkage of... % otool -L /sw/lib/gcc4.9/lib/libasan.1.dylib /sw/lib/gcc4.9/lib/libasan.1.dylib: /sw/lib/gcc4.9/lib/libasan.1.dylib (compatibility version 2.0.0, current version 2.0.0) /sw/lib/gcc4.9/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.19.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.18.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0) /sw/lib/gcc4.9/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) Bootstrap and regression tested on x86_64-apple-darwin12 against Xcode 5.0.1 at r204750. Native configuration is x86_64-apple-darwin12.5.0 === g++ tests === Running target unix/-m32 === g++ Summary for unix/-m32 === # of expected passes 481 # of unsupported tests 132 Running target unix/-m64 === g++ Summary for unix/-m64 === # of expected passes 481 # of unsupported tests 132 === g++ Summary === # of expected passes 962 # of unsupported tests 264 /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/testsuite/g++/../../xg++ version 4.9.0 20131113 (experimental) (GCC) === gcc tests === Running target unix/-m32 === gcc Summary for unix/-m32 === # of expected passes 326 # of unsupported tests 101 Running target unix/-m64 === gcc Summary for unix/-m64 === # of expected passes 326 # of unsupported tests 101 === gcc Summary === # of expected passes 652 # of unsupported tests 202 /sw/src/fink.build/gcc49-4.9.0-1000/darwin_objdir/gcc/xgcc version 4.9.0 20131113 (experimental) (GCC) Compiler version: 4.9.0 20131113 (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 This change is sufficient to suppress the failures in sanitizer/PR58994 at -m64. Okay for gcc trunk after libsanitizer is synced with the alternative fix from http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20131111/194748.html so that we are following the norms for linkage on darwin and adhere closer to the llvm libsanitizer build approach for libasan? Jack ps Note that "-Wl,-framework,Foundation" is used to prevent libtool from munging the the flags. libsanitizer/ 2013-11-13 Jack Howarth <howarth@bromo.med.uc.edu> PR sanitizer/58994 * asan/Makefile.am (libasan_la_LDFLAGS): Link to Foundation framework on darwin. * asan/Makefile.in: Regenerate. Index: libsanitizer/asan/Makefile.am =================================================================== --- libsanitizer/asan/Makefile.am (revision 204750) +++ libsanitizer/asan/Makefile.am (working copy) @@ -43,7 +43,11 @@ libasan_la_LIBADD = $(top_builddir)/sani endif libasan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDFLAGS) +if USING_MAC_INTERPOSE +libasan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -Wl,-framework,Foundation -lpthread -ldl +else libasan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` -lpthread -ldl +endif libasan_preinit.o: asan_preinit.o cp $< $@
Attachment:
libasan_linkage.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |