Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
gcc 5.3 - undefined reference - abi:cxx11
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
musv
Advocate
Advocate


Joined: 01 Dec 2002
Posts: 3255
Location: de

PostPosted: Tue Mar 01, 2016 8:04 pm    Post subject: gcc 5.3 - undefined reference - abi:cxx11 Reply with quote

Guten Abend,

ich hab vor kurzem mal wieder ein Update gestartet. Dabei hab ich auch den gcc von 4.9 auf 5.3 aktualisiert. Entsprechend dem Wiki hab ich libtool neu gebaut und ein revdev-rebuild auf die libstdc++.so.6 durchgeführt.

Jetzt gibt's so einige Pakete, die dann mit ziemlich ähnlichen Fehlermeldungen abbrechen. Das sind u.a.
  • Libreoffice
  • Scribus
  • Aegisub
  • Mkvtoolnix


Die Fehlermeldungen sehen dann so aus (hier Libreoffice):
Code:
cppunittester.cxx:(.text+0x65c): undefined reference to `CppUnit::PlugInParamete
rs::PlugInParameters(std::__cxx11::basic_string<char, std::char_traits<char>, st
d::allocator<char> > const&)'
cppunittester.cxx:(.text+0x66b): undefined reference to `CppUnit::PlugInManager:
:load(std::__cxx11::basic_string<char, std::char_traits<char>,
 std::allocator<char> > const&, CppUnit::PlugInParameters const&)'
cppunittester.cxx:(.text+0x95a): undefined reference to `CppUnit::TestFactoryReg
istry::getRegistry(std::__cxx11::basic_string<char, std::char_traits<char>, std:
:allocator<char> > const&)'

Auffällig dabei ist immer std::__cxx11. Wie krieg ich das zum Laufen?
Back to top
View user's profile Send private message
Jean-Paul
Apprentice
Apprentice


Joined: 13 Apr 2009
Posts: 269

PostPosted: Wed Mar 02, 2016 10:05 am    Post subject: Reply with quote

Hier https://forums.gentoo.org/viewtopic-p-7774236.html?sid=efe9c83c7fb7b1a17eed4bab70a307e2
scheint es eine Lösung zu geben.
_________________
”Everything should be made as simple as possible, but no simpler.” – Albert Einstein
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1186

PostPosted: Wed Mar 02, 2016 1:43 pm    Post subject: Reply with quote

konkret in deinem Fall müsste das neubauen von cppunit helfen.
zu sehen an
Quote:
undefined reference to `CppUnit::

das CppUnit am Anfang ist der namespace in dem die symbole sind. der ist oft gleich oder ähnlich dem paket namen (leider nicht immer).
wenn du noch mehr solche fehler findest, dann kannst du so probieren das paket das neu gebaut werden muss zu finden.
Falls nicht, frag nochmal nach.
Wobei aber eigentlich das revdep-rebuild das schon behoben haben sollte, aber naja.

PS: bei größeren paketen hab ich die Erfahrung gemacht, dass du meistens das Paet, welches ursprünglich den Fehler hatte, mit FEATURES=keepwork weiterbauen kannst, damit du nicht nochmal alles von vorne machen musst.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4410

PostPosted: Wed Mar 02, 2016 2:48 pm    Post subject: Re: gcc 5.3 - undefined reference - abi:cxx11 Reply with quote

musv wrote:
Entsprechend dem Wiki hab ich libtool neu gebaut und ein revdev-rebuild auf die libstdc++.so.6 durchgeführt.

Scheinbar ist revdep-rebuild in python neugeschrieben worden. Das alte revdep-rebuild gibts noch als revdep-rebuild.sh. Du kannst ja versuchen, ob das noch mehr findet.
Back to top
View user's profile Send private message
Klaus Meier
Advocate
Advocate


Joined: 18 Apr 2005
Posts: 2903
Location: Bozen

PostPosted: Wed Mar 02, 2016 4:05 pm    Post subject: Reply with quote

Für das Update von gcc:4 auf gcc:5 gibt es doch eine News, welche besagt:
Code:
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/

Des weiteren kann ich zu der Aussage von franzf sagen, ich hatte bislang noch nicht das Problem, dass das aktuelle revdep-rebuild irgendwelche Pakete nicht gefunden hat (das kommt ja sowieso nur noch ganz selten vor, deshalb kann ich dazu keine Aussage treffen) sondern dass es permanent Pakete neu bauen wollte, wo gar kein Problem vorlag.

Von daher ist revdep-rebuild.sh immer noch bevorzugt einzusetzen. Und probiere es dann mal mit dem oben angegebenen.

Edit: Ich habe schon den gcc:5 genutzt, bevor ich diesen Hinweis mit dem revdep-rebuild irgendwas bekommen habe. Ich habe es damals mit 2x emerge -e world gelöst...
Back to top
View user's profile Send private message
musv
Advocate
Advocate


Joined: 01 Dec 2002
Posts: 3255
Location: de

PostPosted: Wed Mar 02, 2016 5:37 pm    Post subject: Reply with quote

franzf: revdep-rebuild hatte ich schon probiert. Der findet nichts - weder in der Python- noch Shellscriptversion.

Christian99: Danke, das war der entscheidende Hinweis. Man muss dann halt bei den Klassen googlen, zu welchem Paket die gehören. Ist etwas mühselige Kleinarbeit, klappt aber.

Klaus: Hier gibt's den Patch für Revdep-rebuild.sh, um das Script für "broken ABI" fit zu machen.

Update:
Leider macht der Patch zumindest bei mir nicht das, was er soll. Ich hatte danach trotzdem noch so einige Pakete mit der ABI-Inkonsistenz. Offensichtlich muss man tatsächlich erst bis zum Fehlerfall warten.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum