Discussion:
[jira] [Created] (XALANC-765) Build fails on Solaris with C++11 enabled
Oliver Kiddle (JIRA)
2015-12-07 02:39:11 UTC
Permalink
Oliver Kiddle created XALANC-765:
------------------------------------

Summary: 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: 1.11, CurrentCVS
Environment: Solaris
Reporter: Oliver Kiddle
Assignee: Steven J. Hathaway


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
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-***@xalan.apache.org
For additional commands, e-mail: dev-***@xalan.apache.org
Oliver Kiddle (JIRA)
2015-12-07 02:41:10 UTC
Permalink
[ https://issues.apache.org/jira/browse/XALANC-765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oliver Kiddle updated XALANC-765:
---------------------------------
Attachment: xalan-solaris-cxx11.diff
Post by Oliver Kiddle (JIRA)
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
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
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-***@xalan.apache.org
For additional commands, e-mail: dev-***@xalan.apache.org
Oliver Kiddle (JIRA)
2015-12-07 02:42:11 UTC
Permalink
[ https://issues.apache.org/jira/browse/XALANC-765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oliver Kiddle updated XALANC-765:
---------------------------------
Description:
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.

was:
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.
Post by Oliver Kiddle (JIRA)
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
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
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-***@xalan.apache.org
For additional commands, e-mail: dev-***@xalan.apache.org
Michael Parker (JIRA)
2018-07-27 10:18:00 UTC
Permalink
[ https://issues.apache.org/jira/browse/XALANC-765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16559531#comment-16559531 ]

Michael Parker commented on XALANC-765:
---------------------------------------

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...
Post by Oliver Kiddle (JIRA)
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-***@xalan.apache.org
For additional commands, e-mail: dev-***@xalan.apache.org
Michael Parker (JIRA)
2018-07-27 10:20:00 UTC
Permalink
[ 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...
Post by Oliver Kiddle (JIRA)
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-***@xalan.apache.org
For additional commands, e-mail: dev-***@xalan.apache.org
Michael Parker (JIRA)
2018-07-27 10:21:00 UTC
Permalink
[ 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:20 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 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...
Post by Oliver Kiddle (JIRA)
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-***@xalan.apache.org
For additional commands, e-mail: dev-***@xalan.apache.org

Loading...