[Info-vax] GCC for VMS, was: Re: fortran compiler roadmap?
Craig A. Berry
craigberry at mac.com.invalid
Wed Apr 17 23:03:09 EDT 2013
In article <kkmqqa$rr3$1 at dont-email.me>,
Simon Clubley <clubley at remove_me.eisner.decus.org-Earth.UFP> wrote:
> On 2013-04-17, Stephen Hoffman <seaohveh at hoffmanlabs.invalid> wrote:
> >
> > The last version of gcc I met for VMS was very old. Specifically went
> > looking for gcc for inclusion on the last Freeware, too.
> >
>
> Ada Core Technologies (ACT) maintains a port of gcc for it's VMS Ada
> customers. The source code was not freely available however the last
> time I looked (several years ago) because at that time they were
> exercising the option in the GPL which allows them to distribute it
> to their customers only and none of those customers had redistributed
> it when I last checked.
I was recently told by someone from Ada Core that GCC for VMS can be
built more or less straightforwardly by doing something called a
"Canadian cross compile." This is how they build their Ada compiler,
and he was pretty sure they'd contributed back upstream anything needed
to build GCC targeting VMS.
I asked specifically whether the code generators in GCC were up to
snuff for Alpha and Itanium, and he said yes; their Ada compiler
depends on this. (The last version of gcc for VMS I'd heard of
existing in the wild [2.9 or so] purportedly never had an Alpha code
generator that actually worked.)
I also asked specifically whether the resulting C compiler could be
used with the CRTL and he said yes, but you'd have to point the
compiler build at the headers you already have, which means you'd have
to already have rights to use the HP C compiler. I remain skeptical
whether GNU C could even compile those headers given all of the
pragmas, specific alignment requirements, etc., but I suppose it's
possible.
While VAX Fortran was my first computer language, I haven't done any
Fortran in twenty years and I don't have a very good sense of what role
the library plays in the language. Given that SYS$SHARE:DEC$FORRTL.EXE
is about one tenth the size of SYS$SHARE:DECC$SHR.EXE, I'm guessing
it's not quite as big a deal as the C run-time. But still, getting a
"foreign" Fortran compiler fully functional on VMS would likely require
various kinds of glue for exit handlers, threads, and such, and, if you
want to use native libraries, rights to use SYS$LIBRARY:FORSYSDEF.TLB
or an independently-developed equivalent.
And then you have a compiler with no debugger, so you either spend lots
of time in the entrails of the compiler making it produce what the
OpenVMS debugger expects, or you port gdb, or write you're own
debugger.
More information about the Info-vax
mailing list