File tree Expand file tree Collapse file tree 3 files changed +26
-8
lines changed
Expand file tree Collapse file tree 3 files changed +26
-8
lines changed Original file line number Diff line number Diff line change 5454 strategy :
5555 fail-fast : false
5656 matrix :
57- os : [ windows-2022, windows-2025 ]
57+ os : [ windows-2022, windows-2025, windows-11-arm ]
5858
5959 runs-on : ${{matrix.os}}
6060
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import config : requires ;
1818project
1919 : common-requirements <library>$(boost_dependencies)
2020 : requirements
21+ <target-os>windows,<architecture>arm,<address-model>64:<context-impl>winfib
2122 <target-os>windows:<define>_WIN32_WINNT=0x0601
2223 <target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-fsplit-stack
2324 <target-os>linux,<toolset>gcc,<segmented-stacks>on:<cxxflags>-DBOOST_USE_SEGMENTED_STACKS
@@ -189,15 +190,12 @@ alias asm_sources
189190 <toolset>gcc
190191 ;
191192
192- # ARM64/AAPCS/PE — also allow <abi>ms for Windows on ARM64 (MSVC)
193- # <abi>ms only applies when
194- # <architecture>arm <address-model>64 <binary-format>pe,
195- # so x86/x64 MSVC builds are unaffected.
193+ # ARM64/AAPCS/PE
196194alias asm_sources
197195 : asm/make_arm64_aapcs_pe_armasm.asm
198196 asm/jump_arm64_aapcs_pe_armasm.asm
199197 asm/ontop_arm64_aapcs_pe_armasm.asm
200- : <abi>aapcs,<abi>ms
198+ : <abi>aapcs
201199 <address-model>64
202200 <architecture>arm
203201 <binary-format>pe
Original file line number Diff line number Diff line change @@ -41,6 +41,10 @@ rule native-impl ( properties * )
4141 {
4242 result = <build>no ;
4343 }
44+ else if ( <target-os>windows in $(properties) && <architecture>arm in $(properties) && <address-model>64 in $(properties) )
45+ {
46+ return <context-impl>winfib ; # for windows arm64 always use winfib and skip ASM
47+ }
4448 else if ( ! ( <target-os>windows in $(properties) ) )
4549 {
4650 result = <context-impl>ucontext ;
@@ -52,6 +56,22 @@ rule native-impl ( properties * )
5256 return $(result) ;
5357}
5458
59+ rule fcontext-impl ( properties * )
60+ {
61+ # Skip on Windows ARM64
62+ if ( <target-os>windows in $(properties) &&
63+ <architecture>arm in $(properties) &&
64+ <address-model>64 in $(properties) )
65+ {
66+ return <build>no ; # for windows arm64 always use winfib and skip fcontext
67+ }
68+ else
69+ {
70+ return <context-impl>fcontext ;
71+ }
72+ }
73+
74+
5575obj is_libstdcxx : is_libstdcxx.cpp ;
5676explicit is_libstdcxx ;
5777
@@ -95,7 +115,7 @@ test-suite minimal :
95115
96116[ run test_fiber.cpp :
97117 : :
98- <context-impl> fcontext
118+ <conditional>@ fcontext-impl
99119 [ requires cxx11_auto_declarations
100120 cxx11_constexpr
101121 cxx11_defaulted_functions
@@ -150,7 +170,7 @@ test-suite minimal :
150170
151171[ run test_callcc.cpp :
152172 : :
153- <context-impl> fcontext
173+ <conditional>@ fcontext-impl
154174 [ requires cxx11_auto_declarations
155175 cxx11_constexpr
156176 cxx11_defaulted_functions
You can’t perform that action at this time.
0 commit comments