pkgsrc/devel/boost-jam/bjam.mk
adam d6df5a7063 boost: updated to 1.67.0
Version 1.67.0:
New Libraries:
- Contract: Contract programming for C++.
- HOF: Higher-order functions for C++.

Updated Libraries:
- Asio:
Added missing const qualifier to basic_socket_acceptor::get_option.
Worked around a parsing error that occurs with some versions of gcc.
Fixed broken code samples in tutorial.
Added new experimental features. (Note that "experimental" features may be changed without notice in subsequent releases.)
Added experimental::detached completion token.
Added experimental::redirect_error completion token.
Added experimental::co_spawn facility for integration with the coroutines technical specification.
Updated timeout examples to use latest features.
Used asio::steady_timer rather than asio::deadline_timer.
Used asio::dynamic_buffer rather than asio::streambuf.
Used timed asio::io_context::run_for() function for blocking clients.
Added example showing a custom completion token for blocking with timeouts.
Fixed unit tests to compile when BOOST_ASIO_NO_DEPRECATED is defined.
Changed socket iostreams to use chrono by default, to fix compatibility with the Networking TS. Define BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM to enable the old Boost.Date_Time interface in basic_socket_streambuf and basic_socket_iostream.
Updated examples to use chrono rather than Boost.Date_Time.
Fixed an incorrect member function detector in the is_dynamic_buffer trait.
Fixed an async_result incompatibility with deprecated handler_type.
Added a missing move optimisation in the SSL stream implementation.
Fixed incorrect basic_resolver_results::value_type typedef.
Fixed a compile error with some OpenSSL versions when SSL_OP_NO_COMPRESSION is defined.
Changed add_certificate_authority to process multiple certificates in a bundle.
Eliminated deprecation warning with MSVC by using std::invoke_result rather than std::result_of.
Changed to use std::string_view for C++17 or later, and std::experimental::string_view for C++14. Define the preprocessor macro BOOST_ASIO_DISABLE_STD_STRING_VIEW to force the use of std::experimental::string_view (assuming it is available) when compiling in C++17 mode.
Ensured DynamicBuffer template arguments are decayed before using in enable_if tests.
Changed documentation to distinguish legacy completion handlers (which are still required to be CopyConstructible) from new MoveConstructible handlers.
Suppressed a discarded return value warning in the buffer debugging support.
Fixed basic_yield_context to work with completion signatures containing reference parameters.
Ensured that stackful coroutines launched using spawn() correctly store decayed copies of their function and handler arguments.
Fixed some compatibility issues with Android.
Added cross-compilation support to Jamfiles.
Fixed some minor portability issues in examples.

- Atomic:
Breaking change: Changed the result of the (op)_and_test operations added in Boost 1.66 to the opposite - the functions now return true if the operation result is non-zero. This is consistent with other test methods in Boost.Atomic and the C++ standard library. Users can define BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST when compiling their code to emit warnings on every use of the changed functions. This way users can locate the code that needs to be updated.
Update for C++2a. On C++11 compilers that support scoped enums, the memory_order enumeration is now scoped and contains constants with shorter names like acquire, release or seq_cst (i.e. users can use memory_order::acquire instead of memory_order_acquire). The old constants are also provided for backward compatibility. (P0439R0)
Update for C++2a. Added experimental support for atomic operations on floating point types. In addition to general operations, add, sub, negate operations and their fetch_(op) and opaque_(op) versions are supported. Lock-free property can be tested with the new macros BOOST_ATOMIC_FLOAT/DOUBLE/LONG_DOUBLE_LOCK_FREE. The support for floating point types is optional and can be disabled by defining BOOST_ATOMIC_NO_FLOATING_POINT. (P0020R6)
Added new experimental operations:
negate_and_test and complement_and_test which perform negation or bitwise complement and return true if the result is not zero.
add, sub, negate, bitwise_and, bitwise_or, bitwise_xor, bitwise_complement operations which perform the operation and return its result.
For generic atomic<T> specialization, the default constructor is now trivial if T's default constructor is.
The internal implementation of atomic<T> has been updated to avoid undefined behavior that stems from signed integer overflows. As required by the C++ standard, the library uses two's complement representation of signed integers internally and accroding rules of overflow. Currently, the library requires the native signed integer types to also use two's complement representation (but no defined overflow semantics).
Improved Clang support. In particular, fixed DCAS not being lock-free and fixed possible incorrect code generated on 32-bit x86.
Improved MinGW support. For gcc versions up to 4.6, fixed compilation of DCAS on x86.
In x86 PIE code, asm blocks now preserve ebx value.

