[an error occurred while processing this directive]

HP OpenVMS Systems

Ask the Wizard
» 

HP OpenVMS Systems

OpenVMS information

» What's new on our site
» Upcoming events
» Configuration and buying assistance
» Send us your comments

HP OpenVMS systems

» OpenVMS software
» Supported Servers
» OpenVMS virtualization
» OpenVMS solutions and partners
» OpenVMS success stories
» OpenVMS service and support
» OpenVMS resources and information
» OpenVMS documentation
» Education and training

Quick Links

» Non-javascript page
» Ask the Wizard
» OpenVMS FAQ

Test Drive OpenVMS

» OpenVMS I64 test drive
» Java test drive

Other information resources available to you include:

» OpenVMS freeware
» ECO kits, software and hardware support, prior version support
» Alpha SRM, ARC, and AlphaBIOS firmware updates
» ENCOMPASS - HP user group
» OpenVMS software downloads, OpenVMS freeware CD-ROM
» OpenVMS firmware locations
» DECconnect passive adaptor charts
» Cables reference guide
» MicroVAX console commands
» OpenVMS student research

Select a topic below to see Questions Frequently Asked by partners

» Using the online documentation library(installing BNU from the asap SDK)
» Global sections(how to create and use.)
» xx$CREATE_BUFOBJ system service(usage)
» Ethernet address(methods of determination)
» Shareable images(cookbook approach to creating one)
» Sharing data/code at absolute addresses(a guide with examples)
» Determining the Alpha microprocessor
» Using GETSYI to get hardware status

Evolving business value

» Business Systems Evolution
» AlphaServer systems transition planning
» Alpha RetainTrust program

Related links

» HP Integrity servers
» HP Alpha systems
» HP storage
» HP software
» HP products and services
» HP solutions
» HP support
disaster proof
HP Integrity server animation
HP Integrity server animation
Content starts here

Ask the Wizard Questions

I have 2 unresolved symbols

The Question is:

I know that this is an known Problem, but I dont have the Information I need

Building a Product (named Oracle only an runtime i think)
there are 2 unresolved Symbols (SYS_ERRLIST, SYS_NETERR).

I can see from release notes that they are obsolete in
VMS 6.2/AXP and it's C-Runtime and there is an workaround
to see in sys$library:DEC$SYS_ERRLIST.com (DECC$SYS_ERRLIST.com).

But i can't find this file on my system or my CD's


Please can you help me ?


The Answer is:


[DEC C]  %LINK-I-UDFSYM, SYS_ERRLIST %LINK-I-UDFSYM, SYS_NERR


COPYRIGHT (c) 1988, 1993 by Digital Equipment Corporation.
ALL RIGHTS RESERVED. No distribution except as provided under contract.

Copyright (c) Digital Equipment Corporation 1995, 1996.  All rights reserved.

PRODUCT:    DEC C for OpenVMS Alpha, Versions 4.0 and below

OP/SYS:     OpenVMS Alpha, Version 6.2

COMPONENT:  STARLET

SOURCE:     Digital Equipment Corporation


SYMPTOM:

Re-linking some C objects after upgrading to OpenVMS Alpha V6.2, results
in linker warnings similar to the following:

   %LINK-W-NUDFSYMS, 2 undefined symbols:
   %LINK-I-UDFSYM,         SYS_ERRLIST
   %LINK-I-UDFSYM,         SYS_NERR
   %LINK-W-USEUNDEF, undefined symbol SYS_NERR referenced
           in psect $LINK$ offset %X000000A0
           in SNLER FOO file device:[directory]filename.type;version
   %LINK-W-USEUNDEF, undefined symbol SYS_ERRLIST referenced
           in psect $LINK$ offset %X000000A8
           in module SNLER file device:[directory]filename.type;version


DIGITAL RESPONSE:

Engineering has acknowledged this problem and plans to address it in a
future release.


