1[/ 2 Copyright Oliver Kowalke 2014. 3 Distributed under the Boost Software License, Version 1.0. 4 (See accompanying file LICENSE_1_0.txt or copy at 5 http://www.boost.org/LICENSE_1_0.txt 6] 7 8[section:requirements Requirements] 9 10If __boost_context__ uses fcontext_t (the default) as its implementation, 11it must be built for the particular compiler(s) and CPU architecture(s) 12being targeted. 13Using [link implementation ['fcontext_t]], __boost_context__ includes assembly 14code and, therefore, requires GNU as and GNU preprocessor for supported POSIX 15systems, MASM for Windows/x86 systems and ARMasm for Windows/arm systems. 16 17[note MASM64 (ml64.exe) is a part of Microsoft's Windows Driver Kit.] 18 19[important Please note that `address-model=64` must be given to bjam command 20line on 64bit Windows for 64bit build; otherwise 32bit code will be generated.] 21 22[important For cross-compiling the lib you must specify certain additional 23properties at bjam command line: `target-os`, `abi`, `binary-format`, 24`architecture` and `address-model`.] 25 26[important Windows using fcontext_t: for safe SEH the property 'asmflags=\safeseh' must be specified at 27bjam command line.] 28 29[important Windows using fcontext_t: turn off global program optimization (/GL) and change /EHsc (compiler 30assumes that functions declared as extern "C" never throw a C++ exception) to /EHs (tells 31compiler assumes that functions declared as extern "C" may throw an exception).] 32 33Because this library uses C++11 extensively, it requires a compatible compiler. 34Known minimum working versions are as follows: Microsoft Visual Studio 2015 35(msvc-14.0), GCC 4.8 (with -std=c++11), Clang 3.4 (with -std=c++11). Other 36compilers may work, if they support the following language features: auto 37declarations, constexpr, defaulted functions, final, hdr thread, hdr tuple, 38lambdas, noexcept, nullptr, rvalue references, template aliases. thread local, 39variadic templates. 40 41[endsect] 42