Where is the c compiler installed?

OpenVMS x86 native compilers, cross compilers news and questions.
Post Reply

Topic author
skymoco
Newbie
Posts: 3
Joined: Wed May 03, 2023 1:32 pm
Reputation: 0
Status: Offline

Where is the c compiler installed?

Post by skymoco » Thu May 04, 2023 6:16 pm

Sorry to ask a newbie question, but I installed the c compiler with:

Code: Select all

$ product install c

Performing product kit validation of signed kits ...
%PCSI-I-VSIVALPASSED, validation of VMSBOX$DKA0:[HOME.SYSTEM]VSI-X86VMS-C-X0704-
726-1.PCSI$COMPRESSED;1 succeeded
.............
The following product has been installed:
    VSI X86VMS C X7.4-726                  Layered Product

$ cc
%DCL-W-IVVERB, unrecognized command verb - check validity and spelling
 \CC\
However, I am not able to compile anything. I assume I am missing a symbol but I looked where memory tells me to

But they don't seem to be where I remember

SYS$COMMON:[SYSMGR]SYSLOGICALS.COM

Are make and other utilities available?

User avatar

arne_v
Master
Posts: 308
Joined: Fri Apr 17, 2020 7:31 pm
Reputation: 0
Location: Rhode Island, USA
Status: Offline
Contact:

Re: Where is the c compiler installed?

Post by arne_v » Thu May 04, 2023 6:51 pm

Have you tried logout and login?

(I assume CC is in DCLTABLES and it get loaded at login)
Arne
arne@vajhoej.dk
VMS user since 1986


Topic author
skymoco
Newbie
Posts: 3
Joined: Wed May 03, 2023 1:32 pm
Reputation: 0
Status: Offline

Re: Where is the c compiler installed?

Post by skymoco » Thu May 04, 2023 6:53 pm

Of course that did it..... Thanks!

I was an "ok" system admin back in the day, but that was a while ago.

User avatar

arne_v
Master
Posts: 308
Joined: Fri Apr 17, 2020 7:31 pm
Reputation: 0
Location: Rhode Island, USA
Status: Offline
Contact:

Re: Where is the c compiler installed?

Post by arne_v » Thu May 04, 2023 7:05 pm

A few details in case you are curious or some other readers are curious.

There are different ways of running a program on VMS.

1) The simple but limited.

$ RUN name

(which does not take parameters)

2) Foreign symbols.

$ symbol :== $disk:[dir]name
$ symbol arg1 arg2 arg3

3) MCR.

$ MCR disk:[dir]name arg1 arg2 arg3

4) The true VMS way of CLD and DCLTABLES.

One create a CLD file that define the verb with parameters and qualifier and image to run and then either load it into memory or into an on disk file.

The C installation has a CLD file that it stuffs into DCLTABLES.EXE which get loaded into processes at login and used by DCL to parse commands.

It starts with something like:

Code: Select all

define verb CC
   image DECC$COMPILER
   parameter P1, label=FILE, prompt="File"
      value (required,list,impcat,type=$infile)
   qualifier VERSION, syntax=VERSION_ONLY
...
That defines the CC verb, P1 which is the file to compile and a ton of qualifiers and associate it with DECC$COMPILER.EXE (in SYS$SYSTEM).

Programs that need to retrieve parameters and qualifiers can do so using the CLI$ library functions.
Arne
arne@vajhoej.dk
VMS user since 1986


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: Where is the c compiler installed?

Post by sms » Fri May 05, 2023 1:06 am

Code: Select all

> Have you tried logout and login?

   Or SPAWN?  I'd expect any new process to get the new stuff.

User avatar

martin
Valued Contributor
Posts: 70
Joined: Tue Mar 22, 2022 6:47 pm
Reputation: 0
Location: England
Status: Offline

Re: Where is the c compiler installed?

Post by martin » Fri May 05, 2023 4:06 am

For completeness Arne's list should also have included:
5) DCL$PATH
If the CLI cannot resolve a command by methods 1-4, it will look for the logical name DCL$PATH. If it finds it, then the CLI will examine each directory listed in DCL$PATH to see if a file with type .COM or .EXE and the same name as the command exists in the directory.

