mirror of
https://git.suyu.dev/suyu/ext-boost.git
synced 2026-01-06 22:48:20 +01:00
externals: Update boost to 1.72 and add Boost Context
This commit is contained in:
parent
5e8300b76a
commit
77abe07b3b
618 changed files with 96299 additions and 14263 deletions
827
libs/context/build/Jamfile.v2
Normal file
827
libs/context/build/Jamfile.v2
Normal file
|
|
@ -0,0 +1,827 @@
|
|||
|
||||
# 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 ] = "MIPS" { tmp = o32 ; }
|
||||
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 ;
|
||||
92
libs/context/build/architecture.jam
Normal file
92
libs/context/build/architecture.jam
Normal file
|
|
@ -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 ;
|
||||
}
|
||||
10
libs/context/build/cxx11_hdr_mutex.cpp
Normal file
10
libs/context/build/cxx11_hdr_mutex.cpp
Normal file
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue