IBM Support

IZ68461: WEAK SYMBOL NOT MARKED WEAK

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • a) Customer creates a *.C file that uses an inline function
    defined (and
    exported from) libC.a(ansi_64.o)
    
    b) Customer links with xlC_r -qmkshrobj.  The weak function
    definition
    in the *.o file causes the symbol to be added to the export list
    for the
    output shared object.
    
    c) A definition for the symbol is found in libC.a(ansi_64.imp).
    This
    definition is not marked as weak, so it takes precedence over
    other
    definitions.  The symbol in the resulting object is
    marked as ImpExp, imported from libC.a(ansi_64.o).
    
    d) at some point, customer library is used to link another
    shared
    object, also with *.o files needing the same inline function
    symbol.
    Now the 2nd library has ImpExp, imported from customer_lib1.so.
    
    e) library 1 is rebuilt using library2 as input (because of
    circular
    dependencies, this is required).
    
    Now, library 1 has an impexp from library 2.
    Library 2 has an impexp from library1.
    
    At run time, symbol resolution fails.
    

Local fix

  • n/a
    

Problem summary

  • PROBLEM DESCRIPTION:
    Need to mark weak symbols as weak and mark ansi_32.o and
    ansi_64.o load-only in libC,
    also mark new with placement as weak.
    
    USERS AFFECTED: Symbols may be unresolved at link time with
    runtime linking.
    

Problem conclusion

  • Marked weak symbols as weak. Marked ansi_32.o and ansi_64.o
    load-only.  Marked placement new as weak.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ68461

  • Reported component name

    XL C++ AIX

  • Reported component ID

    5724U8100

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-01-20

  • Closed date

    2010-09-24

  • Last modified date

    2010-09-24

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    LI75750

Fix information

  • Fixed component name

    XL C++ RUNTIME

  • Fixed component ID

    5724X1301

Applicable component levels

  • RB10 PSY

       UP



Document information

More support for: XL C/C++ for AIX

Software version: 11.1

Reference #: IZ68461

Modified date: 24 September 2010