[Info-vax] GCC for VMS, was: Re: fortran compiler roadmap?

gingold at adacore.com gingold at adacore.com
Tue Apr 23 01:58:44 EDT 2013


On Tuesday, April 23, 2013 2:43:31 AM UTC+2, Simon Clubley wrote:
> On 2013-04-22, gingold at adacore.com <gingold at adacore.com> wrote:
> 
> > Yes, we have added support for many VMS pragma, so that the VMS headers can be parsed by gcc.
> 
> >
> 
> > We were able to cross-compile some non-trivial programs such as unzip, for VMS.
> 
> >
> 
> > Tristan.
> 
> 
> 
> Interesting, thanks.
> 
> 
> 
> Given the last sentence above, is the cross-compiler build method still
> a work in progress or is it regarded as a finished product ?

We are first building a cross compiler to build the native compiler.

Note that I am pretty sure we still have patches (at least for Ada) that
aren't merged into FSF gcc.

> Now I know you have added cross compiler support instead of building
> everything native on VMS, I've spent a bit of time over the last couple
> of days trying to build at least the first part of the tool chain.

Humm, good luck :-)

> Of course, I have several questions which have cropped up as a result. :-)
> 
> Which exception model are you using ? I had _many_ attempts at trying to
> get unwind-dw2.c to build, before I gave up and switched to sjlj exceptions
> to bypass this issue.

We are using dwarf-2, but it may be simpler to use sjlj at first.

> Are you using a sysroot during building and are you replacing the gcc
> headers with the VMS versions or just adding missing headers as required ?

There is no gcc headers (except a few one that are very compiler dependent, such
as stdargs or limits)

> After trying various options, I'm currently using the gcc supplied
> headers instead of the VMS versions to build gcc and adding to the set
> of headers (ie: stdlib.h) from the VMS headers as required. I also have
> a full copy of the extracted starlet headers in include/vms/ and I've
> tweaked the various VMS headers (__int64/resource.h/etc) as required.

Most of the tweaks are handled by fixincludes.

> In the final built and installed compiler, is it intended to have a
> mixture of gcc supplied and VMS headers on the include search path,
> or are you removing all the gcc supplied headers and replacing them
> with the VMS headers ?

No, you cannot remove the gcc supplied headers.

> BTW, in case you are not aware, binutils 2.23.2 is broken while
> assembling crtbegin; you get the following errors:
> 
> ../../gcc-4.6.2/gcc/crtstuff.c: In function 'frame_dummy':
> ../../gcc-4.6.2/gcc/crtstuff.c:381:19: warning: array subscript is above array bounds [-Warray-bounds]
> /tmp/ccexkclj.s: Assembler messages:
> /tmp/ccexkclj.s:106: Error: previous .ent not closed by a .end
> /tmp/ccexkclj.s:149: Error: previous .ent not closed by a .end

No, the latest version of binutils correctly reports issues in the
assembly file.

Tristan.



More information about the Info-vax mailing list