Opened 5 years ago

Closed 4 years ago

#13026 closed Bugs (obsolete)

Boost is not correctly configured on modern Mac with Intel C++ Compiler

Reported by: Trifud Owned by: John Maddock
Milestone: To Be Determined Component: config
Version: Boost 1.64.0 Severity: Problem
Keywords: clang intel rtti macos Cc:

Description

Boost does not work properly on modern macOS, for example 10.11, with Intel C++ Compiler.

When compiling with default language/standard/compatibility flags, select_compiler_config.hpp picks up intel.hpp which does not define BOOST_NO_RTTI and BOOST_NO_RTTI due to __INTEL_RTTI__. This is wrong, since Intel C++ 2016 builds upon LLVM/Clang which does not have RTTI. As a result, if your application uses RTTI-dependent operators (like typeid()), it breaks.

When you compile with the following flags:

-no-use-intel-optimized-headers -no-intel-extensions -no-icc -no-gcc

...then Boost picks up clang.hpp. But the Clang version handling in this header file is broken since Apple has different versioning scheme for Clang.

However, if you use the flag -clangxx-name=<clang> with a custom Clang version, then the Clang versioning scheme is back to normal.

When building with Intel C++ on macOS, both Clang and Intel compiler specific settings need to be considered.

Change History (1)

comment:1 by John Maddock, 4 years ago

Resolution: obsolete
Status: newclosed

Moved to https://github.com/boostorg/config/issues/235.

Please consider filing some PR's against current develop as your configuration isn't one we can easily test here.

Note: See TracTickets for help on using tickets.