Hello,
I have ported a few applications to x86 (C and Fortran).
When I try to run the executable I get this error message:
$ RUN VCOM_SEND_RECEIVE
%DCL-W-ACTIMAGE, error activating image RMISHR
-CLI-E-IMGNAME, image file DSA100:[SYS0.SYSCOMMON.][SYSLIB]RMISHR.EXE
-LOADER-E-BADSVINDX, symbol vector index is too large
Is this is known error?
GN2111_SPP1121> di DSA100:[SYS0.SYSCOMMON.][SYSLIB]RMISHR.EXE/prot
Directory DSA100:[SYS0.SYSCOMMON.][SYSLIB]
RMISHR.EXE;1 205/208 9-NOV-2023 12:31:15.79 (RWED,RWED,RE,RE)
Total of 1 file, 205/208 blocks.
+---------------------------+
! Object and Image Synopsis !
+---------------------------+
Module/Image File Ident Attributes Bytes Creation Date Creator
------------ ---- ----- ---------------- ----- ------------- -------
VCOMSHR V1.0 0 24-JUN-2024 16:28 Linker I02-97
SPP_ROOT:[VCOM_6_3_5.X86]vcomshr.exe;1
vcom_send_receive$MAIN 6166 02-Sep-2024 23:53 VSI Fortran X8.5-0004
DEVDISK:[VECTMP.VEC.SYS.1.i64.tmp]VCOM_SEND_RECEIVE.OBJ;2
SPPSDLSUBSHR V1.0 0 30-MAR-2023 11:00 Linker I02-92
SPP_ROOT:[SHAREBASE_4_0_0.X86]SppSdlSubShr.exe;1
DEC$FORRTL V01-07.005 0 9-NOV-2023 12:30 Linker I02-94
/ SYS$COMMON:[SYSLIB]DEC$FORRTL.EXE;1
LIBOTS V1.0-1 0 9-NOV-2023 12:30 Linker I02-94
SYS$COMMON:[SYSLIB]LIBOTS.EXE;1
DEVDISK:[VECTMP.VEC.SYS.1.i64.tmp]VCOM_SEND_RECEIVE.EXE;4 2-SEP-2024 23:55 Linker I02-97
//Toine Dirven
BADSVINDX running an executable on x86
Re: BADSVINDX running an executable on x86
In short, the build/link-time environment (for all referenced images) doesn't match the run-time environment.
See also https://forum.vmssoftware.com/viewtopic ... ndx#p21633
See also https://forum.vmssoftware.com/viewtopic ... ndx#p21633
Re: BADSVINDX running an executable on x86
While the DEC$FORRTL and LIBOTS haven't changed, I'll guess that one of the images referenced by SPP$DLSUBSTR.EXE has changed. Written in C++, BASIC? The link that hb posted is with C++ related changes but the concept is the same. You linked against some image (the RMISHR in the error message might not be the actual cause) and used some routine in the symbol vector. Then on the target system, the same RTL is older with fewer entry points and the image activator reports that "index too large" error.