whizard is hosted by Hepforge, IPPP Durham

Opened 11 years ago

Closed 11 years ago

#490 closed defect (worksforme)

static test failure on MAC OS X with gcc-4.9

Reported by: Juergen Reuter Owned by: Juergen Reuter
Priority: P1 Milestone: v2.2.0
Component: core Version: 2.1.1
Severity: major Keywords:
Cc:

Description

THe static test fails linking with the following error message:

libtool: link: gfortran -g -O2 -o whizard.static .libs/libmanager.o  -L/Users/reuter/local/packages/whizard-2.1.1/src/whizard-core -L/Users/reuter/local/packages/whizard-2.1.1/src -L/Users/reuter/local/packages/whizard-2.1.1/src/hepmc -L/usr/local/lib -L/usr/local/lib/gcc/x86_64-apple-darwin11.4.2/4.9.0 -L/usr/local/lib/gcc/x86_64-apple-darwin11.4.2/4.9.0/../../.. /usr/local/lib/libstdc++.a -L/usr/local/packages/gcc-4.9.0_trunk/build/x86_64-apple-darwin11.4.2/libstdc++-v3/src -L/usr/local/packages/gcc-4.9.0_trunk/build/x86_64-apple-darwin11.4.2/libstdc++-v3/src/.libs ./.libs/libstatic.a -L/Users/reuter/local/packages/whizard-2.1.1/src/models /Users/reuter/local/packages/whizard-2.1.1/src/whizard-core/.libs/libwhizard_main.a /Users/reuter/local/packages/whizard-2.1.1/src/.libs/libomega.a /Users/reuter/local/packages/whizard-2.1.1/src/omega/src/.libs/libomega_core.a /Users/reuter/local/packages/whizard-2.1.1/src/.libs/libwhizard.a /Users/reuter/local/packages/whizard-2.1.1/src/vamp/src/.libs/libvamp.a /Users/reuter/local/packages/whizard-2.1.1/src/circe1/src/.libs/libcirce1.a /Users/reuter/local/packages/whizard-2.1.1/src/circe2/src/.libs/libcirce2.a /usr/local/lib/libLHAPDF.a /usr/local/lib/libgfortran.a /usr/local/lib/libquadmath.a -lm -lstdhep -lFmcfio /usr/local//lib/libHepMC.a 
Undefined symbols for architecture x86_64:
  "std::error_category::error_category()", referenced from:
      std::future_category()  in libstdc++.a(future.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

seems to be only on MAC OS X, (re)testing for Linux at the moment.

Change History (8)

comment:1 Changed 11 years ago by Juergen Reuter

Ok, this function is C++11 status, cf. http://en.cppreference.com/w/cpp/thread/future_category .

comment:2 Changed 11 years ago by Juergen Reuter

I'm going to check now whether this happens also 1. under Linux, and 2. for 4.7.3 and 4.8.0 under MAC. Just to gain some information. Could still be a problem of gcc. future_error is part of the exception handling, but the corresponding classes are not defined in <stdexcept> but in <future>.

comment:3 Changed 11 years ago by Juergen Reuter

First clue: on MAC OS X with gcc <= 4.7.3 it works. Testing 4.8.0 now.

comment:4 Changed 11 years ago by Juergen Reuter

And it also works with gcc 4.8.0. Only 4.9.0 (trunk) seems to fail. Hm. Somehow my suspicion is that it has to do with this here:

GCC 4.8.1 will be C++11 feature-complete [2013-04-01]
    Support for C++11 ref-qualifiers was added to the GCC 4.8 branch, making G++ the first C++ compiler to implement all the major language features of the C++11 standard. This functionality will be available in GCC 4.8.1.GCC 4.8.1 will be C++11 feature-complete [2013-04-01]
}}

comment:5 Changed 11 years ago by Juergen Reuter

It seems more and more to be a problem of gcc 4.8.1 and 4.9.0 and the build of their static runtime library. I submitted a bug report, but it is only a vague one: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57421

comment:6 Changed 11 years ago by Juergen Reuter

I managed to check that on Linux this problem does not appear, because only for MAC OS X due to the single pass linker properties we have to explicitly link the static libstdc++.a library.

comment:7 Changed 11 years ago by Juergen Reuter

Owner: changed from kilian to Juergen Reuter
Status: newassigned

It turns out that 4.8.1 is ok. So it is _not_ the C++11 standard implementation per se, but something inside the 4.9 trunk. Could be that there the C++11 standard in the static library is broken. Or it was the fault of a subversion update and a (partial) built that led to the fault. Investigating.

comment:8 Changed 11 years ago by Juergen Reuter

Resolution: worksforme
Status: assignedclosed

After checking out revision r199585 and recompilation of the compiler this test works. So either it was a bogus bug or it went away. Closing for now.

Note: See TracTickets for help on using tickets.