IBM Support

PI09029: IOS APP LINK FAILS WHEN SETTING IOS DEPLOYMENT TARGET TO 7.0

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Setting the iOS Deployment Target to 7 causes the following link
    errors:
    
    Undefined symbols for architecture i386:
      "std::string::c_str() const", referenced from:
          +[NSNumber(UCUtils) doubleToString:] in
    libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)
      "std::basic_ostringstream<char, std::char_traits<char>,
    std::allocator<char> >::str() const", referenced from:
          +[NSNumber(UCUtils) doubleToString:] in
    libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)
      "std::ostream::operator<<(double)", referenced from:
          +[NSNumber(UCUtils) doubleToString:] in
    libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)
      "std::basic_string<char, std::char_traits<char>,
    std::allocator<char> >::~basic_string()", referenced from:
          +[NSNumber(UCUtils) doubleToString:] in
    libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)
      "std::basic_ostringstream<char, std::char_traits<char>,
    std::allocator<char>
    >::basic_ostringstream(std::_Ios_Openmode)", referenced from:
          +[NSNumber(UCUtils) doubleToString:] in
    libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)
      "std::basic_ostringstream<char, std::char_traits<char>,
    std::allocator<char> >::~basic_ostringstream()", referenced
    from:
          +[NSNumber(UCUtils) doubleToString:] in
    libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)
    ld: symbol(s) not found for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to
    see invocation)
    
    Setting it back to anything between 5.0 to 6.1 links and
    executes successfully.
    

Local fix

  • In the Build Phases tab, remove the libraries libstdc++.sylib
    and the libc++.dynlib, and add libstdc++.6.dylib instead
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * iOS developers creating hybrid or native applications using  *
    * IBM Worklight 6.1, who use would like to use iOS 7 as the    *
    * Deployment Target                                            *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * Setting the iOS Deployment Target to 7 causes the following  *
    * link                                                         *
    * errors:                                                      *
    *                                                              *
    * Undefined symbols for architecture i386:                     *
    *   "std::string::c_str() const", referenced from:             *
    *       +[NSNumber(UCUtils) doubleToString:] in                *
    * libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)     *
    *   "std::basic_ostringstream<char, std::char_traits<char>,    *
    * std::allocator<char> >::str() const", referenced from:       *
    *       +[NSNumber(UCUtils) doubleToString:] in                *
    * libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)     *
    *   "std::ostream::operator<<(double)", referenced from:       *
    *       +[NSNumber(UCUtils) doubleToString:] in                *
    * libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)     *
    *   "std::basic_string<char, std::char_traits<char>,           *
    * std::allocator<char> >::~basic_string()", referenced from:   *
    *       +[NSNumber(UCUtils) doubleToString:] in                *
    * libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)     *
    *   "std::basic_ostringstream<char, std::char_traits<char>,    *
    * std::allocator<char>                                         *
    * >::basic_ostringstream(std::_Ios_Openmode)", referenced      *
    * from:                                                        *
    *       +[NSNumber(UCUtils) doubleToString:] in                *
    * libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)     *
    *   "std::basic_ostringstream<char, std::char_traits<char>,    *
    * std::allocator<char> >::~basic_ostringstream()", referenced  *
    * from:                                                        *
    *       +[NSNumber(UCUtils) doubleToString:] in                *
    * libWorklightStaticLibProjectNative.a(NSNumber-UCUtils.o)     *
    * ld: symbol(s) not found for architecture i386                *
    * clang: error: linker command failed with exit code 1 (use -v *
    * to                                                           *
    * see invocation)                                              *
    *                                                              *
    * Setting it back to anything between 5.0 to 6.1 links and     *
    * executes successfully.                                       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * -                                                            *
    ****************************************************************
    

Problem conclusion

  • For hybrid applications, the project template was changed to use
    the library libstdc++.6.dylib instead of libstdc++.sylib and the
    libc++.dynlib.  For native applications, the documentation on
    creating a new native project has been updated accordingly.
    
    This fix is currently targeted for inclusion in fixpack 6.1.0.2.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI09029

  • Reported component name

    WORKLIGHT CONSU

  • Reported component ID

    5725I4301

  • Reported release

    610

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-01-07

  • Closed date

    2014-02-01

  • Last modified date

    2014-02-01

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

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

Fix information

  • Fixed component name

    WORKLIGHT CONSU

  • Fixed component ID

    5725I4301

Applicable component levels

  • R610 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSZH4A","label":"IBM Worklight"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"610","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
15 October 2021