From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13471 invoked by alias); 8 Nov 2014 17:33:15 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 13445 invoked by uid 48); 8 Nov 2014 17:33:11 -0000 From: "howarth at bromo dot med.uc.edu" To: gcc-bugs@gcc.gnu.org Subject: [Bug libitm/63781] New: potential linkage issue with libitm.1.dylib Date: Sat, 08 Nov 2014 17:33:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libitm X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: howarth at bromo dot med.uc.edu X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-11/txt/msg00532.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63781 Bug ID: 63781 Summary: potential linkage issue with libitm.1.dylib Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libitm Assignee: unassigned at gcc dot gnu.org Reporter: howarth at bromo dot med.uc.edu Performing a test build of gcc trunk (with the patches from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63773) at r217238 with the configure files modified using... # hackish undefined symbol test perl -pi.bak -e 's|\$\{wl\}-undefined \$\{wl\}dynamic_lookup||g' boehm-gc/configure gcc/configure libatomic/configure libbacktrace/configure libcilkrts/configure libffi/configure libgfortran/configure libgo/configure libgomp/configure libitm/configure libjava/classpath/configure libjava/configure libobjc/configure libquadmath/configure libsanitizer/configure libssp/configure libstdc++-v3/configure libvtv/configure lto-plugin/configure zlib/configure perl -pi.bak -e 's|-undefined dynamic_lookup||g' boehm-gc/configure gcc/configure libatomic/configure libbacktrace/configure libcilkrts/configure libffi/configure libgfortran/configure libgo/configure libgomp/configure libitm/configure libjava/classpath/configure libjava/configure libobjc/configure libquadmath/configure libsanitizer/configure libssp/configure libstdc++-v3/configure libvtv/configure lto-plugin/configure zlib/configure to suppress the default libtool usage of "-undefined dynamic_lookup" and expose undefined symbols, I found the failure... # /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/./gcc/xgcc -B/sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/./gcc/ -B/sw/lib/gcc5.0/x86_64-apple-darwin13.4.0/bin/ -B/sw/lib/gcc5.0/x86_64-apple-darwin13.4.0/lib/ -isystem /sw/lib/gcc5.0/x86_64-apple-darwin13.4.0/include -isystem /sw/lib/gcc5.0/x86_64-apple-darwin13.4.0/sys-include -dynamiclib -o .libs/libitm.1.dylib .libs/aatree.o .libs/alloc.o .libs/alloc_c.o .libs/alloc_cpp.o .libs/barrier.o .libs/beginend.o .libs/clone.o .libs/eh_cpp.o .libs/local.o .libs/query.o .libs/retry.o .libs/rwlock.o .libs/useraction.o .libs/util.o .libs/sjlj.o .libs/tls.o .libs/method-serial.o .libs/method-gl.o .libs/method-ml.o .libs/x86_sse.o .libs/x86_avx.o -mrtm -pthread -install_name /sw/lib/gcc5.0/lib/libitm.1.dylib -compatibility_version 2 -current_version 2.0 -Wl,-single_module Undefined symbols for architecture x86_64: "operator delete[](void*)", referenced from: transaction clone for operator new[](unsigned long) in alloc_cpp.o transaction clone for operator delete[](void*) in alloc_cpp.o "operator delete[](void*, std::nothrow_t const&)", referenced from: _del_opvnt in alloc_cpp.o "operator delete(void*)", referenced from: transaction clone for operator new(unsigned long) in alloc_cpp.o transaction clone for operator delete(void*) in alloc_cpp.o "operator delete(void*, std::nothrow_t const&)", referenced from: _del_opnt in alloc_cpp.o "operator new[](unsigned long)", referenced from: transaction clone for operator new[](unsigned long) in alloc_cpp.o "operator new[](unsigned long, std::nothrow_t const&)", referenced from: transaction clone for operator new[](unsigned long, std::nothrow_t const&) in alloc_cpp.o "operator new(unsigned long)", referenced from: transaction clone for operator new(unsigned long) in alloc_cpp.o "operator new(unsigned long, std::nothrow_t const&)", referenced from: transaction clone for operator new(unsigned long, std::nothrow_t const&) in alloc_cpp.o "___cxa_allocate_exception", referenced from: __ITM_cxa_allocate_exception in eh_cpp.o "___cxa_begin_catch", referenced from: __ITM_cxa_begin_catch in eh_cpp.o "___cxa_end_catch", referenced from: __ITM_cxa_end_catch in eh_cpp.o "___cxa_throw", referenced from: __ITM_cxa_throw in eh_cpp.o "___cxa_tm_cleanup", referenced from: GTM::gtm_thread::revert_cpp_exceptions(GTM::gtm_transaction_cp*) in eh_cpp.o ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status All but one undefined symbols are suppressed by appending "-L../libstdc++-v3/src -lstdc++" to the linkage... # /sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/./gcc/xgcc -B/sw/src/fink.build/gcc50-5.0.0-1000/darwin_objdir/./gcc/ -B/sw/lib/gcc5.0/x86_64-apple-darwin13.4.0/bin/ -B/sw/lib/gcc5.0/x86_64-apple-darwin13.4.0/lib/ -isystem /sw/lib/gcc5.0/x86_64-apple-darwin13.4.0/include -isystem /sw/lib/gcc5.0/x86_64-apple-darwin13.4.0/sys-include -dynamiclib -o .libs/libitm.1.dylib .libs/aatree.o .libs/alloc.o .libs/alloc_c.o .libs/alloc_cpp.o .libs/barrier.o .libs/beginend.o .libs/clone.o .libs/eh_cpp.o .libs/local.o .libs/query.o .libs/retry.o .libs/rwlock.o .libs/useraction.o .libs/util.o .libs/sjlj.o .libs/tls.o .libs/method-serial.o .libs/method-gl.o .libs/method-ml.o .libs/x86_sse.o .libs/x86_avx.o -mrtm -pthread -install_name /sw/lib/gcc5.0/lib/libitm.1.dylib -compatibility_version 2 -current_version 2.0 -Wl,-single_module -L../libstdc++-v3/src -lstdc++ Undefined symbols for architecture x86_64: "___cxa_tm_cleanup", referenced from: GTM::gtm_thread::revert_cpp_exceptions(GTM::gtm_transaction_cp*) in eh_cpp.o ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status I am unclear why ___cxa_tm_cleanup is undefined on darwin.