On Thu, 2025-03-27 at 10:49 +0000, Jonathan Wakely via Gcc-help wrote: > On Thu, 27 Mar 2025 at 10:48, Tom Kacvinsky via Gcc-help > <gcc-help@xxxxxxxxxxx> wrote: > > > > On Thu, Mar 27, 2025 at 6:28 AM Tom Kacvinsky <tkacvins@xxxxxxxxx> wrote: > > > > > Hi, > > > > > > I have a shared library that was built without linking to libstd++.so.6. > > > The mangled named > > > is _Z3St3absl. But I can't it resolved in the libraries I link against. > > > Where does this symbol originate? > > > > > > > Answering my own question - it's defined as a builtin. > > I don't think so, it's define in <bits/std_abs.h> like so: > > #ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO > inline long > abs(long __i) { return __builtin_labs(__i); } > #endif > > So it's either provided by your C library (which is the case for > Solaris, IIRC) or it's an inline function which should be define in > every object file that uses it. On Linux computers with GCC you should use the --demangle option to GNU nm or programmatically the <cxxabi.h> header with its abi::__cxa_demangle function as documented on https://gcc.gnu.org/onlinedocs/libstdc++/manual/ext_demangling.html For a concrete example see the RefPerSys GPL project in my signature (it should become an inference engine). Regards -- Basile STARYNKEVITCH <basile@xxxxxxxxxxxxxxxxx> 8 rue de la Faïencerie http://starynkevitch.net/Basile/ 92340 Bourg-la-Reine https://github.com/bstarynk France https://github.com/RefPerSys/RefPerSys