This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: ld for VMS?
On May 3, 2010, at 12:13 PM, Jay K wrote:
>
> This is why I thought so:
>
> http://h71000.www7.hp.com/doc/83final/5763/5763pro_069.html
>
> To cause an OpenVMS exception to generate a UNIX style signal, user exception handlers must return SS$_RESIGNAL upon receiving any exception that they do not want to handle. Returning SS$_NORMAL prevents the generation of a UNIX style signal. UNIX signals are generated as if by an exception handler in the stack frame of the main C program. Not all OpenVMS exceptions correspond to UNIX signals. See Chapter 4 for more information on the interaction of OpenVMS exceptions and UNIX style signals.
>
> Though that doesn't say what happens if there is no handler, only what handlers should do.
The handler is installed by decc$crtl_init using a global vector. Thus the condition handler for
main is not required. Of course, other user condition handlers should return SS$_RESIGNAL on condition
that they don't handle.
(But this is more a gcc topic!)
>> NB: for gcc specific issues, you'd better to post on gcc@gcc.gnu.org
>
> Right, sorry. They are imho very intermingled and my original query was for an ld. Granted, we got way past that a while ago: "use head".
>
>> Good luck. How do you handle the include issue ? Ie, do you have the VMS specific includes ?
>
> Same way I got hello world to work (since it had an #include and uses libraries).
> Yes. I have /usr/local/alpha-dec-vms/lib and /usr/local/alpha-dec-vms/include, contents
> copied from the VMS machine, the libraries/olbs or at least some converted/expanded/compressed, the headers hacked
> slightly with #define __int64 long long.
> I don't "like" this, but it is the way.
> Among other things -- which files to copy?
> I end up copying surely way too much.
I think that's it.
> I don't get too far yet..there is something wierd with memcpy.
> Compiling libiberty/regex.c as part of gcc says wrong number of parameters.
> I have to look more closely.
> I swear removing the space after one instance of memcpy helped, but not the other.
> memcpy is a macro:
> #define memcpy(a, b, c) __MEMCPY(...stuff...)
I haven't hit this issue (yet ?)
> There is still something wierd where GNU ld doesn't like .obj files output by VMS cc.
> In particular, vms-crt0.c cannot actually be compiled by VMS cc, nor out of the box by gcc.
How do you copy from VMS to unix ?
Tristan.