Opened 5 years ago
Last modified 5 years ago
#13042 new Bugs
Build errors with stdlib=sun-stlport on Linux
Reported by: | Owned by: | Vladimir Prus | |
---|---|---|---|
Milestone: | To Be Determined | Component: | build |
Version: | Boost 1.63.0 | Severity: | Problem |
Keywords: | Cc: |
Description
The build on Oracle Linux fails with stdlib=sun-stlport due to a default option incompatibility:
$ b2 stdlib=sun-stlport ...failed sun.compile.c++ bin.v2/libs/python/build/sun/release/link-static/stdlib-sun-stlport/threading-multi/numpy/dtype.o... sun.compile.c++ bin.v2/libs/python/build/sun/release/link-static/stdlib-sun-stlport/threading-multi/numpy/matrix.o CC: -library=stlport4 cannot be used with -std=c++03. To use this library you need to switch to -std=sun03
The -library=stlport4 option requires -compat=5 (or -std=sun03 which is the same thing), but the default on Linux is -compat=g (GNU ABI, equivalent to -std=c++03). So -library=stlport4 is not compatible with the default on Linux.
The fix is to always specify -compat=5 together with -library=stlport4; another option would be to specify -std=sun03 instead as the error message suggests, but older compilers don't recognize the latter option, so -compat=5 is safer to use.
A similar problem could arise for the apache (stdcxx4) library that is also only supported with -compat=5, so I suggest to make similar changes for it as well. This is not strictly necessary as currently the apache library is only supported on Solaris where -compat=5 is the default, but making this additional change makes the build more future-proof.
Pull Request: https://github.com/boostorg/build/pull/199