WORKAROUND 1:

The ECO kit ALPACRT may address the problem described in this article.
Refer to the ECO-SUMMARY article to determine if this ECO corrects the
problem for your specific configuration.  More information regarding
this kit may be found in the ECO-SUMMARY database by using a query of
ALPACRT.

***Note:  If you have *already* used the workaround described in this
          article *and* plan to install the ALPACRT ECO, you MUST
          *first* remove the global symbols SYS_ERRLIST and SYS_NERR.
          Use the following command to do this:

          $ LIBRARY/DELETE=DECC$SYS_ERRLIST SYS$LIBRARY:STARLET.OLB

          If you do not perform the above step, the installation of
          ALPACRT will fail. Note that the installation of this
          ECO fails, ONLY FOR THOSE CUSTOMERS who utilized this
          article.  If you have applied this workaround, you will
          see the following error when installing the ALPACRT
          patch:

    %LIBRAR-E-DUPGLOBAL, global symbol SYS_NERR from file CRT.OBJ;1
     already in library STARLET.OLB;1

          With ALPACRT, these global symbols are included in the
          CRTL.OBJ object file that is replaced into STARTLET.OLB.
          When this occurs, you will get a DUPGLOBALS error.  That is,
          the global symbols SYS_ERRLIST and SYS_NERR are now defined
          twice (hence DUPlicates).


WORKAROUND 2:

Use one of the following workarounds:

     o  If possible, recompile the module using Version 4.1 or later of
        DEC C for OpenVMS ALPHA.

     o  Modify your link to include SYS$LIBRARY:DECC$SYS_ERRLIST.OBJ.

     o  Insert DECC$SYS_ERRLIST.OBJ into SYS$LIBRARY:STARLET.OLB.

This article includes the source code in both C and MACRO to build
DECC$SYS_ERRLIST.OBJ.  Once this module is built it should be placed
into SYS$LIBRARY and may be inserted into SYS$LIBRARY:STARLET.OLB,
if you wish.


ANALYSIS:

Prior to OpenVMS Alpha V6.2 the symbols SYS_NERR and SYS_ERRLIST were
available in SYS$LIBRARY:STARLET.OLB.  DEC C RTL entries in starlet
should be prefixed by DECC$.  Since this was not the case for SYS_NERR
and SYS_ERRLIST, they were causing "name pollution" in STARLET and were
removed in OpenVMS ALPHA V6.2.

Compiling with DEC C V4.1 or later on OpenVMS ALPHA V6.2 systems will
generate references to DECC$GL_SYS_NERR and DECC$GA_SYS_ERRLIST which
will be resolved via the DEC C RTL.  Compiling with a version of DEC C
prior to V4.1 on OpenVMS Alpha V6.2 systems will not generate the
prefixed references.  This will cause the link to fail.

If you cannot recompile your programs on OpenVMS ALPHA V6.2 with DEC C
V4.1 or later, engineering has provided a workaround which consists of a
source program (which can be written in either C or MACRO called
DECC$SYS_ERRLIST.C or DECC$SYS_ERRLIST.MAR respectively) and a command
file (DECC$SYS_ERRLIST.COM).

The source program (DECC$SYS_ERRLIST.C or DECC$SYS_ERRLIST.MAR) is used
to resolve references to SYS_NERR and SYS_ERRLIST.  The source needs to
be either compiled or assembled (depending on your choice of language)
into DECC$SYS_ERRLIST.OBJ and then moved to SYS$LIBRARY.
DECC$SYS_ERRLIST.COM is provided to insert DECC$SYS_ERRLIST.OBJ back
into STARLET if you chose to do this.  It will cause name pollution,
which may not be an issue for your environment.  DECC$SYS_ERRLIST.COM
should be moved to SYS$LIBRARY.

The sources for DECC$SYS_ERRLIST.C, DECC$SYS_ERRLIST.MAR,
DECC$SYS_ERRLIST.COM are listed here along with the steps for using
them.

