Hi Cedric,
as you might currently be the only one, who can reproduce this error, please try the following, to collect some more information:
- start the LINK operation, which will cause the error
- find out the process-id of the process running the LINK
- login a separate process and SET DEFAULT to the same directory as the LINKer
- invoke @FREP0VA <pid-of-linker-process>
- after the link operation fails, look at the last lines of the output of the FREP0VA procedure
It should look similar to this:
I64VMS $ @frep0va 3434004C
4-OCT-2020 08:50:21.23 FREP0VA: 00900000
4-OCT-2020 08:50:36.23 FREP0VA: 00FD0000
4-OCT-2020 08:50:51.23 FREP0VA: 01678000
4-OCT-2020 08:51:06.23 FREP0VA: 01BAC000
4-OCT-2020 08:51:21.23 FREP0VA: 021A4000
4-OCT-2020 08:51:36.23 FREP0VA:
02778000
Linker terminated...
SSLOG: Finding failed $EXPREG_64 calls...
SYS$EXPREG_64 sts: 00002a2c acmode: U !08:51:43.85
image: IA64_LINK+00041f10 argct: 06
arg 1:000000007ad17918 2:
0000000024736000 3:0000000000000003
In my test case, the linker fails with
%ILINK-F-MEMFUL, insufficient virtual address space to complete this link
-SYSTEM-F-EXPGFLQUOTA, exceeded pagefile quota
It would be interesting to see the values of FREP0VA and P2 of the $EXPREG_64 in your case, where the linker fails with SYSTEM-W-REGISFUL (should be: sts: 00000af8)
Volker.
Here is the contents of the FREP0VA.COM procedure:
Code: Select all
$!
$! FREP0VA.COM - Examine FREP0VA of process running IA64_LINK.EXE
$!
$! Input: P1 - PID of process running LINK operation
$!
$ IF P1.EQS.""
$ THEN
$ WRITE SYS$OUTPUT "Please invoke with $ @FREP0VA <pid-of-linker-process>"
$ EXIT
$ ENDIF
$!
$ SET PROC/SSLOG=(STATE=ON)/ID='P1' ! turn on SSLOG
$!
$loop:
$ image = F$GETJPI(P1,"IMAGNAME")
$!! SHOW SYMB image
$ IF image .EQS. "" THEN $ GOTO exit ! Linker terminated ?
$ IF F$LOCATE("IA64_LINK",image).EQ.0 THEN $ GOTO exit ! Linker terminated ?
$!
$ WRITE SYS$OUTPUT F$TIME() + " FREP0VA: " + F$GETJPI(P1,"FREP0VA")
$!
$ wait 0:0:15
$ GOTO loop
$!
$exit:
$ WRITE SYS$OUTPUT "Linker terminated..."
$ SET PROC/SSLOG=(STATE=UNLOAD)/ID='P1' ! turn off SSLOG
$!
$ IF F$SEARCH("SSLOG.DAT").NES.""
$ THEN
$ WRITE SYS$OUTPUT "SSLOG: Finding failed $EXPREG_64 calls..."
$ ANALYZE/SSLOG/SELECT=STATUS sslog.dat /OUT=SSLOG.TXT
$ SEARCH SSLOG.TXT EXPREG/WINDOW=(0,2)
$ ENDIF