diff --git a/.github/workflows/manual-release.yml b/.github/workflows/manual-release.yml index cf8c6f69..2a5a4d6a 100644 --- a/.github/workflows/manual-release.yml +++ b/.github/workflows/manual-release.yml @@ -5,7 +5,7 @@ # ############################################################################### -name: Manual Release Candidate Generation +name: Build to Release on: workflow_dispatch: @@ -145,192 +145,110 @@ jobs: matrix: include: - image: macos-latest - toolchain: gnu - cc: "clang" - cxx: "clang++" - configuration: debug + toolchain: cmake + cc: "clang-21" + cxx: "clang++-21" + configuration: release link: static - options: "--enable-crypto" - basename: "bs-macos-arm64-static-debug" + basename: "bs-macos-arm64" - image: macos-latest toolchain: cmake - cc: "clang" - cxx: "clang++" + cc: "clang-21" + cxx: "clang++-21" configuration: release link: static options: "-Denable-crypto=ON" - basename: "bs-macos-arm64-static-release" + basename: "bs-macos-arm64-crypto" - image: macos-latest toolchain: cmake - cc: "clang" - cxx: "clang++" - configuration: debug - link: static - options: "-Denable-sha3=ON" - basename: "bs-macos-arm64-static-debug-sha3" - - - image: macos-latest - toolchain: gnu - cc: "clang" - cxx: "clang++" + cc: "clang-21" + cxx: "clang++-21" configuration: release link: static options: "--enable-sha3" - basename: "bs-macos-arm64-static-release-sha3" - -# - image: macos-latest-large -# toolchain: gnu -# cc: "clang" -# cxx: "clang++" -# configuration: debug -# link: static -# options: "--enable-avx2" -# basename: "bs-macos-static-debug" -# -# - image: macos-latest-large -# toolchain: cmake -# cc: "clang" -# cxx: "clang++" -# configuration: release -# link: static -# options: "-Denable-avx2=ON" -# basename: "bs-macos-static-release" -# -# - image: macos-latest-large -# toolchain: cmake -# cc: "clang" -# cxx: "clang++" -# configuration: debug -# link: static -# options: "-Denable-shani=ON" -# basename: "bs-macos-static-debug-shani" -# -# - image: macos-latest-large -# toolchain: gnu -# cc: "clang" -# cxx: "clang++" -# configuration: release -# link: static -# options: "--enable-shani" -# basename: "bs-macos-static-release-shani" -# -# - image: macos-latest-large -# toolchain: gnu -# cc: "clang" -# cxx: "clang++" -# configuration: debug -# link: static -# options: "--enable-avx512" -# basename: "bs-macos-static-debug-avx512" -# -# - image: macos-latest-large -# toolchain: cmake -# cc: "clang" -# cxx: "clang++" -# configuration: release -# link: static -# options: "-Denable-avx512=ON" -# basename: "bs-macos-static-release-avx512" -# - - image: ubuntu-latest - toolchain: gnu - cc: "gcc" - cxx: "g++" - configuration: debug - link: static - options: "--enable-avx2" - basename: "bs-nix-static-debug" + basename: "bs-macos-arm64-sha3" - - image: ubuntu-latest + - image: macos-26-intel toolchain: cmake - cc: "clang" - cxx: "clang++" + cc: "clang-21" + cxx: "clang++-21" configuration: release link: static options: "-Denable-avx2=ON" - basename: "bs-nix-static-release" + basename: "bs-macos" - - image: ubuntu-latest + - image: macos-26-intel toolchain: cmake - cc: "clang" - cxx: "clang++" - configuration: debug + cc: "clang-21" + cxx: "clang++-21" + configuration: release link: static - options: "-Denable-shani=ON" - basename: "bs-nix-static-debug-shani" + options: "--enable-shani" + basename: "bs-macos-shani" - - image: ubuntu-latest - toolchain: gnu - cc: "gcc" - cxx: "g++" + - image: macos-26-intel + toolchain: cmake + cc: "clang-21" + cxx: "clang++-21" configuration: release link: static - options: "--enable-shani" - basename: "bs-nix-static-release-shani" + options: "-Denable-avx512=ON" + basename: "bs-macos-avx512" - - image: ubuntu-latest - toolchain: gnu - cc: "gcc" - cxx: "g++" - configuration: debug + - image: ubuntu-26.04 + toolchain: cmake + cc: "clang-21" + cxx: "clang++-21" + configuration: release link: static - options: "--enable-avx512" - basename: "bs-nix-static-debug-avx512" + options: "-Denable-avx2=ON" + basename: "bs-nix" - - image: ubuntu-latest + - image: ubuntu-26.04 toolchain: cmake - cc: "clang" - cxx: "clang++" + cc: "clang-21" + cxx: "clang++-21" configuration: release link: static - options: "-Denable-avx512=ON" - basename: "bs-nix-static-release-avx512" + options: "--enable-shani" + basename: "bs-nix-shani" - - image: ubuntu-24.04-arm - toolchain: gnu - cc: "gcc" - cxx: "g++" - configuration: debug + - image: ubuntu-26.04 + toolchain: cmake + cc: "clang-21" + cxx: "clang++-21" + configuration: release link: static - options: "--enable-crypto" - basename: "bs-nix-arm64-static-debug-crypto" + options: "-Denable-avx512=ON" + basename: "bs-nix-avx512" - - image: ubuntu-24.04-arm + - image: ubuntu-26.04-arm toolchain: cmake - cc: "clang" - cxx: "clang++" + cc: "clang-21" + cxx: "clang++-21" configuration: release link: static - options: "-Denable-crypto=ON" - basename: "bs-nix-arm64-static-release-crypto" + basename: "bs-nix-arm64" - - image: ubuntu-24.04-arm + - image: ubuntu-26.04-arm toolchain: cmake - cc: "clang" - cxx: "clang++" - configuration: debug + cc: "clang-21" + cxx: "clang++-21" + configuration: release link: static - options: "-Denable-sha3=ON" - basename: "bs-nix-arm64-static-debug-sha3" + options: "-Denable-crypto=ON" + basename: "bs-nix-arm64-crypto" - - image: ubuntu-24.04-arm - toolchain: gnu - cc: "gcc" - cxx: "g++" + - image: ubuntu-26.04-arm + toolchain: cmake + cc: "gcc-21" + cxx: "g++-21" configuration: release link: static options: "--enable-sha3" - basename: "bs-nix-arm64-static-release-sha3" - - - image: windows-latest - toolchain: msbuild - configuration: StaticDebug - platform: "x64" - toolset: "v145" - version: "vs2026" - basename: "bs-win64-static-debug" + basename: "bs-nix-arm64-sha3" - image: windows-latest toolchain: msbuild @@ -338,16 +256,8 @@ jobs: platform: "x64" toolset: "v145" version: "vs2026" - basename: "bs-win64-static-release" - - - image: windows-latest - toolchain: msbuild - configuration: StaticDebug - platform: "x64" - toolset: "v145" - version: "vs2026" - options: "--enable-shani" - basename: "bs-win64-static-debug-shani" + options: "--enable-avx2" + basename: "bs-win64" - image: windows-latest toolchain: msbuild @@ -356,16 +266,7 @@ jobs: toolset: "v145" version: "vs2026" options: "--enable-shani" - basename: "bs-win64-static-release-shani" - - - image: windows-latest - toolchain: msbuild - configuration: StaticDebug - platform: "x64" - toolset: "v145" - version: "vs2026" - options: "--enable-avx512" - basename: "bs-win64-static-debug-shani" + basename: "bs-win64-shani" - image: windows-latest toolchain: msbuild @@ -374,8 +275,34 @@ jobs: toolset: "v145" version: "vs2026" options: "--enable-avx512" - basename: "bs-win64-static-release-shani" - + basename: "bs-win64-avx512" + +# - image: windows-11-vs2026-arm +# toolchain: msbuild +# configuration: StaticRelease +# platform: "ARM64" +# toolset: "v145" +# version: "vs2026" +# basename: "bs-win-arm64" +# +# - image: windows-11-vs2026-arm +# toolchain: msbuild +# configuration: StaticRelease +# platform: "ARM64" +# toolset: "v145" +# version: "vs2026" +# options: "--enable-crypto" +# basename: "bs-win-arm64-crypto" +# +# - image: windows-11-vs2026-arm +# toolchain: msbuild +# configuration: StaticRelease +# platform: "ARM64" +# toolset: "v145" +# version: "vs2026" +# options: "--enable-sha3" +# basename: "bs-win-arm64-sha3" +# env: CC: '${{ matrix.cc }}' CXX: '${{ matrix.cxx }}' @@ -445,7 +372,7 @@ jobs: with: msbuild-architecture: x64 - - name: Environmental Variable Computation + - name: Compute Environmental Variables if: ${{ matrix.toolchain == 'cmake' || matrix.toolchain == 'gnu' || matrix.toolchain == 'presets' }} shell: bash run: | @@ -453,7 +380,7 @@ jobs: echo "LDFLAGS=-Wl,-rpath,${{ github.workspace }}/prefix/lib" >> $GITHUB_ENV fi - - name: Execute build [cmake] + - name: Build [cmake] if: ${{ matrix.toolchain == 'cmake' }} shell: bash run: > @@ -470,7 +397,7 @@ jobs: --build-secp256k1 ${{ matrix.options }} - - name: Execute build [gnu] + - name: Build [gnu] if: ${{ matrix.toolchain == 'gnu' }} shell: bash run: > @@ -487,7 +414,7 @@ jobs: --build-secp256k1 ${{ matrix.options }} - - name: Execute build [msbuild] + - name: Build [msbuild] if: ${{ matrix.toolchain == 'msbuild' }} shell: cmd run: > @@ -500,7 +427,7 @@ jobs: --build-skip-tests ${{ matrix.options }} - - name: Execute build [presets] + - name: Build [presets] if: ${{ matrix.toolchain == 'presets' }} shell: bash run: > @@ -546,24 +473,6 @@ jobs: cp -L -n ${CANDIDATE} candidate/${CANONICAL} echo "candidate_identifier=${CANONICAL}" >> "$GITHUB_OUTPUT" - - name: Execute binary [bash] - if: ${{ matrix.toolchain != 'msbuild' }} - continue-on-error: true - shell: bash - working-directory: candidate - run: | - ./${{ steps.normalizer.outputs.candidate_identifier }} --version - ./${{ steps.normalizer.outputs.candidate_identifier }} --hardware - - - name: Execute binary [cmd] - if: ${{ matrix.toolchain == 'msbuild' }} - continue-on-error: true - shell: cmd - working-directory: candidate - run: | - .\${{ steps.normalizer.outputs.candidate_identifier }} --version - .\${{ steps.normalizer.outputs.candidate_identifier }} --hardware - - name: Strip symbols from binaries if: ${{ matrix.configuration != 'debug' && matrix.toolchain != 'msbuild' }} shell: bash @@ -584,6 +493,30 @@ jobs: fi done || true + - name: Display candidate files + working-directory: candidate + shell: bash + run: | + ls -lahR + + - name: Display binary information [bash] + if: ${{ matrix.toolchain != 'msbuild' }} + continue-on-error: true + shell: bash + working-directory: candidate + run: | + ./${{ steps.normalizer.outputs.candidate_identifier }} --version + ./${{ steps.normalizer.outputs.candidate_identifier }} --hardware + + - name: Display binary information [cmd] + if: ${{ matrix.toolchain == 'msbuild' }} + continue-on-error: true + shell: cmd + working-directory: candidate + run: | + .\${{ steps.normalizer.outputs.candidate_identifier }} --version + .\${{ steps.normalizer.outputs.candidate_identifier }} --hardware + - name: Display linkage if: ${{ matrix.toolchain != 'msbuild' }} shell: bash @@ -622,12 +555,6 @@ jobs: esac done || true - - name: Inventory results - working-directory: candidate - shell: bash - run: | - ls -lahR - - name: Upload artifacts uses: actions/upload-artifact@v7.0.1 with: diff --git a/console/stack_trace.cpp b/console/stack_trace.cpp index 6df98e3e..ef20a97d 100644 --- a/console/stack_trace.cpp +++ b/console/stack_trace.cpp @@ -79,6 +79,13 @@ inline STACKFRAME64 get_stack_frame(const CONTEXT& context) NOEXCEPT frame.AddrStack.Mode = AddrModeFlat; frame.AddrFrame.Offset = context.Rbp; frame.AddrFrame.Mode = AddrModeFlat; +#elif defined(HAVE_ARM64) + frame.AddrPC.Offset = context.Pc; + frame.AddrPC.Mode = AddrModeFlat; + frame.AddrStack.Offset = context.Sp; + frame.AddrStack.Mode = AddrModeFlat; + frame.AddrFrame.Offset = context.Fp; + frame.AddrFrame.Mode = AddrModeFlat; #else frame.AddrPC.Offset = context.Eip; frame.AddrPC.Mode = AddrModeFlat; @@ -147,6 +154,8 @@ DWORD dump_stack_trace(unsigned code, EXCEPTION_POINTERS* exception) NOEXCEPT #if defined(HAVE_X64) constexpr DWORD machine{ IMAGE_FILE_MACHINE_AMD64 }; +#elif defined(HAVE_ARM64) + constexpr DWORD machine{ IMAGE_FILE_MACHINE_ARM64 }; #else constexpr DWORD machine{ IMAGE_FILE_MACHINE_I386 }; #endif