Code: Select all

$ SYSGEN
%DCL-W-IVVERB, unrecognized command verb - check validity and spelling
$ DEFINE DCL$PATH SYS$SYSTEM,SYS$DISK:[]FOO
$ SYSGEN SHOW MAXPROCESSCNT
Parameter Name   Current   Default    Min.    Max.    Unit  Dynamic
--------------   -------   -------   ------- -------  ----  -------
MAXPROCESSCNT        157        32        12    8192 Processes
(Example copied from "VSI OpenVMS User's Manual" §12.14)

If this looks a little *NIX like, it is. It came in around OpenVMS 7 due to user demands.
Martin
  • Retired System Manager: VMS/UNIX/UNICOS/Linux.
  • Started on a VAX 11/782 in 1984 with VMS 3.6.


hb
Valued Contributor
Posts: 63
Joined: Mon May 01, 2023 12:11 pm
Reputation: 0
Status: Offline

Re: Where is the c compiler installed?

Post by hb » Fri May 05, 2023 6:35 am

FOO is always useful in examples. But here I would file a problem report for that manual. (In case it was used intentionally - and yes, this kind of works! - it requires some explanation.)

User avatar

martin
Valued Contributor
Posts: 70
Joined: Tue Mar 22, 2022 6:47 pm
Reputation: 0
Location: England
Status: Offline

Re: Where is the c compiler installed?

Post by martin » Fri May 05, 2023 9:15 am

Good catch. Later on it clearly says (§12.14.1, item 2): "Only the node, device, and directory portions of each translation of the logical name are used" so why that FOO is there I don't know. It's worth reading the whole of that section; first there is a warning about privileged accounts and SYS$DISK and then there examples of when it wouldn't work.

Update:
I've reported this to docinfo@vmssoftware.com and enclosed the following example:

Code: Select all

$ sysgen
%DCL-W-IVVERB, unrecognized command verb - check validity and spelling
 \SYSGEN\
$ DEFINE DCL$PATH SYS$SYSTEM,SYS$DISK:[]
$ SYSGEN SHOW MAXPROCESSCNT
Parameter
Name            Current    Default     Min.       Max.   Unit  Dynamic
--------------            -------    -------   -------    -------  --
--  -------
MAXPROCESSCNT                 133         32        12      32767
Processes
No FOO required.
Last edited by martin on Fri May 05, 2023 11:22 am, edited 1 time in total.
Martin
  • Retired System Manager: VMS/UNIX/UNICOS/Linux.
  • Started on a VAX 11/782 in 1984 with VMS 3.6.

User avatar

arne_v
Master
Posts: 308
Joined: Fri Apr 17, 2020 7:31 pm
Reputation: 0
Location: Rhode Island, USA
Status: Offline
Contact:

Re: Where is the c compiler installed?

Post by arne_v » Fri May 05, 2023 3:16 pm

martin wrote:
Fri May 05, 2023 4:06 am
For completeness Arne's list should also have included:
5) DCL$PATH
If the CLI cannot resolve a command by methods 1-4, it will look for the logical name DCL$PATH. If it finds it, then the CLI will examine each directory listed in DCL$PATH to see if a file with type .COM or .EXE and the same name as the command exists in the directory.
...
If this looks a little *NIX like, it is. It came in around OpenVMS 7 due to user demands.
Ah - I forgot the "new" way.

I think it came in 6.2 (1995).

The equivalent of PATH in *nix and DOS/Windows.

I don't think it ever got popular in the VMS world.
Arne
arne@vajhoej.dk
VMS user since 1986


jreagan
VSI Expert
Master
Posts: 135
Joined: Tue Dec 01, 2020 8:40 am
Reputation: 0
Status: Offline

Re: Where is the c compiler installed?

Post by jreagan » Fri May 05, 2023 4:21 pm

Skipping over the extra replies, you can reload the DCLTABLES without logout or login is

$ set command /table=sys$library:dcltables.exe

Post Reply