Jakub Jelinek <ja...@redhat.com> writes: > On Thu, May 23, 2013 at 10:45:32PM +0200, Rainer Orth wrote: >> Jakub Jelinek <ja...@redhat.com> writes: >> >> > On Thu, May 23, 2013 at 04:02:18PM +0200, Jakub Jelinek wrote: >> >> So, here is an untested 4.8 branch patch. The @GLIBCXX_3.4.17 + >> >> @@GLIBCXX_3.4.19 stuff gets ugly, I admit, but don't have other solution. >> >> Tested just that it compiles/links, abi list looks good and abi.exp >> >> testing, >> >> haven't actually tried to test it more than that. >> > >> > Now fully bootstrapped/regtested on x86_64-linux and i686-linux. >> >> This patch breaks Solaris bootstrap: >> >> ld: fatal: libstdc++-symbols.ver-sun: 4423: symbol >> 'std::chrono::steady_clock::now()' is already defined in file: >> libstdc++-symbols.ver-sun: symbol version conflict >> collect2: error: ld returned 1 exit status >> make[6]: *** [libstdc++.la] Error 1 >> >> I think std::chrono::steady_clock::now() needs to be protected with >> !(__sun__ && __svr4__) in GLIBCXX_3.4.17 since it only became available >> by default with Jonathan's patch. > > Ah, I see, gnu.ver has some > #ifdef HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT > #endif > guards there, does it work if you add it around the > GLIBCXX_3.4.17 std::chrono::steady_clock::now() definition?
If I do so, I would probably get an abi_check failure: with your patch, std::chrono::steady_clock::now() ends up in GLIBCXX_3.4.19 while it should appear in GLIBCXX_3.4.20 since this is new in GCC 4.9. > Seems the solaris baseline_symbols.txt files don't meantion > this symbol, thus it wasn't exported before and thus the > compat definition there isn't really needed for Solaris. Right, it only got enable by defaulting --enable-libstdcxx-time to auto. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University