Opened 5 years ago

Last modified 5 years ago

#13042 new Bugs

Build errors with stdlib=sun-stlport on Linux

Reported by: maxim.kartashev@… 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.

Change History (2)

comment:2 by maxim.kartashev@…, 5 years ago

ping

Note: See TracTickets for help on using tickets.