- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: multiple repository symbols for same c++ metho...
Operating System - OpenVMS
1753559
Members
5874
Online
108796
Solutions
Forums
Categories
Company
Local Language
back
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Discussions
back
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Blogs
Information
Community
Resources
Community Language
Language
Forums
Blogs
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-02-2006 10:12 AM
02-02-2006 10:12 AM
multiple repository symbols for same c++ method
Compaq C++ V6.5-004 for OpenVMS Alpha V8.2
OpenVMS VMS 0 V8.2 AlphaServer_ES40 Alpha
I am facing a problem which has got me confused. To give you a background I have a template specialization
TAO::Objref_Traits<:policy>
defined in PolicyC.h and implemented in PolicyC.cpp. The specialization has couple of static methods, one of which gets used in Policy_ForwardC.cpp.
TAO::Objref_Traits<:policy>::marshal. This gets compiled into a static library called libTAO.a .
At link time I get undefined symbol error.
%LINK-W-USEUNDEF, undefined symbol CXX$MRSHLQ13TO32OBJRFTRI1TOGQE9 referenced
in psect $LINK$ offset %X00000CF0
in module Policy_ForwardC file DKA0:[tao_builds.taoadmin.1_4a.ACE_wrappers.lib]libTAO.a;1
I see the symbol entry CXX$MRSHLQ13TO32OBJRFTRI1TOGQE9 in the demangler file for tao:
CXX$MRSHLQ13TO32OBJRFTRI1TOGQE9bool TAO::Objref_Traits<:policy>::marshal(CORBA::Policy *, TAO_OutputCDR &)
I used 'analyze' to dump the symbols in PolicyC.o and couldn't find the symbol in it. Eyeballing the demangler file I see another entry for the same method:
CXX$MRSHLQ13TO35OBJRFTRI15QDNDBbool TAO::Objref_Traits<:policy>::marshal(CORBA::Policy *, TAO_OutputCDR &)
I verified that this symbol (ending with DNDB) is present in PolicyC.o. So what seems to be happening is that for some reason there are two symbols for the same method and while the compiler used one symbol for the file where the method is being defined, its using another symbol to look it up for where the method gets called. Unless I am mistaken a repository shouldn't have two entries for the same method. Could this be an indication of a compiler bug?
I am attaching the demangler file. If anyone wants I can send the PolicyC.* & Policy_ForwardC.* I will be very thankful if anyone can provide any insight on this matter.
thanks,
Ciju
OpenVMS VMS 0 V8.2 AlphaServer_ES40 Alpha
I am facing a problem which has got me confused. To give you a background I have a template specialization
TAO::Objref_Traits<:policy>
defined in PolicyC.h and implemented in PolicyC.cpp. The specialization has couple of static methods, one of which gets used in Policy_ForwardC.cpp.
TAO::Objref_Traits<:policy>::marshal. This gets compiled into a static library called libTAO.a .
At link time I get undefined symbol error.
%LINK-W-USEUNDEF, undefined symbol CXX$MRSHLQ13TO32OBJRFTRI1TOGQE9 referenced
in psect $LINK$ offset %X00000CF0
in module Policy_ForwardC file DKA0:[tao_builds.taoadmin.1_4a.ACE_wrappers.lib]libTAO.a;1
I see the symbol entry CXX$MRSHLQ13TO32OBJRFTRI1TOGQE9 in the demangler file for tao:
CXX$MRSHLQ13TO32OBJRFTRI1TOGQE9bool TAO::Objref_Traits<:policy>::marshal(CORBA::Policy *, TAO_OutputCDR &)
I used 'analyze' to dump the symbols in PolicyC.o and couldn't find the symbol in it. Eyeballing the demangler file I see another entry for the same method:
CXX$MRSHLQ13TO35OBJRFTRI15QDNDBbool TAO::Objref_Traits<:policy>::marshal(CORBA::Policy *, TAO_OutputCDR &)
I verified that this symbol (ending with DNDB) is present in PolicyC.o. So what seems to be happening is that for some reason there are two symbols for the same method and while the compiler used one symbol for the file where the method is being defined, its using another symbol to look it up for where the method gets called. Unless I am mistaken a repository shouldn't have two entries for the same method. Could this be an indication of a compiler bug?
I am attaching the demangler file. If anyone wants I can send the PolicyC.* & Policy_ForwardC.* I will be very thankful if anyone can provide any insight on this matter.
thanks,
Ciju
1 REPLY 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-04-2006 12:56 PM
02-04-2006 12:56 PM
Re: multiple repository symbols for same c++ method
What do you get from
$ cxxdemangle CXX$MRSHLQ13TO32OBJRFTRI1TOGQE9, CXX$MRSHLQ13TO35OBJRFTRI15QDNDB
It does look like you might get the same name, which sure doesn't sound right. Are you using different qualifiers when compiling the two different source files, or are you compiling with anything that might affect name mangling, such as /DISTINGUISH_NESTED_ENUMS or /NAMES.
Note that there are ECOs for C++. A later (though I'm not sure if latest) version is:
Compaq C++ V6.5-046 for OpenVMS Alpha V8.2
$ cxxdemangle CXX$MRSHLQ13TO32OBJRFTRI1TOGQE9, CXX$MRSHLQ13TO35OBJRFTRI15QDNDB
It does look like you might get the same name, which sure doesn't sound right. Are you using different qualifiers when compiling the two different source files, or are you compiling with anything that might affect name mangling, such as /DISTINGUISH_NESTED_ENUMS or /NAMES.
Note that there are ECOs for C++. A later (though I'm not sure if latest) version is:
Compaq C++ V6.5-046 for OpenVMS Alpha V8.2
The opinions expressed above are the personal opinions of the authors, not of Hewlett Packard Enterprise. By using this site, you accept the Terms of Use and Rules of Participation.
News and Events
Support
© Copyright 2024 Hewlett Packard Enterprise Development LP