Opened 6 months ago

Last modified 11 days ago

#68518 assigned defect

boost181: error: "Boost.Locale requires C++11 since Boost 1.81."

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: yosemite Cc: michaelld (Michael Dickens), cooljeanius (Eric Gallager)
Port: boost181

Description

On this buildbot worker:

OS X Yosemite v10.10.5 (14F2511)
Xcode v7.2.1 (7C1002)
Apple LLVM version 7.0.2 (clang-700.1.81)

thrift, which uses boost 1.81, fails to build:

https://build.macports.org/builders/ports-10.10_x86_64-builder/builds/242994/steps/install-port/logs/stdio

libtool: compile:  /usr/bin/clang++ -std=c++11 -DHAVE_CONFIG_H -I/opt/local/libexec/boost/1.81/include -I/opt/local/libexec/openssl3/include -I./src -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/opt/local/libexec/boost/1.81/include -I/opt/local/include -DBOOST_TEST_DYN_LINK -Wall -Wextra -pedantic -pipe -I/opt/local/libexec/boost/1.81/include -Os -stdlib=libc++ -arch x86_64 -MT src/thrift/protocol/TJSONProtocol.lo -MD -MP -MF src/thrift/protocol/.deps/TJSONProtocol.Tpo -c src/thrift/protocol/TJSONProtocol.cpp  -fno-common -DPIC -o src/thrift/protocol/.libs/TJSONProtocol.o
In file included from src/thrift/protocol/TJSONProtocol.cpp:22:
In file included from /opt/local/libexec/boost/1.81/include/boost/locale.hpp:10:
In file included from /opt/local/libexec/boost/1.81/include/boost/locale/boundary.hpp:10:
In file included from /opt/local/libexec/boost/1.81/include/boost/locale/boundary/boundary_point.hpp:10:
In file included from /opt/local/libexec/boost/1.81/include/boost/locale/boundary/types.hpp:10:
/opt/local/libexec/boost/1.81/include/boost/locale/config.hpp:56:6: error: "Boost.Locale requires C++11 since Boost 1.81."
#    error "Boost.Locale requires C++11 since Boost 1.81."
     ^

This is surprising since the thrift portfile does request a C++11 compiler with compiler.cxx_standard 2011 and the thrift build does put the compiler into C++11 mode with -std=c++11.

Maybe boost181 requires something more than baseline C++11 support, or maybe MacPorts base is wrong about this version of clang having full baseline C++11 support. config.hpp says:

// Check for some C++11 features to provide easier checks for what is missing
// shortly after the requirement of C++11 in Boost 1.81
// clang-format off
#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || \
    defined(BOOST_NO_CXX11_DEFAULTED_MOVES) ||     \
    defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) ||      \
    defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) ||     \
    defined(BOOST_NO_CXX11_NOEXCEPT) ||            \
    defined(BOOST_NO_CXX11_OVERRIDE) ||            \
    defined(BOOST_NO_CXX11_RVALUE_REFERENCES) ||   \
    defined(BOOST_NO_CXX11_SMART_PTR) ||           \
    defined(BOOST_NO_CXX11_STATIC_ASSERT)
// clang-format on
#    error "Boost.Locale requires C++11 since Boost 1.81."
#endif

Change History (2)

comment:1 Changed 4 weeks ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:2 Changed 11 days ago by mascguy (Christopher Nielsen)

Cc: mascguy removed
Owner: set to mascguy
Status: newassigned
Note: See TracTickets for help on using tickets.