1.  Create either DECC$SYS_ERRLIST.C or DECC$SYS_ERRLIST.MAR.

    Note:
       It is not necessary to have the DEC C compiler installed
       on your system to be able to link or run DEC C programs.
       For sites that do not have the DEC C compiler, use the MACRO
       code in step 1.B to resolve these undefined symbols.

    1.A Creating DECC$SYS_ERRLIST.C

        $ create DECC$SYS_ERRLIST.C
# pragma extern_model save
# pragma extern_model relaxed_refdef
    char *sys_errlist[] = {"",0};
    int sys_nerr = 0;
# pragma extern_model restore

       Compile DECC$SYS_ERRLIST.C.
$ cc DECC$SYS_ERRLIST


    1.B Creating DECC$SYS_ERRLIST.MAR

        $ create DECC$SYS_ERRLIST.MAR
     .TITLE DECC$SYS_ERRLIST "DECC$SYS_ERRLIST"
     .PSECT  $LITERAL$, PIC, CON, REL, LCL, SHR, NOEXE, RD, NOWRT
ZERO:
     .ASCII  <0>
     .PSECT  SYS_ERRLIST, NOPIC, OVR, REL, GBL,NOSHR, NOEXE, RD, WRT
SYS_ERRLIST::
     .ADDRESS  ZERO
     .long   0
     .PSECT  SYS_NERR, NOPIC, OVR, REL, GBL,NOSHR, NOEXE, RD, WRT
SYS_NERR::
     .LONG   0
     .end

        Assemble the MACRO code.
    $MACRO decc$sys_errlist


2. Move DECC$SYS_ERRLIST.OBJ to SYS$LIBRARY

3. Create DECC$SYS_ERRLIST.COM

$!
$!  Copyright 1995 by Digital Equipment Corporation.  All rights reserved.
$!
$!  DECC$SYS_ERRLIST.COM
$!
$! This command procedure inserts the module SYS$LIBRARY:DECC$SYS_ERRLIST.OBJ
$! into the SYS$LIBRARY:STARLET.OLB object library.  This module defines two
$! symbols named SYS_ERRLIST and SYS_NERR which may be needed to resolve
$! undefined symbols in your LINK command.
$!
$! If a LINK command results in one or both of these symbols being undefined,
$! then we recommend that you take one of the following corrective actions:
$!
$!  o  Recompile the module using DEC C for OpenVMS ALPHA V4.1 or later, or
$!  o  Modify your link to include SYS$LIBRARY:DECC$SYS_ERRLIST.OBJ, or
$!  o  Have the system manager invoke this command procedure
$!
$! Invoking this command procedure will make these two symbols automatically
$! available to the LINKER via STARLET.
$!
$! These symbols were removed from STARLET beginning in OpenVMS Alpha V6.2.
$! Only symbols prefixed with the facility specific prefix should be found
$! in STARLET.  This avoids the possibility of two separate facilities
$! defining the same symbol.
$!
$! The reason we are supplying this object file and command procedure is
$! that versions of the DEC C compiler prior running on pre-OpenVMS ALPHA V6.2
$! systems could generate references to these unprefixed symbols.  SYS_NERR
$! and SYS_ERRLIST will be prefixed as of OpenVMS V6.2.
$!
$
$ LIBRARY/INSERT SYS$LIBRARY:STARLET.OLB SYS$LIBRARY:DECC$SYS_ERRLIST.OBJ
$

4. Move DECC$SYS_ERRLIST.COM to SYS$LIBRARY

5. To resolve references to SYS_NERR or SYS_ERRLIST link with SYS$LIBRARY:
DECC$SYS_ERRLIST.OBJ directly.  Or invoke SYS$LIBRARY:DECC$SYS_ERRLIST.COM
to insert this object module into SYS$LIBRARY:STARLET.OLB