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

Conference turris::decc

Title:DECC
Notice:General DEC C discussions
Moderator:TLE::D_SMITHNTE
Created:Fri Nov 13 1992
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2212
Total number of notes:11045

2189.0. "Getting DEC C to set __VMS_VER to 60100000 w/o /DEFINE" by WISLA::KIERSTEIN () Thu May 15 1997 13:21

Hello,

    I have read the notes about the redefinition of the __VMS_VER macro
definition for getting images "built" under V6.1.  Good stuff!  The problem our
group has is that it has many products to build, but does not have the option of
changing the build procedures for every product to add
/DEFINE=("__VMS_VER=60100000")/WARNINGS=DISABLE=MACROREDEF each CC command.  I
was wondering if there was a way via a logical name definition or some other
method of getting DEC C to set the macro definition to 60100000 so that our
build procedures would be something like the following:

(some kind of DCL setup)
$ @product's-build-procedure

    Thanks!

Barry Kierstein
Internet Product Suite
T.RTitleUserPersonal
Name
DateLines
2189.1Brute-Force Solution...XDELTA::HOFFMANSteve, OpenVMS EngineeringThu May 15 1997 13:388
   Sure.  Build on V6.1.  :-)

   (This would be a nice extension to the C compiler, though...  This
   would have to tie in with the "target RTL" qualifier that has been
   discussed, however -- the compiler reads the external symbols out
   of the RTL now...)

2189.2Can you redefine the cc verb?DECC::VOGELThu May 15 1997 15:1612
    
    Can you just:
    
    cc:==cc/DEFINE=("__VMS_VER=60100000")/WARNINGS=DISABLE=MACROREDEF
    
    Not a DCL expert, but this works for me.
    
    				Ed
    
    
    
    
2189.3SPECXN::DERAMODan D'EramoThu May 15 1997 15:225
        You can only have one /DEFINE=(...) on the command line,
        so you can't set up CC == "CC/DEFINE=..." before the build
        procedure and then use CC/DEFINE=(...) in the build procedure.
        
        Dan
2189.4DEC C setupsWISLA::KIERSTEINThu May 15 1997 17:5011
All,

    I believe I have all the other stuff needed for the environment (like V6.1
DECC$SHR.EXE, DECC$RTLDEF.EXE) defined correctly.  The builds run fine on a V6.1
system with SYS$LIBRARY pointing only to the made-up V6.1 environment I had set
up, and the logicals I set up for the images (I patterned this after the VAX
build environment for VMS).  As another pointed out, a symbol substitution will
not work for the products that do their own redefining (of which several do). 
Just FYI for the problem involved.

Barry
2189.5DECCXL::OUELLETTEmudseason into blackfly seasonFri May 16 1997 18:232
There's been some rumination over this bale of hay.
It's not clear what will come of this.
2189.6XDELTA::HOFFMANSteve, OpenVMS EngineeringFri May 16 1997 21:225
:There's been some rumination over this bale of hay.
:It's not clear what will come of this.

   From that analogy, I can guess.  :-)
2189.7TLE::D_SMITHDuane Smith -- DEC C RTLMon May 19 1997 12:4619
    In DEC C V5.6 code was added to see if the DECC$SHR.EXE shareable image
    contained a new universal symbol.  The value at this symbol location
    contains the default value for __CRTL_VER.  The header files were also 
    modified to define __CRTL_VER to the same value as __VMS_VER if the new
    universal symbol was not found.
    
    This work was done to support the "backport object library" which was
    also placed on the DEC C V5.6 kit.  When a user follows the
    instructions on using the backport library, there is no need to worry
    about the definition of __VMS_VER, at least for the C header files.
    
    I am investigating adding this new universal symbol to older DECC$SHR
    images as new ECO kits are released for those platforms.  If you then
    compile on a V7.1 system using a logical name DECC$SHR pointing to a
    V6.1 (ecoed) image, the header files will compile using a __CRTL_VER
    of 60100000 instead of picking up the default of 70100000 from the
    __VMS_VER definition.
    
    Duane
2189.8Workaround for problemWISLA::KIERSTEINFri Jun 06 1997 12:2328
Hello,

    Duane:

>    I am investigating adding this new universal symbol to older DECC$SHR
>    images as new ECO kits are released for those platforms.  If you then
>    compile on a V7.1 system using a logical name DECC$SHR pointing to a
>    V6.1 (ecoed) image, the header files will compile using a __CRTL_VER
>    of 60100000 instead of picking up the default of 70100000 from the
>    __VMS_VER definition.

    This would be great!

    All:

	In case this would be helpful, this is what IPS did as a workaround of
    the problem.  We created a __DECC_INCLUDE_PROLOGUE.H file with the following
    contents:

    #undef  __VMS_VER
    #define __VMS_VER 60100000

        Worked like a charm.  Since our SYS$LIBRARY definition for the build
    processes pointed to the IPS RESD area, and the prologue header file was
    put into this area, this did not conflict with the host computer's header
    file setup.

Barry