Code: Select all
I started with a Wget kit in which x86_64 stuff had been built using
cross tools:
http://antinode.info/ftp/wget/wget-1_20_3b_vms/wget-1_20_3b_vms.zip
(Corrected URL. Sorry.)
(Note: My Internet connection is currently unreliable, so don't be
amazed by trouble downloading that.)
On an actual x86_64 system:
V87 $ show version ! (Just a thought.)
%DCL-W-IVKEYW, unrecognized keyword - check validity and spelling
\VERSION\
V87 $ tcpip show version
VSI TCP/IP Services for OpenVMS x86_64 Version X6.0
on a VMware, Inc. VMware7,1 running OpenVMS E9.2-1
V87 $ cc /version
VSI C X7.4-726 (GEM 50X23) on OpenVMS x86_64 E9.2-1
V87 $ mms /id
%MMS-I-IDENT, MMS V4.0-4 © Copyright 2022 VMS Software, Inc and Hewlett-Packard
Development Company, L.P.
An attempt to (re-)build did nothing, appropriately, then complained:
V87 $ show default
V87$DKA100:[utility.SOURCE.wget.wget-1_20_3b_vms.vms]
V87 $ mms /macro = (LARGE=1)
20-APR-2023 07:57:16
Destination: [.X86_64L]
OS_TYPE string: "VMS x86_64 E9.2-1"
define sys 'f$parse( "V87$DKA100:[utility.SOURCE.wget.wget-1_20_3b_vms.vms]descr
ip.mms;1", , , "DIRECTORY")'
20-APR-2023 07:57:16
ALL done.
%SYSTEM-F-ACCVIO, access violation, reason mask=06, virtual address=000000000000
0000, PC=FFFF8300071FB9C5, PS=0000001B
Improperly handled condition, image exit forced by last chance handler.
Signal arguments: Number = 0000000000000005
Name = 000000000000000C
0000000000000006
0000000000000000
FFFF8300071FB9C5
000000000000001B
Register dump:
RAX = 0000000000000000 RDI = 0000000000000000 RSI = 0000000000000000
RDX = 0000000000000004 RCX = 00000000000D4004 R8 = 0000000082699BC0
R9 = 000000007ACB9608 RBX = 0000000000133F00 RBP = 0000000000133A80
R10 = 0000000010000001 R11 = 0000000000000000 R12 = 0000000000133A18
R13 = 0000000000135280 R14 = 0000000000000000 R15 = 0000000000000201
RIP = FFFF8300071FB9C5 RSP = 0000000000133A04 SS = 000000000000001B
This worked:
V87 $ mms /macro = (LARGE=1) CLEAN
But then, an attempt to build using the native compiler failed for no
obvious reason, with sub-helpful messages:
V87 $ mms /macro = (LARGE=1)
20-APR-2023 08:26:06
Destination: [.X86_64L]
OS_TYPE string: "VMS x86_64 E9.2-1"
[... normal for a while ...]
CC /float = ieee_float /include = ([], [.X86_64L], [-.SRC.X86_64L], [-.VMS])
/prefix_library_entries = (all_entries, except = (getopt, optarg, opterr, opt
ind, optopt, snprintf, strtok_r)) /object = [.X86_64L]XSTRNDUP.OBJ /define =
(VMS, HAVE_CONFIG_H, _POSIX_EXIT, OS_TYPE="""VMS x86_64 E9.2-1""" , "ENABLE_DEB
UG" , "_LARGEFILE" ) [-.LIB]XSTRNDUP.C
If "''F$Search("[-.LIB.X86_64L]LIBLIB.OLB")'" .EQS. "" Then LIBRARY/Create [-.LI
B.X86_64L]LIBLIB.OLB
LIBRARY/REPLACE [-.LIB.X86_64L]LIBLIB.OLB [.X86_64L]XSTRNDUP.OBJ
[-.LIB.X86_64L]LIBLIB.OLB updated.
%MMS-F-ABORT, For target [-.LIB.X86_64L]LIBLIB.OLB, CLI returned abort status: %
X10EE80A0.
%MMS-F-ABORT, For target [-.SRC.X86_64L]WGET.EXE, CLI returned abort status: %X1
0EE8034.
V87 $
V87 $ exit %x0EE80A0
%MMS-W-NOMSG, Message number 00EE80A0
V87 $ exit %x0EE8034
%MMS-F-NOMSG, Message number 00EE8034
Adding "LIST=1" to the MMS macros (still) floods the user with
%CC-I-INCLUDEINFO noise messages, but the listing looks to me ok
otherwise.
The object file has a positive size (smaller than its older,
cross-compiler-built buddy):
Directory V87$DKA100:[utility.SOURCE.wget.wget-1_20_3b_vms.lib.X86_64L]
XSTRNDUP.LIS;1 665 20-APR-2023 08:40:59.02 (RWED,RWED,RE,)
XSTRNDUP.OBJ;1 8 20-APR-2023 08:40:58.87 (RWD,RWD,R,)
Directory V87$DKA100:[utility.SOURCE.wget.wget-1_20_3b_vms.lib.X86_64L_VSSL111]
XSTRNDUP.OBJ;1 11 30-DEC-2022 01:12:20.79 (RWD,RWD,R,)
Questions or suggestions are welcome.