[PATCH] Add missing explicit instantiation for std::lower_bound template

Dodji Seketeli dodji@redhat.com
Wed Feb 6 08:34:00 GMT 2013

Paolo Carlini <paolo.carlini@oracle.com> writes:

>> Since commit r195676[1], it looks like
>> libstdc++-v3/src/c++11/hashtable_c++0x.cc is missing an explicit
>> instantiation for std::lower_bound.  This leads to libstdc++.so having
>> the symbol for that (missing) instantiation be undefined, thus
>> preventing executables from being linked with libstdc++.
> Note that I can confirm this only if I build with less optimization
> than the default -O2, say -O. That may explain why nobody noticed
> earlier.

Ah, right.  It's true that I build on my machine without optimization so
that I can debug problems that show up on my local machine.  And I
always forget that I do that.

>> The patchlet below seems to fixed the issue for me.
> Indeed, I think we want something like that. Thanks. In terms of nits,
> formatting and types (who knows, maybe on some systems a std::size_t
> is an unsigned long long), I would write something like the
> attached. Please double check that it works for you and go ahead.

Great!  Your amendments work well for me.  I committed it to trunk.

Thank you.


More information about the Gcc-patches mailing list