- Beast:
This version fixes significant defects in websocket::stream which can lead to asserts or undefined behavior. Users are encouraged to update to the latest Boost release.
For a complete list of changes, please view the official Release Notes.

- ContainerHash:
Extracted from the functional module to break a dependency cycle.
Moved headers to new location to reflect name change, the old include paths will still work.
Added support for std::string_view, std::error_code, std::error_condition, std::optional, std::variant, std::monostate where available.
Added explicit support for vector<bool>, so that it will work with libc++.
More detail in the library change log.

- Context:
fix i386/macho routines to correctly return transfer_t in EAX/EDX
__sanitizer_finish_switch_fiber should be called directly after context switch
Clang on Windows : error: No best alternative for libs/context/build/asm_sources
fixing C2492 for execution_context (v1)
known bug: including all.hpp + <context-impl>ucontext/winfib causes error 'forced_unwind: is not a member of boost::context::detail'

More info https://www.boost.org/users/history/version_1_67_0.html
2018-04-29 20:41:11 +00:00

55 lines
1.4 KiB
Makefile

# $NetBSD: bjam.mk,v 1.20 2018/04/29 20:41:11 adam Exp $
.include "../../devel/boost-jam/buildlink3.mk"
.include "../../devel/boost-build/toolset.mk"
BJAM= ${BUILDLINK_PREFIX.boost-jam}/bin/bjam
BJAM_ARGS+= ${MAKE_JOBS:D-j${MAKE_JOBS}}
BJAM_ARGS+= --builddir=${WRKSRC}/build
BJAM_ARGS+= --layout=system
BJAM_ARGS+= --toolset=${BOOST_TOOLSET}
BJAM_ARGS+= ${BJAM_BUILD}
# XXX: we can't use USE_LANGUAGES here as it needs to be set before
# including compiler.mk. Perhaps we should just enforce c++11?
#
.include "../../mk/compiler.mk"
.if !empty(PKGSRC_COMPILER:Mgcc)
. if !empty(CC_VERSION:Mgcc-4.[4-7]*)
BJAM_ARGS+= cxxflags=-std=c++0x
CXXFLAGS+= -std=c++0x
. elif !empty(CC_VERSION:Mgcc-4.[89]*)
BJAM_ARGS+= cxxflags=-std=c++11
CXXFLAGS+= -std=c++11
. elif !empty(CC_VERSION:Mgcc-5.[0-9]*)
BJAM_ARGS+= cxxflags=-std=c++14
CXXFLAGS+= -std=c++14
. endif
.endif
.if !empty(PKGSRC_COMPILER:Mclang)
BJAM_ARGS+= cxxflags=-std=c++11
CXXFLAGS+= -std=c++11
. if ${OPSYS} == "Darwin"
BJAM_ARGS+= cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++
. endif
.endif
BJAM_BUILD+= variant=release
BJAM_BUILD+= threading=multi
BJAM_BUILD+= link=shared,static
BJAM_BUILD+= linkflags=${LDFLAGS:Q}
BJAM_CMD= ${SETENV} ${MAKE_ENV} ${BJAM} ${BJAM_ARGS}
UNLIMIT_RESOURCES+= datasize
bjam-build:
${_ULIMIT_CMD} \
cd ${WRKSRC} && ${BJAM_CMD} --prefix=${PREFIX} stage
bjam-install:
${_ULIMIT_CMD} \
cd ${WRKSRC} && ${BJAM_CMD} --prefix=${DESTDIR}${PREFIX} install