You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "Michael Parker (JIRA)" <ji...@apache.org> on 2018/07/27 10:20:00 UTC

[jira] [Comment Edited] (XALANC-765) Build fails on Solaris with C++11 enabled

    [ 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-unsubscribe@xalan.apache.org
For additional commands, e-mail: dev-help@xalan.apache.org