[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::axp-developer

Title:Alpha Developer Support
Notice:[email protected], 800-332-4786
Moderator:HYDRA::SYSTEM
Created:Mon Jun 06 1994
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:3722
Total number of notes:11359

3171.0. "Seagate Software Ltd (formerly Holistic Systems) - Point 19441" by RDGENG::ASAP () Mon Feb 10 1997 06:43

    Company Name :  Seagate Software Ltd (formerly Holistic Systems) - Point 19441
    Contact Name :  Tony Proctor
    Phone        :  
    Fax          :  
    Email        :  [email protected]
    Date/Time in :  10-FEB-1997 11:42:27
    Entered by   :  John Wood
    SPE center   :  REO

    Category     :  VMS
    OS Version   :  V5.5-2
    System H/W   :  VAX


    Brief Description of Problem:
    -----------------------------

Help, can any anyone tell me how I port an OpenVMS AXP application that uses
the alloca() subroutine 
to OpenVMS VAX?

Under Alpha AXP, the <builtins.h> file defines alloca as a built-in procedure,
known to the 
compiler. On the VAX (using DECC), this same header file is there, but it
doesn't define alloca().

On the VAX, it's relatively easy to write routines like alloca() that grab
stack space and return it 
in the caller's context (although it means diddling with call frames a bit).
However, if I try and 
use something like this with DECC, I get very spurious stack corruptions. It
looks like the compiler 
assumes that the stack pointer never moves, other than in response to its own
instructions (e.g. 
PUSHL). Hence, after calling my version of alloca(), it's still addressing
temporary variables 
relative to where it thought SP was before. Presumably this is why it has to be
a built-in function 
for Alpha AXP.

We're using DECC V5.0-003 under VAX/VMS V5.5-2 (still!)

T.RTitleUserPersonal
Name
DateLines
3171.1see DECC conf note #2088RDGENG::WOOD_J[email protected]Tue Feb 11 1997 07:490
3171.2Tony won't be happy about this... :-(RDGENG::WOOD_J[email protected]Tue Mar 04 1997 03:3726
Date:	 4-MAR-1997 08:31:39.03
From:	DEC:.REO.REOVTX::WOOD_J       "[email protected]"
Subj:	Digital ASAP #19441: no plans for alloca() for OpenVMS VAX
To:	SMTP%"[email protected]"

Tony,

I have contacted the DEC C product manager, and there are no 
plans to implement alloca() in DEC C for OpenVMS VAX.

I appreciate that this might cause you difficulty in supporting
your product on OpenVMS VAX.

I have used all the resources available to me to try to find 
a workaround.

One last possibility might be to use a third party C compiler
for OpenVMS VAX which does support alloca() (-perhaps GNU-C?).

I am closing this call.

Regards,
  John Wood
  Software Partner Engineering (UK)
  Digital Equipment Co.