From 3a90f0d92d5b4862235417c37444e3096bec39a5 Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Fri, 16 May 2025 07:39:32 -0400 Subject: [PATCH 1/5] actions: enable win ARM64 optimizations with latest VS --- .github/workflows/build.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6767a1c4..91992808 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -255,11 +255,14 @@ jobs: if [[ "$RUNNER_ARCH" == "ARM64" ]]; then PYEXTERNALS_PATH="arm64" WIX_ARCH="arm64" - CHOC_OPS="" + # upgrade to VS 2022 17.14 to fix arm64 bug + # https://github.com/openssl/openssl/issues/26239 + # this can go away once a new win arm64 runner + # upgrades to this version already + choco install visualstudio2022enterprise elif [[ "$RUNNER_ARCH" == "X64" ]]; then PYEXTERNALS_PATH="amd64" WIX_ARCH="x64" - CHOC_OPS="" fi LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}" echo "PYTHON=${PYTHON_SOURCE_PATH}/PCbuild/${PYEXTERNALS_PATH}/python.exe" >> $GITHUB_ENV @@ -295,9 +298,9 @@ jobs: run: | cd "${OPENSSL_SOURCE_PATH}" # TODO: remove this once https://github.com/openssl/openssl/issues/26239 is fixed. - if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then - export CFLAGS=-DNO_INTERLOCKEDOR64 - fi + #if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then + # export CFLAGS=-DNO_INTERLOCKEDOR64 + #fi # --libdir=lib is needed so Python can find OpenSSL libraries "${PERL}" ./Configure --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS From ad17eb5e77863be765ab342db44f230c4e1ed211 Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Fri, 16 May 2025 07:55:23 -0400 Subject: [PATCH 2/5] [no ci] actions: move win ARM64 VS upgrade to OpenSSL config step --- .github/workflows/build.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 91992808..d745ef21 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -255,11 +255,6 @@ jobs: if [[ "$RUNNER_ARCH" == "ARM64" ]]; then PYEXTERNALS_PATH="arm64" WIX_ARCH="arm64" - # upgrade to VS 2022 17.14 to fix arm64 bug - # https://github.com/openssl/openssl/issues/26239 - # this can go away once a new win arm64 runner - # upgrades to this version already - choco install visualstudio2022enterprise elif [[ "$RUNNER_ARCH" == "X64" ]]; then PYEXTERNALS_PATH="amd64" WIX_ARCH="x64" @@ -297,10 +292,13 @@ jobs: if: matrix.goal == 'build' && steps.cache-python-ssl.outputs.cache-hit != 'true' run: | cd "${OPENSSL_SOURCE_PATH}" - # TODO: remove this once https://github.com/openssl/openssl/issues/26239 is fixed. - #if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then - # export CFLAGS=-DNO_INTERLOCKEDOR64 - #fi + if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then + # upgrade to VS 2022 17.14 to fix arm64 bug + # https://github.com/openssl/openssl/issues/26239 + # this can go away once a new win arm64 runner + # upgrades to this version already + choco install visualstudio2022enterprise + fi # --libdir=lib is needed so Python can find OpenSSL libraries "${PERL}" ./Configure --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS From 2d9cb44d473e8ba6e9c46b15953cbf9a8d95e8ae Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Fri, 16 May 2025 09:07:25 -0400 Subject: [PATCH 3/5] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d745ef21..2d7fc5a4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -297,7 +297,7 @@ jobs: # https://github.com/openssl/openssl/issues/26239 # this can go away once a new win arm64 runner # upgrades to this version already - choco install visualstudio2022enterprise + choco install visualstudio2022enterprise --execution-timeout=0 fi # --libdir=lib is needed so Python can find OpenSSL libraries "${PERL}" ./Configure --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS From 39181a432924792231aaa5dc06f285caba632255 Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Fri, 16 May 2025 10:54:09 -0400 Subject: [PATCH 4/5] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2d7fc5a4..90afa984 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -297,7 +297,7 @@ jobs: # https://github.com/openssl/openssl/issues/26239 # this can go away once a new win arm64 runner # upgrades to this version already - choco install visualstudio2022enterprise --execution-timeout=0 + choco install visualstudio2022enterprise --execution-timeout=0 --ignore-package-exit-codes fi # --libdir=lib is needed so Python can find OpenSSL libraries "${PERL}" ./Configure --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS From c7a6ab536f3d1c8910404789b2cd956a357e95bd Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Fri, 16 May 2025 12:18:45 -0400 Subject: [PATCH 5/5] actions: revert win arm64 optimization attempt --- .github/workflows/build.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 90afa984..b25f887d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -293,11 +293,8 @@ jobs: run: | cd "${OPENSSL_SOURCE_PATH}" if ([ "$RUNNER_OS" == "Windows" ] && [ "$RUNNER_ARCH" == "ARM64" ]); then - # upgrade to VS 2022 17.14 to fix arm64 bug # https://github.com/openssl/openssl/issues/26239 - # this can go away once a new win arm64 runner - # upgrades to this version already - choco install visualstudio2022enterprise --execution-timeout=0 --ignore-package-exit-codes + export CFLAGS=-DNO_INTERLOCKEDOR64 fi # --libdir=lib is needed so Python can find OpenSSL libraries "${PERL}" ./Configure --libdir=lib --prefix="${OPENSSL_INSTALL_PATH}" $OPENSSL_CONFIG_OPTS