[ https://issues.apache.org/jira/browse/XALANC-765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16559531#comment-16559531 ]
Michael Parker edited comment on XALANC-765 at 7/27/18 10:19 AM: ----------------------------------------------------------------- We've come across the same problem. In our product, we use both ICU and Xalan/Xerces. Since the newer versions of ICU make extensive use of C++ 11, and since the ICU header files also make use of C++ 11 syntax, we need to also compile and link our application with the -std=c+11 option. On Solaris, this has the side effect of changing the ABI (specifically, the C+ name mangling) to be GNU compatible. This in turn requires that all other components used by the application with C++ linkage (including Xalan/Xerces) are also compiled with the same -std=c++11 option, causing the same problems as described above... was (Author: mhparker): We've come across the same problem. In our product, we use both ICU and Xalan/Xerces. Since the newer versions of ICU make extensive use of C++ 11, and since the ICU header files also make use of C++ 11 syntax, we need to also compile and link our application with the -std=c++11. On Solaris, this has the side effect of changing the ABI (specifically, the C++ name mangling) to be GNU compatible. This in turn requires that all other components used by the application with C++ linkage (including Xalan/Xerces) are also compiled with the same -std=c++11 option, causing the same problems as described above... > Build fails on Solaris with C++11 enabled > ----------------------------------------- > > Key: XALANC-765 > URL: https://issues.apache.org/jira/browse/XALANC-765 > Project: XalanC > Issue Type: Bug > Components: XalanC > Affects Versions: CurrentCVS, 1.11 > Environment: Solaris > Reporter: Oliver Kiddle > Assignee: Steven J. Hathaway > Priority: Major > Attachments: xalan-solaris-cxx11.diff > > Original Estimate: 0h > Remaining Estimate: 0h > > The {{-std=c\+\+11}} option with Solaris Studio 12.4 makes use of GNU > libstdc++ 4.8.2 for the STL instead of the legacy Rogue Wave one. > SolarisDefinitions.h therefore needs to be changed to check that > {{__SUNPRO_CC_COMPAT == 'G'}} > That comes alongside the {{_STLP_CONFIG_H}} (stlport) check to define > {{XALAN_HAS_STD_ITERATORS/DISTANCE}}. > This would also apply for the {{-compat=g}} option which can enable the use > of libstdc++ (albeit an older version) with C++98. > Note that testing for {{\_\_GLIBCXX\_\_}} does not appear to work. I think > that is only defined once an STL header has been included. > The runConfigure script actually makes it quite awkward to build for C\+\+11. > I don't want {{-std=c\+\+11}} to be passed to the C compiler but it is needed > for the C++ compiler when the C++ compiler is used as a linker driver. > Normally with configure, I'd specify {{CXX='CC -std=c++11'}} but runConfigure > doesn't cope with the space. I instead resorted to hacking Makefile.incl > after configure is run. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@xalan.apache.org For additional commands, e-mail: dev-h...@xalan.apache.org