Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 583166 - chromium 50-52: undefined reference to __atomic_is_lock_free
Summary: chromium 50-52: undefined reference to __atomic_is_lock_free
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-16 10:51 UTC by Evgeniy Dushistov
Modified: 2016-05-22 14:43 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (info,5.92 KB, text/plain)
2016-05-16 10:51 UTC, Evgeniy Dushistov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Evgeniy Dushistov 2016-05-16 10:51:54 UTC
Created attachment 434408 [details]
emerge --info

I tried to build  www-client/chromium-52.0.2723.2 and also chromium-50.0.2661.102, and got error:

obj/base/metrics/base.persistent_memory_allocator.o: In function `base::PersistentMemoryAllocator::PersistentMemoryAllocator(void*, unsigned long, unsigned long, unsigned long, base::BasicStringPiece<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, bool)':
persistent_memory_allocator.cc:(.text._ZN4base25PersistentMemoryAllocatorC2EPvmmmNS_16BasicStringPieceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEb+0x88): undefined reference to `__atomic_is_lock_free'
persistent_memory_allocator.cc:(.text._ZN4base25PersistentMemoryAllocatorC2EPvmmmNS_16BasicStringPieceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEb+0x2c3): undefined reference to `__atomic_is_lock_free'
collect2: error: ld returned 1 exit status
Comment 1 Ben Kohler gentoo-dev 2016-05-16 15:23:19 UTC
You have upgraded to gcc-5 and not done all the rebuilds required, according to the news item.


2015-10-22-gcc-5-new-c++11-abi
  Title                     GCC 5 Defaults to the New C++11 ABI
  Author                    Mike Frysinger <vapier@gentoo.org>
  Posted                    2015-10-22
  Revision                  2

GCC 5 uses the new C++ ABI by default.  When building new code, you might run
into link time errors that include lines similar to:
...: undefined reference to '_ZNSt6chrono12steady_clock3nowEv@GLIBCXX_3.4.17'

Or you might see linkage failures with "std::__cxx11::string" in the output.

These are signs that you need to rebuild packages using the new C++ ABI.
You can quickly do so by using revdep-rebuild (from gentoolkit).

For gentoolkit-0.3.1 or higher:
# revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc

For previous versions of gentoolkit:
# revdep-rebuild --library 'libstdc\+\+\.so\.6' -- --exclude gcc

For more details, feel free to peruse:
https://developerblog.redhat.com/2015/02/05/gcc5-and-the-c11-abi/
https://blogs.gentoo.org/blueness/2015/03/10/the-c11-abi-incompatibility-problem-in-gentoo/
Comment 2 Evgeniy Dushistov 2016-05-16 16:11:16 UTC
>You have upgraded to gcc-5 and not done all the rebuilds required, according to >the news item.

I am not agree with you. I have my own c++11 projects (which uses chrono, atomic, thread, string of course), and all of them compiled fine, also

>For gentoolkit-0.3.1 or higher:
># revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc

# revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc
 * Configuring search environment for revdep-rebuild
 * Environment mismatch from previous run, deleting temporary files...

 * Checking reverse dependencies
 * Packages containing binaries and libraries using libstdc++.so.6
 * will be emerged.

 * Collecting system binaries and libraries
 * Generated new 1_files.rr
 * Checking dynamic linking 
[ 100% ]                 

 * There are no dynamic links to libstdc++.so.6... All done. 

As you see revdev-rebuild rebuild nothing, plus I upgraded to gcc 5.x long time ago, and untill chromium 50 all compiled fine,
for example:

strings -a /usr/lib/debug/usr/lib64/chromium-browser/chromedriver.debug   | grep -i gcc
GCC: (Gentoo 5.2.0 p1.1, pie-0.6.4) 5.2.0
GCC: (Gentoo 5.2.0 p1.3, pie-0.6.5) 5.2.0

as your can see chromium 49 compiled with gcc 5.2.0
Comment 3 Ben Kohler gentoo-dev 2016-05-16 16:18:55 UTC
Please use the other revdep-rebuild command given, with the \ escapes