gcc symbol names

Al Niessner Al_Niessner@bigfoot.com
Sun Feb 27 12:17:00 GMT 2000


Target is the powerpc-wrs-vxworks.

Original names were generated using the VxWorks cross compiler (Tornado II)
on the Sun Solaris platform. The new names are being generated using egcs
1.1.2 cross compiler built for VxWorks on the Linux platform.

On Solaris platform:
> gcc --version
    cygnus-2.7.2-960126 egcs-971225 tornado 2.0

On Linux platform:
> gcc --version
    egcs-2.91.66

There are literally hundreds of these names that could be substituted for
'blahblahblah', I was just trying to reduce the scope, but here are a few
samples if you want real names (they were obtained by doing a diff on the nm
output from the .a files generated by compiling then using ar -- < is Linux
and > is Solaris):

< _._10tRTCObject
< _._11tBaseObject
< _._15TAO_ServantBase
< _._23TAO_RefCountServantBase
< _._23tDmc1308ControllerBoard
< _._5tPing
< _._Q211POA_RTCCore9RTCObject
< _._Q214POA_PingModule10PingObject
< _._Q215POA_RTCHardware5Board
< _._Q217POA_Dmc1308Module17Dmc1308Controller
---
> _$_10tRTCObject
> _$_11tBaseObject
> _$_15TAO_ServantBase
> _$_23TAO_RefCountServantBase
> _$_23tDmc1308ControllerBoard
> _$_5tPing
> _$_Q211POA_RTCCore9RTCObject
> _$_Q214POA_PingModule10PingObject
> _$_Q215POA_RTCHardware5Board
> _$_Q217POA_Dmc1308Module17Dmc1308Controller

and some more

1750,1762c384,396
< _vt.13CORBA_MARSHAL
< _vt.13CORBA_UNKNOWN
< _vt.16TAO_Object_Field
< _vt.26TAO_GIOP_Twoway_Invocation
< _vt.Q210PingModule10PingObject
< _vt.Q210PingModule10PingObject.12CORBA_Object
< _vt.Q211RTCHardware5Board
< _vt.Q211RTCHardware5Board.12CORBA_Object
< _vt.Q213Dmc1308Module17Dmc1308Controller
< _vt.Q213Dmc1308Module17Dmc1308Controller.12CORBA_Object
< _vt.Q27RTCCore9RTCObject
< _vt.Q27RTCCore9RTCObject.12CORBA_Object
<
_vt.t18TAO_Object_Field_T2ZQ213Dmc1308Module17Dmc1308ControllerZQ213Dmc1308Module21Dmc1308Controller_var

---
> _vt$13CORBA_MARSHAL
> _vt$13CORBA_UNKNOWN
> _vt$16TAO_Object_Field
> _vt$26TAO_GIOP_Twoway_Invocation
> _vt$Q210PingModule10PingObject
> _vt$Q210PingModule10PingObject$12CORBA_Object
> _vt$Q211RTCHardware5Board
> _vt$Q211RTCHardware5Board$12CORBA_Object
> _vt$Q213Dmc1308Module17Dmc1308Controller
> _vt$Q213Dmc1308Module17Dmc1308Controller$12CORBA_Object
> _vt$Q27RTCCore9RTCObject
> _vt$Q27RTCCore9RTCObject$12CORBA_Object
>
_vt$t18TAO_Object_Field_T2ZQ213Dmc1308Module17Dmc1308ControllerZQ213Dmc1308Module21Dmc1308Controller_var




It really does reduce to a '.' for '$' substitution.

All and any help is appreciated.

Al Niessner

"Martin v. Loewis" wrote:

> > I built the egcs 1.1.2 compiler and am now having symbol name problems.
> > I have some old libraries that use a different naming scheme and I would
> > ike to know how to make the new gcc match the old gcc names.  The
> > difference is quite simple.  Using nm:
> >
> > old name: _$_blahblahblah
> > new name: _._blahblahblah
> >
> > How do I get the gcc I compiled to use '$' instead of '.'?
> >
> > Any and all help is appreciated.
>
> You'll have to give us some more details that that. What target system
> are you using? What is the exact spelling of the symbol? I very much
> doubt that it is '_._blahblahblah', because it looks like a C++
> destructor name, but that it would have to be '_._12blahblahblah'.
> There might be a very good reason for the change in the mangling; or
> it might be configuration problem.
>
> Regards,
> Martin



More information about the Gcc-help mailing list