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

IMGACT-F-BAD_LINK Problems executing old vax images recompiled and linked on Alpha

 
SOLVED
Go to solution
Kjetil Johansen
Occasional Visitor

IMGACT-F-BAD_LINK Problems executing old vax images recompiled and linked on Alpha

After having recompiled and relinked an executable built under Vax i get the following error after having rebuildt in under Alpha.

%, image, linked /NATIVE_ONLY, cannot call a translated routine
-IMGACT-F-FIXUPERR, error when CUC_MAILING referenced FORRTL_D56_TV

I have recompiled and relinked several other programs without any problems.

Any idea what the problem is and how to resolve it.?

brgrds

Kjetil Johansen
3 REPLIES
Antoniov.
Honored Contributor

Re: IMGACT-F-BAD_LINK Problems executing old vax images recompiled and linked on Alpha

Hi,
technically FIXUPERR require /NONATIVE qualifier in link. See HELP /MES FIXUPERR.
I guess you try link using shared image vested from vax (and they are named _TV)
Try using /NONATIVE and post furthermore informations for more detailed help.

Cheers
Antonio Vigliotti
Antonio Maria Vigliotti
David B Sneddon
Honored Contributor

Re: IMGACT-F-BAD_LINK Problems executing old vax images recompiled and linked on Alpha

Kjetil,

When you compile use the /TIE qualifier.
When you link use the /NONATIVE_ONLY qualifier.

Regards
Dave
John Gillings
Honored Contributor
Solution

Re: IMGACT-F-BAD_LINK Problems executing old vax images recompiled and linked on Alpha

Kjetil,

Your image is referencing FORRTL_D56_TV, which is translated.

Check your link map to see where the reference is coming from (LINK/MAP/FULL).

The most likely reason for this is code that calls a routine with a "FOR$" prefix, for example FOR$DATE for FOR$TIME. The prefix in the native DEC$FORRTL is "DFOR$". Check your code to see where and why these routines are being used. You need to replace them with generic routine names or builtins.

One exception, FOR$RAB should be recognised by recent versions of the compiler and replaced with "DFOR$RAB" (but don't declare it "EXTERNAL"). If you're running DEC FORTRAN V6.1 or below this won't happen. If so, DON'T change your code, upgrade your compiler!
A crucible of informative mistakes