Opened 12 years ago
Closed 12 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 12 years ago by
comment:2 Changed 12 years ago by
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 12 years ago by
First clue: on MAC OS X with gcc <= 4.7.3 it works. Testing 4.8.0 now.
comment:4 Changed 12 years ago by
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 12 years ago by
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 12 years ago by
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 12 years ago by
Owner: | changed from kilian to Juergen Reuter |
---|---|
Status: | new → assigned |
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 12 years ago by
Resolution: | → worksforme |
---|---|
Status: | assigned → closed |
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.
Ok, this function is C++11 status, cf. http://en.cppreference.com/w/cpp/thread/future_category .