summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/context/build
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/context/build')
-rw-r--r--src/boost/libs/context/build/Jamfile.v2828
-rw-r--r--src/boost/libs/context/build/architecture.jam92
-rw-r--r--src/boost/libs/context/build/cxx11_hdr_mutex.cpp10
3 files changed, 930 insertions, 0 deletions
diff --git a/src/boost/libs/context/build/Jamfile.v2 b/src/boost/libs/context/build/Jamfile.v2
new file mode 100644
index 000000000..580aca664
--- /dev/null
+++ b/src/boost/libs/context/build/Jamfile.v2
@@ -0,0 +1,828 @@
+
+# Boost.Context Library Build Jamfile
+
+# Copyright Oliver Kowalke 2009.
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+import common ;
+import feature ;
+import indirect ;
+import modules ;
+import os ;
+import toolset ;
+ import ../../config/checks/config : requires ;
+
+feature.feature segmented-stacks : on : optional propagated composite ;
+feature.compose <segmented-stacks>on : <define>BOOST_USE_SEGMENTED_STACKS ;
+
+feature.feature htm : tsx : optional propagated composite ;
+feature.compose <htm>tsx : <define>BOOST_USE_TSX ;
+
+feature.feature valgrind : on : optional propagated composite ;
+feature.compose <valgrind>on : <define>BOOST_USE_VALGRIND ;
+
+project boost/context
+ : requirements
+ <target-os>windows:<define>_WIN32_WINNT=0x0601
+ <toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
+ <toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
+ <toolset>gcc,<segmented-stacks>on:<linkflags>"-static-libgcc"
+ <toolset>clang,<segmented-stacks>on:<cxxflags>-fsplit-stack
+ <toolset>clang,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
+ <toolset>clang,<segmented-stacks>on:<linkflags>"-static-libgcc"
+ <toolset>intel,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT
+ <toolset>intel,<link>static:<define>BOOST_CONTEXT_EXPORT=
+ <toolset>msvc,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT
+ <toolset>msvc,<link>static:<define>BOOST_CONTEXT_EXPORT=
+ <toolset>clang-win,<link>shared:<define>BOOST_CONTEXT_EXPORT=EXPORT
+ <toolset>clang-win,<link>static:<define>BOOST_CONTEXT_EXPORT=
+ <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1
+ <define>BOOST_CONTEXT_SOURCE
+ <threading>multi
+ : usage-requirements
+ <link>shared:<define>BOOST_CONTEXT_DYN_LINK=1
+ <optimization>speed:<define>BOOST_DISABLE_ASSERTS
+ <variant>release:<define>BOOST_DISABLE_ASSERTS
+ : source-location ../src
+ ;
+
+
+local rule default_binary_format ( )
+{
+ local tmp = elf ;
+ if [ os.name ] = "NT" { tmp = pe ; }
+ else if [ os.name ] = "CYGWIN" { tmp = pe ; }
+ else if [ os.name ] = "AIX" { tmp = xcoff ; }
+ else if [ os.name ] = "MACOSX" { tmp = mach-o ; }
+ return $(tmp) ;
+}
+
+feature.feature binary-format
+ : elf
+ mach-o
+ pe
+ xcoff
+ : propagated
+ ;
+feature.set-default binary-format : [ default_binary_format ] ;
+
+
+local rule default_abi ( )
+{
+ local tmp = sysv ;
+ if [ os.name ] = "NT" { tmp = ms ; }
+ else if [ os.name ] = "CYGWIN" { tmp = ms ; }
+ else if [ os.platform ] = "ARM" { tmp = aapcs ; }
+ else if [ os.platform ] = "MIPS32" { tmp = o32 ; }
+ else if [ os.platform ] = "MIPS64" { tmp = n64 ; }
+ return $(tmp) ;
+}
+
+feature.feature abi
+ : aapcs
+ eabi
+ ms
+ n32
+ n64
+ o32
+ o64
+ sysv
+ x32
+ : propagated
+ ;
+feature.set-default abi : [ default_abi ] ;
+
+
+feature.feature context-impl
+ : fcontext
+ ucontext
+ winfib
+ : propagated
+ composite
+ ;
+feature.set-default context-impl : fcontext ;
+feature.compose <context-impl>ucontext : <define>BOOST_USE_UCONTEXT ;
+feature.compose <context-impl>winfib : <define>BOOST_USE_WINFIB ;
+
+# ARM
+# ARM/AAPCS/ELF
+alias asm_sources
+ : asm/make_arm_aapcs_elf_gas.S
+ asm/jump_arm_aapcs_elf_gas.S
+ asm/ontop_arm_aapcs_elf_gas.S
+ : <abi>aapcs
+ <address-model>32
+ <architecture>arm
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_arm_aapcs_elf_gas.S
+ asm/jump_arm_aapcs_elf_gas.S
+ asm/ontop_arm_aapcs_elf_gas.S
+ : <abi>aapcs
+ <address-model>32
+ <architecture>arm
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+alias asm_sources
+ : asm/make_arm_aapcs_elf_gas.S
+ asm/jump_arm_aapcs_elf_gas.S
+ asm/ontop_arm_aapcs_elf_gas.S
+ : <abi>aapcs
+ <address-model>32
+ <architecture>arm
+ <binary-format>elf
+ <toolset>qcc
+ ;
+
+# ARM/AAPCS/MACH-O
+alias asm_sources
+ : asm/make_arm_aapcs_macho_gas.S
+ asm/jump_arm_aapcs_macho_gas.S
+ asm/ontop_arm_aapcs_macho_gas.S
+ : <abi>aapcs
+ <address-model>32
+ <architecture>arm
+ <binary-format>mach-o
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_arm_aapcs_macho_gas.S
+ asm/jump_arm_aapcs_macho_gas.S
+ asm/ontop_arm_aapcs_macho_gas.S
+ : <abi>aapcs
+ <address-model>32
+ <architecture>arm
+ <binary-format>mach-o
+ <toolset>darwin
+ ;
+
+# ARM/AAPCS/PE
+alias asm_sources
+ : asm/make_arm_aapcs_pe_armasm.asm
+ asm/jump_arm_aapcs_pe_armasm.asm
+ asm/ontop_arm_aapcs_pe_armasm.asm
+ untested.cpp
+ : <abi>aapcs
+ <address-model>32
+ <architecture>arm
+ <binary-format>pe
+ <toolset>msvc
+ ;
+
+# ARM64
+# ARM64/AAPCS/ELF
+alias asm_sources
+ : asm/make_arm64_aapcs_elf_gas.S
+ asm/jump_arm64_aapcs_elf_gas.S
+ asm/ontop_arm64_aapcs_elf_gas.S
+ : <abi>aapcs
+ <address-model>64
+ <architecture>arm
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_arm64_aapcs_elf_gas.S
+ asm/jump_arm64_aapcs_elf_gas.S
+ asm/ontop_arm64_aapcs_elf_gas.S
+ : <abi>aapcs
+ <address-model>64
+ <architecture>arm
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+# ARM64/AAPCS/MACH-O
+alias asm_sources
+ : asm/make_arm64_aapcs_macho_gas.S
+ asm/jump_arm64_aapcs_macho_gas.S
+ asm/ontop_arm64_aapcs_macho_gas.S
+ : <abi>aapcs
+ <address-model>64
+ <architecture>arm
+ <binary-format>mach-o
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_arm64_aapcs_macho_gas.S
+ asm/jump_arm64_aapcs_macho_gas.S
+ asm/ontop_arm64_aapcs_macho_gas.S
+ : <abi>aapcs
+ <address-model>64
+ <architecture>arm
+ <binary-format>mach-o
+ <toolset>darwin
+ ;
+
+# MIPS
+# MIPS32/O32/ELF
+alias asm_sources
+ : asm/make_mips32_o32_elf_gas.S
+ asm/jump_mips32_o32_elf_gas.S
+ asm/ontop_mips32_o32_elf_gas.S
+ : <abi>o32
+ <address-model>32
+ <architecture>mips1
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_mips32_o32_elf_gas.S
+ asm/jump_mips32_o32_elf_gas.S
+ asm/ontop_mips32_o32_elf_gas.S
+ : <abi>o32
+ <address-model>32
+ <architecture>mips1
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+# MIPS64/N64/ELF
+alias asm_sources
+ : asm/make_mips64_n64_elf_gas.S
+ asm/jump_mips64_n64_elf_gas.S
+ asm/ontop_mips64_n64_elf_gas.S
+ : <abi>n64
+ <address-model>64
+ <architecture>mips1
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_mips64_n64_elf_gas.S
+ asm/jump_mips64_n64_elf_gas.S
+ asm/ontop_mips64_n64_elf_gas.S
+ : <abi>n64
+ <address-model>64
+ <architecture>mips1
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+# POWERPC_32
+# POWERPC_32/SYSV/ELF
+alias asm_sources
+ : asm/make_ppc32_sysv_elf_gas.S
+ asm/jump_ppc32_sysv_elf_gas.S
+ asm/ontop_ppc32_sysv_elf_gas.S
+ asm/tail_ppc32_sysv_elf_gas.cpp
+ : <abi>sysv
+ <address-model>32
+ <architecture>power
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_ppc32_sysv_elf_gas.S
+ asm/jump_ppc32_sysv_elf_gas.S
+ asm/ontop_ppc32_sysv_elf_gas.S
+ asm/tail_ppc32_sysv_elf_gas.cpp
+ : <abi>sysv
+ <address-model>32
+ <architecture>power
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+alias asm_sources
+ : asm/make_ppc32_sysv_macho_gas.S
+ asm/jump_ppc32_sysv_macho_gas.S
+ asm/ontop_ppc32_sysv_macho_gas.S
+ : <abi>sysv
+ <address-model>32
+ <architecture>power
+ <binary-format>mach-o
+ <toolset>darwin
+ ;
+
+#POWERPC_32/SYSV/XCOFF
+alias asm_sources
+ : asm/make_ppc32_sysv_xcoff_gas.S
+ asm/jump_ppc32_sysv_xcoff_gas.S
+ asm/ontop_ppc32_sysv_xcoff_gas.S
+ : <abi>sysv
+ <address-model>32
+ <architecture>power
+ <binary-format>xcoff
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_ppc32_sysv_xcoff_gas.S
+ asm/jump_ppc32_sysv_xcoff_gas.S
+ asm/ontop_ppc32_sysv_xcoff_gas.S
+ : <abi>sysv
+ <address-model>32
+ <architecture>power
+ <binary-format>xcoff
+ <toolset>gcc
+ ;
+
+# POWERPC_64
+# POWERPC_64/SYSV/ELF
+alias asm_sources
+ : asm/make_ppc64_sysv_elf_gas.S
+ asm/jump_ppc64_sysv_elf_gas.S
+ asm/ontop_ppc64_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>power
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_ppc64_sysv_elf_gas.S
+ asm/jump_ppc64_sysv_elf_gas.S
+ asm/ontop_ppc64_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>power
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+# POWERPC_64/SYSV/MACH-O
+alias asm_sources
+ : asm/make_ppc64_sysv_macho_gas.S
+ asm/jump_ppc64_sysv_macho_gas.S
+ asm/ontop_ppc64_sysv_macho_gas.S
+ untested.cpp
+ : <abi>sysv
+ <address-model>64
+ <architecture>power
+ <binary-format>mach-o
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_ppc64_sysv_macho_gas.S
+ asm/jump_ppc64_sysv_macho_gas.S
+ asm/ontop_ppc64_sysv_macho_gas.S
+ untested.cpp
+ : <abi>sysv
+ <address-model>64
+ <architecture>power
+ <binary-format>mach-o
+ <toolset>darwin
+ ;
+
+# POWERPC_64/SYSV/XCOFF
+alias asm_sources
+ : asm/make_ppc64_sysv_xcoff_gas.S
+ asm/jump_ppc64_sysv_xcoff_gas.S
+ asm/ontop_ppc64_sysv_xcoff_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>power
+ <binary-format>xcoff
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_ppc64_sysv_xcoff_gas.S
+ asm/jump_ppc64_sysv_xcoff_gas.S
+ asm/ontop_ppc64_sysv_xcoff_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>power
+ <binary-format>xcoff
+ <toolset>gcc
+ ;
+
+# POWERPC universal
+# POWERPC_32_64/SYSV/MACH-O
+alias asm_sources
+ : asm/make_ppc32_ppc64_sysv_macho_gas.S
+ asm/jump_ppc32_ppc64_sysv_macho_gas.S
+ asm/ontop_ppc32_ppc64_sysv_macho_gas.S
+ : <abi>sysv
+ <address-model>32_64
+ <architecture>power
+ <binary-format>mach-o
+ ;
+
+# RISCV64
+# RISCV64/SYSV/ELF
+alias asm_sources
+ : asm/make_riscv64_sysv_elf_gas.S
+ asm/jump_riscv64_sysv_elf_gas.S
+ asm/ontop_riscv64_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>riscv
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+# S390X
+# S390X/SYSV/ELF
+alias asm_sources
+ : asm/make_s390x_sysv_elf_gas.S
+ asm/jump_s390x_sysv_elf_gas.S
+ asm/ontop_s390x_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>s390x
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+# X86
+# X86/SYSV/ELF
+alias asm_sources
+ : asm/make_i386_sysv_elf_gas.S
+ asm/jump_i386_sysv_elf_gas.S
+ asm/ontop_i386_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>32
+ <architecture>x86
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_i386_sysv_elf_gas.S
+ asm/jump_i386_sysv_elf_gas.S
+ asm/ontop_i386_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>32
+ <architecture>x86
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+alias asm_sources
+ : asm/make_i386_sysv_elf_gas.S
+ asm/jump_i386_sysv_elf_gas.S
+ asm/ontop_i386_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>32
+ <architecture>x86
+ <binary-format>elf
+ <toolset>intel
+ ;
+
+# X86/SYSV/MACH-O
+alias asm_sources
+ : asm/make_i386_sysv_macho_gas.S
+ asm/jump_i386_sysv_macho_gas.S
+ asm/ontop_i386_sysv_macho_gas.S
+ : <abi>sysv
+ <address-model>32
+ <architecture>x86
+ <binary-format>mach-o
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_i386_sysv_macho_gas.S
+ asm/jump_i386_sysv_macho_gas.S
+ asm/ontop_i386_sysv_macho_gas.S
+ : <abi>sysv
+ <address-model>32
+ <architecture>x86
+ <binary-format>mach-o
+ <toolset>darwin
+ ;
+
+# X86/MS/PE
+alias asm_sources
+ : asm/make_i386_ms_pe_gas.asm
+ asm/jump_i386_ms_pe_gas.asm
+ asm/ontop_i386_ms_pe_gas.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>32
+ <architecture>x86
+ <binary-format>pe
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_i386_ms_pe_masm.asm
+ asm/jump_i386_ms_pe_masm.asm
+ asm/ontop_i386_ms_pe_masm.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>32
+ <architecture>x86
+ <binary-format>pe
+ <toolset>clang-win
+ ;
+
+alias asm_sources
+ : asm/make_i386_ms_pe_gas.asm
+ asm/jump_i386_ms_pe_gas.asm
+ asm/ontop_i386_ms_pe_gas.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>32
+ <architecture>x86
+ <binary-format>pe
+ <toolset>gcc
+ ;
+
+alias asm_sources
+ : asm/make_i386_ms_pe_masm.asm
+ asm/jump_i386_ms_pe_masm.asm
+ asm/ontop_i386_ms_pe_masm.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>32
+ <architecture>x86
+ <binary-format>pe
+ <toolset>intel
+ ;
+
+alias asm_sources
+ : asm/make_i386_ms_pe_masm.asm
+ asm/jump_i386_ms_pe_masm.asm
+ asm/ontop_i386_ms_pe_masm.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>32
+ <architecture>x86
+ <binary-format>pe
+ <toolset>msvc
+ ;
+
+# X86_64
+# X86_64/SYSV/ELF
+alias asm_sources
+ : asm/make_x86_64_sysv_elf_gas.S
+ asm/jump_x86_64_sysv_elf_gas.S
+ asm/ontop_x86_64_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>x86
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_sysv_elf_gas.S
+ asm/jump_x86_64_sysv_elf_gas.S
+ asm/ontop_x86_64_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>x86
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_sysv_elf_gas.S
+ asm/jump_x86_64_sysv_elf_gas.S
+ asm/ontop_x86_64_sysv_elf_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>x86
+ <binary-format>elf
+ <toolset>intel
+ ;
+
+# X86_64/SYSV/MACH-O
+alias asm_sources
+ : asm/make_x86_64_sysv_macho_gas.S
+ asm/jump_x86_64_sysv_macho_gas.S
+ asm/ontop_x86_64_sysv_macho_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>x86
+ <binary-format>mach-o
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_sysv_macho_gas.S
+ asm/jump_x86_64_sysv_macho_gas.S
+ asm/ontop_x86_64_sysv_macho_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>x86
+ <binary-format>mach-o
+ <toolset>darwin
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_sysv_macho_gas.S
+ asm/jump_x86_64_sysv_macho_gas.S
+ asm/ontop_x86_64_sysv_macho_gas.S
+ : <abi>sysv
+ <address-model>64
+ <architecture>x86
+ <binary-format>mach-o
+ <toolset>intel
+ ;
+
+# X86_64/MS/PE
+alias asm_sources
+ : asm/make_x86_64_ms_pe_gas.asm
+ asm/jump_x86_64_ms_pe_gas.asm
+ asm/ontop_x86_64_ms_pe_gas.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>64
+ <architecture>x86
+ <binary-format>pe
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_ms_pe_masm.asm
+ asm/jump_x86_64_ms_pe_masm.asm
+ asm/ontop_x86_64_ms_pe_masm.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>64
+ <architecture>x86
+ <binary-format>pe
+ <toolset>clang-win
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_ms_pe_gas.asm
+ asm/jump_x86_64_ms_pe_gas.asm
+ asm/ontop_x86_64_ms_pe_gas.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>64
+ <architecture>x86
+ <binary-format>pe
+ <toolset>gcc
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_ms_pe_masm.asm
+ asm/jump_x86_64_ms_pe_masm.asm
+ asm/ontop_x86_64_ms_pe_masm.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>64
+ <architecture>x86
+ <binary-format>pe
+ <toolset>intel
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_ms_pe_masm.asm
+ asm/jump_x86_64_ms_pe_masm.asm
+ asm/ontop_x86_64_ms_pe_masm.asm
+ dummy.cpp
+ : <abi>ms
+ <address-model>64
+ <architecture>x86
+ <binary-format>pe
+ <toolset>msvc
+ ;
+
+# X86_64/SYSV/X32
+alias asm_sources
+ : asm/make_x86_64_sysv_elf_gas.S
+ asm/jump_x86_64_sysv_elf_gas.S
+ asm/ontop_x86_64_sysv_elf_gas.S
+ : <abi>x32
+ <address-model>64
+ <architecture>x86
+ <binary-format>elf
+ <toolset>clang
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_sysv_elf_gas.S
+ asm/jump_x86_64_sysv_elf_gas.S
+ asm/ontop_x86_64_sysv_elf_gas.S
+ : <abi>x32
+ <address-model>64
+ <architecture>x86
+ <binary-format>elf
+ <toolset>gcc
+ ;
+
+alias asm_sources
+ : asm/make_x86_64_sysv_elf_gas.S
+ asm/jump_x86_64_sysv_elf_gas.S
+ asm/ontop_x86_64_sysv_elf_gas.S
+ : <abi>x32
+ <address-model>64
+ <architecture>x86
+ <binary-format>elf
+ <toolset>intel
+ ;
+
+#X86 universal
+alias asm_sources
+ : asm/make_i386_x86_64_sysv_macho_gas.S
+ asm/jump_i386_x86_64_sysv_macho_gas.S
+ asm/ontop_i386_x86_64_sysv_macho_gas.S
+ : <abi>sysv
+ <address-model>32_64
+ <architecture>x86
+ <binary-format>mach-o
+ ;
+
+# COMBINED
+alias asm_sources
+ : asm/make_combined_sysv_macho_gas.S
+ asm/jump_combined_sysv_macho_gas.S
+ asm/ontop_combined_sysv_macho_gas.S
+ : <abi>sysv
+ <architecture>combined
+ <binary-format>mach-o
+ ;
+
+explicit asm_sources ;
+
+
+# fcontext_t
+alias impl_sources
+ : asm_sources
+ : <context-impl>fcontext
+ ;
+
+# ucontext_t
+alias impl_sources
+ : continuation.cpp
+ fiber.cpp
+ : <context-impl>ucontext
+ [ requires cxx11_auto_declarations
+ cxx11_constexpr
+ cxx11_defaulted_functions
+ cxx11_final
+ cxx11_hdr_thread
+ cxx11_hdr_tuple
+ cxx11_lambdas
+ cxx11_noexcept
+ cxx11_nullptr
+ cxx11_rvalue_references
+ cxx11_template_aliases
+ cxx11_thread_local
+ cxx11_variadic_templates ]
+ ;
+
+# WinFiber
+alias impl_sources
+ : continuation.cpp
+ fiber.cpp
+ : <context-impl>winfib
+ [ requires cxx11_auto_declarations
+ cxx11_constexpr
+ cxx11_defaulted_functions
+ cxx11_final
+ cxx11_hdr_thread
+ cxx11_hdr_tuple
+ cxx11_lambdas
+ cxx11_noexcept
+ cxx11_nullptr
+ cxx11_rvalue_references
+ cxx11_template_aliases
+ cxx11_thread_local
+ cxx11_variadic_templates ]
+ ;
+
+explicit impl_sources ;
+
+obj cxx11_hdr_mutex_check : ../build/cxx11_hdr_mutex.cpp ;
+explicit cxx11_hdr_mutex_check ;
+local cxx11_mutex = [ check-target-builds
+ cxx11_hdr_mutex_check "C++11 mutex"
+ :
+ : <library>/boost/thread//boost_thread
+ ] ;
+
+alias stack_traits_sources
+ : windows/stack_traits.cpp
+ : <target-os>windows
+ :
+ : $(cxx11_mutex)
+ ;
+
+alias stack_traits_sources
+ : posix/stack_traits.cpp
+ :
+ :
+ : $(cxx11_mutex)
+ ;
+
+explicit stack_traits_sources ;
+
+lib boost_context
+ : impl_sources
+ stack_traits_sources
+ ;
+
+boost-install boost_context ;
diff --git a/src/boost/libs/context/build/architecture.jam b/src/boost/libs/context/build/architecture.jam
new file mode 100644
index 000000000..e00e61e57
--- /dev/null
+++ b/src/boost/libs/context/build/architecture.jam
@@ -0,0 +1,92 @@
+# architecture.jam
+#
+# Copyright 2012 Steven Watanabe
+#
+# Distributed under the Boost Software License Version 1.0. (See
+# accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+import configure ;
+import project ;
+import path ;
+import property ;
+
+local here = [ modules.binding $(__name__) ] ;
+
+project.push-current [ project.current ] ;
+project.load [ path.join [ path.make $(here:D) ] ../config ] ;
+project.pop-current ;
+
+rule deduce-address-model ( properties * )
+{
+ local result = [ property.select <address-model> : $(properties) ] ;
+ if $(result)
+ {
+ return $(result) ;
+ }
+ else
+ {
+ if [ configure.builds /boost/architecture//32 : $(properties) : 32-bit ]
+ {
+ return <address-model>32 ;
+ }
+ else if [ configure.builds /boost/architecture//64 : $(properties) : 64-bit ]
+ {
+ return <address-model>64 ;
+ }
+ }
+}
+
+rule address-model ( )
+{
+ return <conditional>@architecture.deduce-address-model ;
+}
+
+rule deduce-architecture ( properties * )
+{
+ local result = [ property.select <architecture> : $(properties) ] ;
+ if $(result)
+ {
+ return $(result) ;
+ }
+ else
+ {
+ if [ configure.builds /boost/architecture//arm : $(properties) : arm ]
+ {
+ return <architecture>arm ;
+ }
+ else if [ configure.builds /boost/architecture//mips1 : $(properties) : mips1 ]
+ {
+ return <architecture>mips1 ;
+ }
+ else if [ configure.builds /boost/architecture//power : $(properties) : power ]
+ {
+ return <architecture>power ;
+ }
+ else if [ configure.builds /boost/architecture//riscv : $(properties) : riscv ]
+ {
+ return <architecture>riscv ;
+ }
+ else if [ configure.builds /boost/architecture//s390x : $(properties) : s390x ]
+ {
+ return <architecture>s390x ;
+ }
+ else if [ configure.builds /boost/architecture//sparc : $(properties) : sparc ]
+ {
+ return <architecture>sparc ;
+ }
+ else if [ configure.builds /boost/architecture//x86 : $(properties) : x86 ]
+ {
+ return <architecture>x86 ;
+ }
+ else if [ configure.builds /boost/architecture//combined : $(properties) : combined ]
+ {
+ return <architecture>combined ;
+ }
+ }
+}
+
+rule architecture ( )
+{
+ return <conditional>@architecture.deduce-architecture ;
+}
diff --git a/src/boost/libs/context/build/cxx11_hdr_mutex.cpp b/src/boost/libs/context/build/cxx11_hdr_mutex.cpp
new file mode 100644
index 000000000..d16a7a152
--- /dev/null
+++ b/src/boost/libs/context/build/cxx11_hdr_mutex.cpp
@@ -0,0 +1,10 @@
+// Copyright Kohei Takahashi 2016.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_CXX11_HDR_MUTEX
+#error "C++11 <mutex> is not available."
+#endif