This is the mail archive of the gcc-bugs@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]

[Bug libitm/63781] New: potential linkage issue with libitm.1.dylib


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]