AIX

AIX

Connect with fellow AIX users and experts to gain knowledge, share insights, and solve problems.

 View Only
Expand all | Collapse all

AIX 5.3 -- Symbol resolution issue with libC.a (XL C/C++ compiler v7.0)

  • 1.  AIX 5.3 -- Symbol resolution issue with libC.a (XL C/C++ compiler v7.0)

    Posted Wed July 08, 2009 07:35 AM

    Originally posted by: Erra


    We are building our product on AIX 5.3 machine which has following configuration
    $ uname -a
    AIX sdaix092 3 5 0002AB32D900
    $ oslevel -r
    5300-08
    $ /usr/vac/bin/xlc -qversion
    IBM XL C/C++ Enterprise Edition for AIX, V9.0
    Version: 09.00.0000.0000
    $ /usr/vacpp/bin/xlC -qversion
    IBM XL C/C++ Enterprise Edition for AIX, V9.0
    Version: 09.00.0000.0000
    $ lslpp -f xlC.rte
    Fileset File

    Path: /usr/lib/objrepos
    xlC.rte 9.0.0.1 /usr/ccs/lib/libp/libC_r.a -> /usr/lpp/xlC/lib/profiled/libC_r.a
    xlC.rte 9.0.0.1 /usr/lib/libC.a -> /usr/lpp/xlC/lib/libC.a
    xlC.rte 9.0.0.1 /usr/lib/libibmcls.a -> /usr/lpp/xlC/lib/libibmcls.a
    xlC.rte 9.0.0.1 /usr/lpp/xlC/lib/libibmuis.a
    /usr/ccs/lib/libp/libC128_r.a -> /usr/lpp/xlC/lib/profiled/libC128_r.a
    /usr/lib/libC128.a -> /usr/lpp/xlC/lib/libC128.a
    /usr/lib/libC128_r.a -> /usr/lpp/xlC/lib/libC128_r.a
    /usr/ccs/lib/libp/libC.a -> /usr/lpp/xlC/lib/profiled/libC.a
    /usr/ccs/lib/libp/libC128.a -> /usr/lpp/xlC/lib/profiled/libC128.a
    /usr/lib/libC_r.a -> /usr/lpp/xlC/lib/libC_r.a
    /usr/lpp/xlC/lib/libibmcls.a
    /usr/lib/libibmuis.a -> /usr/lpp/xlC/lib/libibmuis.a

    We are providing shared libraries for our clients. Now clients are getting runtime issues when they run their applications(unresolved symbols from libC.a) on their test machines which have AIX 5.3 installed with having lower version of C/C++ runtime libraries.

    Client machine has following configuration
    :/ > uname -a
    AIX optimus 3 5 00CA155D4C00
    :/ > /usr/vac/bin/xlc -qversion
    @(#) IBM XL C/C++ Enterprise Edition V7.0
    :/ > lslpp -f xlC.rte
    Fileset File

    Path: /usr/lib/objrepos
    xlC.rte 7.0.0.0 /usr/ccs/lib/libp/libC_r.a -> /usr/lpp/xlC/lib/profiled/libC_r.a
    xlC.rte 7.0.0.0 /usr/lib/libC.a -> /usr/lpp/xlC/lib/libC.a
    xlC.rte 7.0.0.0 /usr/lib/libibmcls.a -> /usr/lpp/xlC/lib/libibmcls.a
    xlC.rte 7.0.0.0 /usr/lpp/xlC/lib/libibmuis.a
    /usr/ccs/lib/libp/libC128_r.a -> /usr/lpp/xlC/lib/profiled/libC128_r.a
    /usr/lib/libC128.a -> /usr/lpp/xlC/lib/libC128.a
    /usr/lib/libC128_r.a -> /usr/lpp/xlC/lib/libC128_r.a
    /usr/ccs/lib/libp/libC.a -> /usr/lpp/xlC/lib/profiled/libC.a
    /usr/ccs/lib/libp/libC128.a -> /usr/lpp/xlC/lib/profiled/libC128.a
    /usr/lib/libC_r.a -> /usr/lpp/xlC/lib/libC_r.a
    /usr/lpp/xlC/lib/libibmcls.a
    /usr/lib/libibmuis.a -> /usr/lpp/xlC/lib/libibmuis.a

    As runtime libraries at client machine were older than what we have used to built out product, certain symbols are not available in the older libraries and getting failed with "unresolved symbols" errors. (Here we are getting unresolved symbols only from libC.a.)

    To resolve above kind of issues, we have two options.

    1. To built with the initial/lower version of compiler that comes with AIX 5.3. Then when client application is built with the same compiler or with latest one then also will be no issues. Latest version of compilers any how will be having backward compatibility.

    2. Give a tech alert providing detailed information about the scenario and suggesting to use runtime libraries fileset version v9.0 or latest (now v10.x.x.x is also available).

    we can't force the client to use specific version of runtime librararies.
    So we have to go for option #1.

    For this i want know what is the lower version of XL C/C++ compiler comes with AIX 5.3?


  • 2.  Re: AIX 5.3 -- Symbol resolution issue with libC.a (XL C/C++ compiler v7.0)

    Posted Wed July 08, 2009 08:59 AM

    Originally posted by: Sumanth.Sharma


    I could be wrong, but my understanding is that XL C/C+ does not come free with Aix 5.3 OS CD, you may have to buy the license separately for it, it may only come free for 90 days.

    I build using version XL C/C++ 6 on a Aix 5.2 build machine (will move to Aix 5.3 for building since 5.2 has reached EOL)
    I think XL C/C++ version 6 should be supported/should work on Aix 5.3.

    PS: Version 6 has some known issues, please be sure to install all the necessary APARS if you switch to XL C/C++ V6