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

Simon Clubley clubley at remove_me.eisner.decus.org-Earth.UFP
Mon Apr 22 20:43:31 EDT 2013


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 ?

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.

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.

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 ?

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.

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 ?

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

Reverting to binutils 2.21.1 fixed this specific problem.

Thanks,

Simon.

-- 
Simon Clubley, clubley at remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world



More information about the Info-vax mailing list