std::abs(long)

Jonathan Wakely jwakely.gcc@gmail.com
Thu Mar 27 10:49:19 GMT 2025


On Thu, 27 Mar 2025 at 10:48, Tom Kacvinsky via Gcc-help
<gcc-help@gcc.gnu.org> wrote:
>
> On Thu, Mar 27, 2025 at 6:28 AM Tom Kacvinsky <tkacvins@gmail.com> 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.


More information about the Gcc-help mailing list