[Resending with less text/html] On Thu, Jun 6, 2013 at 1:55 AM, Konstantin Serebryany <konstantin.s.serebry...@gmail.com> wrote: > On Thu, Jun 6, 2013 at 12:44 PM, Jakub Jelinek <ja...@redhat.com> wrote: > > On Thu, Jun 06, 2013 at 12:41:56PM +0400, Konstantin Serebryany wrote: > >> As for libstdc++, I completely agree, we don't want to depend on it, > >> and we don't. > > > > ubsan actually needs > > U _ZTIN10__cxxabiv117__class_type_infoE@@CXXABI_1.3 > > U _ZTIN10__cxxabiv120__si_class_type_infoE@@CXXABI_1.3 > > U _ZTIN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3 > > U _ZTISt9type_info@@GLIBCXX_3.4 > > U __dynamic_cast@@CXXABI_1.3 > > These things are needed only for the C++-specific undefined behavior checking. > At least, if I compile a C test using clang -fsanitize=undefined I > don't see any of these. > > Richard, am I right?
Yes. We build two different runtimes, one which needs these bits (for C++) and one which doesn't (for C). Adding __extension__ to the __int128 typedefs is fine too.