On Mar 20, 2013, at 19:54, deeptech71 <deeptech71_at_gmail.com> wrote: > /usr/local/lib/gcc48/include/c++/bits/locale_facets.h:869: undefined reference to `std::ctype<char>::_M_widen_init() const' > [...] > /usr/local/lib/gcc48/include/c++/bits/stl_list.h:1550: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)' > [...] > > I worked around this by adding "/usr/local/lib/gcc48/libstdc++.so" to the make-rule. Weird. Why does this work? Should it? The link step is erroneously pulling in /usr/lib/libstdc++.so by default. Since that is an older version of libstdc++, it does not contain the symbols you listed. As you saw, forcing the link stage to use gcc 4.8's version of libstdc++ at least produces an executable. However, there is very likely still a problem at runtime, because the resulting executable probably does not have the correct rpath entry. This is a general problem with the gcc ports: they should all pull in their own version(s) of libstdc++.so instead of using the default linker path. And possibly add rpath entries, to make sure the correct version of libstdc++.so is used at runtime.Received on Wed Mar 20 2013 - 18:49:56 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:35 UTC