From 8f4d7ec9058b06552fe69626ead08df134c3f24d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Tue, 7 Jul 2026 08:53:15 +0200 Subject: [PATCH 1/3] GH-47583: [CI][Python] Enable PyArrow Debug build on Windows CI job --- ci/scripts/python_build.bat | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ci/scripts/python_build.bat b/ci/scripts/python_build.bat index 10d10bda6a9d..a68795d68bb6 100644 --- a/ci/scripts/python_build.bat +++ b/ci/scripts/python_build.bat @@ -59,7 +59,7 @@ set ARROW_WITH_LZ4=ON set ARROW_WITH_SNAPPY=ON set ARROW_WITH_ZLIB=ON set ARROW_WITH_ZSTD=ON -set CMAKE_BUILD_TYPE=Release +set CMAKE_BUILD_TYPE=Debug set CMAKE_GENERATOR=Ninja set CMAKE_UNITY_BUILD=ON @@ -134,6 +134,8 @@ pushd %SOURCE_DIR%\python %PYTHON_CMD% -m pip install -r requirements-build.txt || exit /B 1 @REM Build PyArrow -%PYTHON_CMD% -m pip install --no-deps --no-build-isolation -vv -C build.verbose=true . || exit /B 1 +%PYTHON_CMD% -m pip install --no-deps --no-build-isolation -vv ^ + -C build.verbose=true ^ + -C cmake.build-type=%CMAKE_BUILD_TYPE% . || exit /B 1 popd From f86e22e8c7c5129d7846ce7ace08f51ed776a546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Wed, 8 Jul 2026 16:03:31 +0200 Subject: [PATCH 2/3] Use RelWithDebInfo and try to strip -DNDEBUG --- ci/scripts/python_build.bat | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ci/scripts/python_build.bat b/ci/scripts/python_build.bat index a68795d68bb6..82d738278155 100644 --- a/ci/scripts/python_build.bat +++ b/ci/scripts/python_build.bat @@ -59,8 +59,13 @@ set ARROW_WITH_LZ4=ON set ARROW_WITH_SNAPPY=ON set ARROW_WITH_ZLIB=ON set ARROW_WITH_ZSTD=ON -set CMAKE_BUILD_TYPE=Debug +set CMAKE_BUILD_TYPE=RelWithDebInfo set CMAKE_GENERATOR=Ninja +@rem Override CMAKE_CXX_FLAGS_RELWITHDEBINFO and CMAKE_C_FLAGS_RELWITHDEBINFO to avoid +@rem stripping debug symbols in RelWithDebInfo builds. +@rem See details of discussion on PR GH-50406 +set CMAKE_CXX_FLAGS_RELWITHDEBINFO=/O2 /Ob1 +set CMAKE_C_FLAGS_RELWITHDEBINFO=/O2 /Ob1 set CMAKE_UNITY_BUILD=ON mkdir %CPP_BUILD_DIR% @@ -97,6 +102,8 @@ cmake ^ -DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^ -DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^ -DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^ + -DCMAKE_C_FLAGS_RELWITHDEBINFO="%CMAKE_C_FLAGS_RELWITHDEBINFO%" ^ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%CMAKE_CXX_FLAGS_RELWITHDEBINFO%" ^ -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% ^ -DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^ -DMSVC_LINK_VERBOSE=ON ^ @@ -136,6 +143,8 @@ pushd %SOURCE_DIR%\python @REM Build PyArrow %PYTHON_CMD% -m pip install --no-deps --no-build-isolation -vv ^ -C build.verbose=true ^ - -C cmake.build-type=%CMAKE_BUILD_TYPE% . || exit /B 1 + -C cmake.build-type=%CMAKE_BUILD_TYPE% ^ + -C cmake.define.CMAKE_C_FLAGS_RELWITHDEBINFO="%CMAKE_C_FLAGS_RELWITHDEBINFO%" ^ + -C cmake.define.CMAKE_CXX_FLAGS_RELWITHDEBINFO="%CMAKE_CXX_FLAGS_RELWITHDEBINFO%" . || exit /B 1 popd From 136c38d044279b31da2226ca21e43348276106d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Cumplido?= Date: Wed, 8 Jul 2026 16:48:33 +0200 Subject: [PATCH 3/3] Fix comment to be more accurate --- ci/scripts/python_build.bat | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ci/scripts/python_build.bat b/ci/scripts/python_build.bat index 82d738278155..966e26996428 100644 --- a/ci/scripts/python_build.bat +++ b/ci/scripts/python_build.bat @@ -61,8 +61,9 @@ set ARROW_WITH_ZLIB=ON set ARROW_WITH_ZSTD=ON set CMAKE_BUILD_TYPE=RelWithDebInfo set CMAKE_GENERATOR=Ninja -@rem Override CMAKE_CXX_FLAGS_RELWITHDEBINFO and CMAKE_C_FLAGS_RELWITHDEBINFO to avoid -@rem stripping debug symbols in RelWithDebInfo builds. +@rem Set CMAKE_CXX_FLAGS_RELWITHDEBINFO and CMAKE_C_FLAGS_RELWITHDEBINFO to +@rem override default /DNDEBUG to be dropped so assertions are maintained. +@rem A debug build would require linking against python3xx_d.lib (debug). @rem See details of discussion on PR GH-50406 set CMAKE_CXX_FLAGS_RELWITHDEBINFO=/O2 /Ob1 set CMAKE_C_FLAGS_RELWITHDEBINFO=/O2 /Ob1