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

%LINK-I-UDFSYM

SOLVED
Go to solution
olive_wide
Frequent Advisor

%LINK-I-UDFSYM

I upgrade the hardware and software.
Now the system environment is:
Openvms 7.3-2,HP C 6.5,Oracle9i.
When I RE-compiler the old .pc programe(openvms7.1,oracle7.1-1),system reports:
$proc xxx(proc is ok)
$cc xxx(cc is ok)
$ link xxx
%LINK-W-NUDFSYMS, 41 undefined symbols:
%LINK-I-UDFSYM, ADDFCRT
%LINK-I-UDFSYM, ADDORPT
%LINK-I-UDFSYM, ADDQTUCT
%LINK-I-UDFSYM, ADDRCCT
%LINK-I-UDFSYM, ADDRPIT
%LINK-I-UDFSYM, ADDRRIDT
%LINK-I-UDFSYM, ADDRSDST
%LINK-I-UDFSYM, ADDSCT
%LINK-I-UDFSYM, ADDSDT
......
%LINK-W-USEUNDEF, undefined symbol SND_ALARM_MSG referenced
in psect $LINK$ offset %X00000030
in module ORECV file DKA0:[000000.APPSYSTEM.ORECV]ORECV.OBJ;4
%LINK-W-USEUNDEF, undefined symbol HDL_ACT_DATA referenced
in psect $LINK$ offset %X00000120
in module ORECV file DKA0:[000000.APPSYSTEM.ORECV]ORECV.OBJ;4
%LINK-W-USEUNDEF, undefined symbol ADD_HDLFAULT referenced
in psect $LINK$ offset %X00000150
in module ORECV file DKA0:[000000.APPSYSTEM.ORECV]ORECV.OBJ;4
%LINK-W-USEUNDEF, undefined symbol ADD_CYCST referenced
in psect $LINK$ offset %X00000180
in module ORECV file DKA0:[000000.APPSYSTEM.ORECV]ORECV.OBJ;4
%LINK-W-USEUNDEF, undefined symbol ADDSCT referenced
in psect $LINK$ offset %X000001C0
in module ORECV file DKA0:[000000.APPSYSTEM.ORECV]ORECV.OBJ;
.........
****************************************

The programs is running good in old system.

Best regards.
Olive
6 REPLIES
Kris Clippeleyr
Honored Contributor
Solution

Re: %LINK-I-UDFSYM

Olive,

Maybe those undefined symbols are sitting in a library, or shareable image that is not automatically searched by the LINKer.
If that's the case, you have to add them to your link command, like:
$ link xxx,the_library/libr
or
$ link xxx,sys$input/opt
the_shareable/share

Regards,
Kris (aka Qkcl)
I'm gonna hit the highway like a battering ram on a silver-black phantom bike...
Doug Phillips
Trusted Contributor

Re: %LINK-I-UDFSYM

Olive,

There is probably a default link library definition someplace on the old system. See what:

$show log lnk$library*

shows on the old system. If there are definitions, search for the definition(s) on the old system and add them to the new.

Try:

sys$startup:systartup_vms.com
sys$startup:sylogicals.com
sys$manager:sylogin.com

and login.com in your user's login direct.

-Doug

Garry Fruth
Trusted Contributor

Re: %LINK-I-UDFSYM

To add to Doug's response - I think he is on the right track. Check the create date on sylogin.com. If replace, compare versions. Try the old one:
$ dir/date sys$manager:sylogin.com
$ diff sys$manager:sylogin.com
$ @sys$manager:sylogin.com;-1
$ link xxx...
$ sho logical lnk$library* !if link worked

If that fails, try searching for the object library that has the modules of interest:
$ dir dka0:[*...]*.olb
$ pipe library sys$library:alib -
/cross_reference=symbol/out=sys$output | -
search sys$input hld_act_data
John Gillings
Honored Contributor

Re: %LINK-I-UDFSYM

Olive,

If you have a system on which this program links successfully, repeat the link and generate a map file:

$ LINK/MAP/FULL/CROSS xxx

Examine the map file to determine where the symbols in question were defined, and see the fully expanded LINK command. As others have said, it may be from a default link library LNK$LIBRARY*, or perhaps from an options module, or even a symbol definition for LINK?

PLUG... For production code, ALWAYS generate a compiler listing and ALWAYS generate a full link map (as above). If these files are kept, questions like this can be answered very quickly and easily (and hence cheaply). Without the link map it may be impossible to determine the answer, and you're forced to lots of searching and trial & error. Disk space is cheap, programmer time is expensive.
A crucible of informative mistakes
Peter Quodling
Trusted Contributor

Re: %LINK-I-UDFSYM

Re .-1

Programmer time is expensive....

even more so, if it's not the original programmer... of course, everyone's code looks wonderful to themselves, and is often an unreadable mess to others...

My absolute favourite is Bob Supnik's Assembler for his SIMH emulator - some very elegant and well structured code - the guy was wasted in management (not..)

q
Leave the Money on the Fridge.
olive_wide
Frequent Advisor

Re: %LINK-I-UDFSYM

I have found a solution to this question as seen in the comments below.
Thanks all
olive