Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

C++ LINK Issue

 
SOLVED
Go to solution

C++ LINK Issue

Upgrade from DEC C++ V5.3-005 to HP C++ V7.3-009 getting undefined symbols on code developed, not HP C++. On the surface the old system to new system looks similar. Upgraded OS revision as well. 6.2 to 8.3 OpenVMS.

Why?
Hints where to look?
Changes in CXXLINK causing?
Demangling/Mangling?
11 REPLIES 11
Steven Schweda
Honored Contributor

Re: C++ LINK Issue

> Hints where to look?

First, a VMS forum would be a better place
than this HP-UX forum.

http://forums.itrc.hp.com/service/forums/familyhome.do?familyId=288

An actual error message or two might be
useful, too. Did you re-compile everything
on the new OS with the new compiler?
John Gillings
Honored Contributor

Re: C++ LINK Issue

Vince,

You'll need to show your compile and link commands and exact text of any resulting error messages. In theory you should be able to link modules compiled with different versions of the compiler, but in practice, C++ mangling might be getting in the way.

It's a good habit to always compile with maximum listings - /LIST/SHOW=ALL or the language specific equivalent, then LINK/MAP/FULL/CROSS. That should help locate any problems.
A crucible of informative mistakes
Robert Gezelter
Honored Contributor

Re: C++ LINK Issue

Vince,

I agree with John. Should is the operative word. Full listings help. Crossing out the modules that resolve correctly will identify precisely what is happening.

I would start with demangling the unresolved symbols and checking if the declarations are correct, having seen problems similar to this in the past with various situations.

- Bob Gezelter, http://www.rlgsc.com

Re: C++ LINK Issue

$ CXXLINK /log /TRACE/DEBUG/NOMAP/EXEC=exe_tools:SDDVIEW.EXE sys$share:libcxxstd/INCL=CXXL_STD_INIT, here:sddview.opt/opt, SDDVIEW.OBJ, SDDVIEW_SMG.OBJ, UTL_SYSF_ITERATE.OBJ, RTNSDFI_UTIL.OBJ
%CXXLNK-I-LNKLIB_NAME, LNK$LIBRARY_3 defined as follows:

$ DEFINE LNK$LIBRARY_3 SYS$LIBRARY:LIBCXXSTD
%CXXLNK-I-LNKLIB_NAME, LNK$LIBRARY_2 defined as follows:

$ DEFINE LNK$LIBRARY_2 MILL_SHRLIB
%CXXLNK-I-LNKLIB_NAME, LNK$LIBRARY_1 defined as follows:

$ DEFINE LNK$LIBRARY_1 MILL_GPT4000LIB
%CXXLNK-I-LNKLIB_NAME, LNK$LIBRARY defined as follows:

$ DEFINE LNK$LIBRARY MILL_SDDLIB
%CXXLNK-I-LINKCOM, Link command:

link /TRACE/DEBUG/NOMAP/EXEC=EXE_TOOLS:SDDVIEW.EXE SYS$SHARE:LIBCXXSTD/INCL=CXXL_STD_INIT,HERE:SDDVIEW.OPT/OPT,SDDVIEW.OBJ,SDDVIEW_SMG.OBJ,UTL_SYSF_ITERATE.OBJ,RTNSDFI_UTIL.OBJ /NOEXEC/NOMAP/NOCROS/NOFULL/NOBRIE/NODEBU/INFORM

%CXXLNK-I-OBJFILE, Looking for object file: SYS$DISK:[.CXX_REPOSITORY]CXX$ADDRRRSXNQ13STD41BSC0KL9U2H.obj
%CXXLNK-I-OBJFILE, Looking for object file: SYS$DISK:[.CXX_REPOSITORY]CXX$DSPLYHADRXNQ13STD41B3ES1J3I.obj
%CXXLNK-I-OBJFILE, Looking for object file: SYS$DISK:[.CXX_REPOSITORY]CXX$UPDTDSPLYXNQ13STD41B34GGI49.obj
%CXXLNK-I-OBJFILE, Looking for object file: SYS$DISK:[.CXX_REPOSITORY]CXXL$CTQ13STD42BSCFSTRAM11JGA8S.obj
%CXXLNK-I-ADDOPT, Adding SYS$DISK:[.CXX_REPOSITORY]CXXL$CTQ13STD42BSCFSTRAM11JGA8S.obj to linker options file
%CXXLNK-I-OBJFILE, Looking for object file: SYS$DISK:[.CXX_REPOSITORY]CXXL$DTQ13STD42BSCFSTRAM1KJFVB3.obj
%CXXLNK-I-ADDOPT, Adding SYS$DISK:[.CXX_REPOSITORY]CXXL$DTQ13STD42BSCFSTRAM1KJFVB3.obj to linker options file
%CXXLNK-I-OBJFILE, Looking for object file: SYS$DISK:[.CXX_REPOSITORY]CXXL$GTLNQ13STD41BSCSTRA1ASRBQ4.obj
%CXXLNK-I-ADDOPT, Adding SYS$DISK:[.CXX_REPOSITORY]CXXL$GTLNQ13STD41BSCSTRA1ASRBQ4.obj to linker options file
%CXXLNK-I-OBJFILE, Looking for object file: SYS$DISK:[.CXX_REPOSITORY]CXXL$LSQ13STD41BSCSTRAMC19219UE.obj
%CXXLNK-I-ADDOPT, Adding SYS$DISK:[.CXX_REPOSITORY]CXXL$LSQ13STD41BSCSTRAMC19219UE.obj to linker options file
%CXXLNK-I-OBJFILE, Looking for object file: SYS$DISK:[.CXX_REPOSITORY]CXXL$RSXNQ13STD41BSCSTRA0HUVKVV.obj




It seems like after the /inform in the OLD system, it would read ,SYS$LIBRARY:LIBCXXSTD.OLB/LIB
Craig A Berry
Honored Contributor
Solution

Re: C++ LINK Issue

5.3 to 7.3 is a big jump. I suggest reading the release notes carefully. IIRC there were big changes in C++ between the 5.x and 6.x eras. You can find the release notes here:

http://h71000.www7.hp.com/commercial/cplus/alpha_doc/rnv.html