Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 616128 - sys-block/gparted-0.27.0: libgtkmm-2.4.so: undefined reference to Glib::ustring::ustring(std::string&&)
Summary: sys-block/gparted-0.27.0: libgtkmm-2.4.so: undefined reference to Glib::ustri...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gilles Dartiguelongue (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-04-20 15:26 UTC by Andrew Petelin
Modified: 2017-04-21 14:31 UTC (History)
1 user (show)

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


Attachments
emerge --info (emerge.info,5.96 KB, text/plain)
2017-04-20 15:28 UTC, Andrew Petelin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Petelin 2017-04-20 15:26:51 UTC
gparted-0.27.0 rebuild failed after migrating to gcc-5.4.0-r3, and the whole @world & @system rebuild.

Error:

> libtool: link: x86_64-pc-linux-gnu-g++ -Wall -O2 -pipe -fomit-frame-pointer -march=native -std=gnu++11 -Wl,-O1 -o gpartedbin BlockSpecial.o ...
> /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../lib64/libgtkmm-2.4.so: undefined reference to `Glib::ustring::ustring(std::string&&)'
> /usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../lib64/libgtkmm-2.4.so: undefined reference to `Glib::ustring::ustring(std::string const&)'
> collect2: error: ld returned 1 exit status
Comment 1 Andrew Petelin 2017-04-20 15:28:10 UTC
Created attachment 470474 [details]
emerge --info
Comment 2 Andrew Petelin 2017-04-20 15:42:00 UTC
There is no `ustring` ctor accepting `std::string&&` in dev-cpp/glibmm-2.50.0:

$ nm -CD /usr/lib64/libglibmm-2.4.so | grep 'Glib::ustring::ustring'
00000000000619c0 T Glib::ustring::ustring(unsigned long, char)
00000000000618b0 T Glib::ustring::ustring(unsigned long, unsigned int)
00000000000619f0 T Glib::ustring::ustring(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)
00000000000619f0 T Glib::ustring::ustring(Glib::ustring&&)
0000000000061870 T Glib::ustring::ustring(char const*)
0000000000061830 T Glib::ustring::ustring(char const*, unsigned long)
00000000000619d0 T Glib::ustring::ustring(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
00000000000619d0 T Glib::ustring::ustring(Glib::ustring const&)
0000000000061740 T Glib::ustring::ustring(Glib::ustring const&, unsigned long, unsigned long)
0000000000061720 T Glib::ustring::ustring()
0000000000043030 W Glib::ustring::ustring<char*>(char*, char*)
0000000000048c30 W Glib::ustring::ustring<char const*>(char const*, char const*)
00000000000619c0 T Glib::ustring::ustring(unsigned long, char)
00000000000618b0 T Glib::ustring::ustring(unsigned long, unsigned int)
00000000000619f0 T Glib::ustring::ustring(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)
00000000000619f0 T Glib::ustring::ustring(Glib::ustring&&)
0000000000061870 T Glib::ustring::ustring(char const*)
0000000000061830 T Glib::ustring::ustring(char const*, unsigned long)
00000000000619d0 T Glib::ustring::ustring(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
00000000000619d0 T Glib::ustring::ustring(Glib::ustring const&)
0000000000061740 T Glib::ustring::ustring(Glib::ustring const&, unsigned long, unsigned long)
0000000000061720 T Glib::ustring::ustring()
0000000000043030 W Glib::ustring::ustring<char*>(char*, char*)
0000000000048c30 W Glib::ustring::ustring<char const*>(char const*, char const*)
Comment 3 Andrew Petelin 2017-04-20 16:13:57 UTC
Looks like it's some inconsistency diring migration to C++-11 ABI. The constructor exists, but is named as

> 00000000000619f0 T Glib::ustring::ustring(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)
Comment 4 Pacho Ramos gentoo-dev 2017-04-21 09:28:51 UTC
Did you run:
revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc
?

it compiles nice for me with gcc5
Comment 5 Andrew Petelin 2017-04-21 14:30:52 UTC
> Did you run:
> revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc
> ?

Yes, it helped, thank you. This is strange, because I thought that complete rebuilding of @world and @system sets covers all packages that can be found by revdep-rebuild.

Moreover, revdep-rebuild failed when building dev-qt/assistant-4.8.6-r1, but this is an entirely different story...