question about gcc name mangling for gnu multiversion

Ian Lance Taylor iant@google.com
Mon Oct 14 21:43:00 GMT 2013


On Mon, Oct 14, 2013 at 2:13 PM, Melanie B <mib.bugzilla@gmail.com> wrote:
> The gcc name mangling for gnu multiversions includes a _Znum_ prefix
> e.g. the test case in the gcc testsuite named mv1.C
>
>        .quad   _Z13_Z3foov.ifuncv
>         call    _Z13_Z3foov.ifuncv
>         .globl  _Z13_Z3foov.ifuncv
>         .type   _Z13_Z3foov.ifuncv, @gnu_indirect_function
>         .set    _Z13_Z3foov.ifuncv,_Z3foov.resolver
>  Is the _Z13 prefix needed? It seems like the .ifunc suffix would be adequate.
>
>  grep ifunc *.s | grep call
> mv12.s: call    _Z13_Z3foov.ifuncv
> mv12.s: call    _Z13_Z3foov.ifuncv
> mv1.s:  call    _Z13_Z3foov.ifuncv
> mv2.s:  call    _Z13_Z3foov.ifuncv
> mv5.s:  call    _Z13_Z3foov.ifuncv
> mv6.s:  call    _Z19_ZN3Foo3fooEv.ifuncP3Foo
>
> Do you expect the name mangling will be added to a standards document?

I don't know the details of this work, but I do know that a _Z13
prefix followed by 13 arbitrary bytes will be demangled sensibly by
the existing C++ demangler.

Ian



More information about the Gcc-help mailing list