diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b5ce5a0..8c84967a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ windows-2022, windows-2025 ] + os: [ windows-2022, windows-2025, windows-11-arm ] runs-on: ${{matrix.os}} diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 index 5c767a65..b9a34958 100644 --- a/build/Jamfile.v2 +++ b/build/Jamfile.v2 @@ -18,6 +18,7 @@ import config : requires ; project : common-requirements $(boost_dependencies) : requirements + windows,arm,64:winfib windows:_WIN32_WINNT=0x0601 linux,gcc,on:-fsplit-stack linux,gcc,on:-DBOOST_USE_SEGMENTED_STACKS diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index dbd6a9f1..c211293a 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -41,6 +41,10 @@ rule native-impl ( properties * ) { result = no ; } + else if ( windows in $(properties) && arm in $(properties) && 64 in $(properties) ) + { + return winfib ; # for windows arm64 always use winfib and skip ASM + } else if ( ! ( windows in $(properties) ) ) { result = ucontext ; @@ -52,6 +56,22 @@ rule native-impl ( properties * ) return $(result) ; } +rule fcontext-impl ( properties * ) +{ + # Skip on Windows ARM64 + if ( windows in $(properties) && + arm in $(properties) && + 64 in $(properties) ) + { + return no ; # for windows arm64 always use winfib and skip fcontext + } + else + { + return fcontext ; + } +} + + obj is_libstdcxx : is_libstdcxx.cpp ; explicit is_libstdcxx ; @@ -95,7 +115,7 @@ test-suite minimal : [ run test_fiber.cpp : : : - fcontext + @fcontext-impl [ requires cxx11_auto_declarations cxx11_constexpr cxx11_defaulted_functions @@ -150,7 +170,7 @@ test-suite minimal : [ run test_callcc.cpp : : : - fcontext + @fcontext-impl [ requires cxx11_auto_declarations cxx11_constexpr cxx11_defaulted_functions