-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[C++][FlightRPC] Downstream MINGW builds are failing to build arrow flight do to undefined reference #41333
Comments
Protobuf added a dependency on abseil in v22+ and iirc we are using 21, could it be that mingw has a more recent version? See https://protobuf.dev/support/migration/#cpp-22 |
Seems mingw has |
When I cross compiled arrow r in a mingw based thing there was an issue with abseil dependencies not being properly forwarded through pkg config (I think it was re2). |
It seems that Protobuf's CMake package isn't used: https://github.com/msys2/MINGW-packages/actions/runs/8782545754/job/24096849170?pr=20692#step:11:614
( Could you try this? diff --git a/mingw-w64-arrow/PKGBUILD b/mingw-w64-arrow/PKGBUILD
index ec1ef286c..843a65841 100644
--- a/mingw-w64-arrow/PKGBUILD
+++ b/mingw-w64-arrow/PKGBUILD
@@ -84,7 +84,7 @@ build() {
export _cmake_build_type="Debug"
fi
- MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
+ MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=;-DARROW_PACKAGE_PREFIX=" \
${MINGW_PREFIX}/bin/cmake.exe -Wno-dev \
-G Ninja \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ Or we may be able to omit CMake package paths: diff --git a/mingw-w64-arrow/PKGBUILD b/mingw-w64-arrow/PKGBUILD
index ec1ef286c..f08e53000 100644
--- a/mingw-w64-arrow/PKGBUILD
+++ b/mingw-w64-arrow/PKGBUILD
@@ -101,7 +101,6 @@ build() {
-DARROW_HDFS=ON \
-DARROW_JSON=ON \
-DARROW_PACKAGE_KIND=${MINGW_PACKAGE_PREFIX} \
- -DARROW_PACKAGE_PREFIX=${MINGW_PREFIX} \
-DARROW_PARQUET=ON \
-DARROW_S3=ON \
-DARROW_USE_GLOG=OFF \
@@ -112,7 +111,6 @@ build() {
-DARROW_WITH_SNAPPY=ON \
-DARROW_WITH_ZLIB=ON \
-DARROW_WITH_ZSTD=ON \
- -DBOOST_ROOT=${MINGW_PREFIX} \
-DPARQUET_BUILD_EXECUTABLES=ON \
-DPARQUET_REQUIRE_ENCRYPTION=ON \
-DPython3_EXECUTABLE=${MINGW_PREFIX}/bin/python \ |
Or could you enable debug log? diff --git a/mingw-w64-arrow/PKGBUILD b/mingw-w64-arrow/PKGBUILD
index ec1ef286c..0280d6234 100644
--- a/mingw-w64-arrow/PKGBUILD
+++ b/mingw-w64-arrow/PKGBUILD
@@ -89,6 +89,7 @@ build() {
-G Ninja \
-DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DCMAKE_BUILD_TYPE=${_cmake_build_type} \
+ -DCMAKE_FIND_DEBUG_MODE=ON \
-DARROW_ACERO=ON \
-DARROW_BUILD_UTILITIES=ON \
-DARROW_COMPUTE=ON \ |
Something similar seems to be happening on protobuf / abseil for conda on Windows on the conda feedstock on the 16.0.0 PR (conda-forge/arrow-cpp-feedstock#1255), this is the error: https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=920516&view=logs&j=10aa580e-aee1-5b9b-3283-2dc181465fcb&t=72fcaa87-4150-5a1f-38e4-dcca063da3f2&l=2146
|
The failures in conda-forge look like something happening in the Probably worth double-checking if |
For MSYS2: My guess was wrong. The Protobuf CMake "Module" ( diff --git a/cpp/cmake_modules/FindProtobufAlt.cmake b/cpp/cmake_modules/FindProtobufAlt.cmake
index 15fe1b4f27..ef3b1219e1 100644
--- a/cpp/cmake_modules/FindProtobufAlt.cmake
+++ b/cpp/cmake_modules/FindProtobufAlt.cmake
@@ -28,8 +28,12 @@ endif()
if(ProtobufAlt_FIND_QUIETLY)
list(APPEND find_package_args QUIET)
endif()
-find_package(Protobuf ${find_package_args})
-set(ProtobufAlt_FOUND ${Protobuf_FOUND})
+find_package(protobuf CONFIG ${find_package_args})
+set(ProtobufAlt_FOUND ${protobuf_FOUND})
+if(NOT ProtobufAlt_FOUND)
+ find_package(Protobuf ${find_package_args})
+ set(ProtobufAlt_FOUND ${Protobuf_FOUND})
+endif()
if(ProtobufAlt_FOUND)
set(ProtobufAlt_VERSION ${Protobuf_VERSION})
set(ProtobufAlt_VERSION_MAJOR ${Protobuf_VERSION_MAJOR}) |
For conda-forge: It seems that this uses "Module" not "Config" too:
#41333 (comment) (GH-41360) may also fix the conda-forge case. |
…make (#41360) ### Rationale for this change `protobuf::libprotobuf` provided by `FindProtobuf.cmake` (provided by CMake) may not provide needed dependencies such as Abseil. ### What changes are included in this PR? Try `protobuf-config.cmake` provided by Protobuf before `FindProtobuf.cmake`. `protobuf::libprotobuf` provided by `protobuf-config.cmake` must have needed dependencies. ### Are these changes tested? Yes. ### Are there any user-facing changes? Yes. * GitHub Issue: #41333 Authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
Issue resolved by pull request 41360 |
…make (#41360) ### Rationale for this change `protobuf::libprotobuf` provided by `FindProtobuf.cmake` (provided by CMake) may not provide needed dependencies such as Abseil. ### What changes are included in this PR? Try `protobuf-config.cmake` provided by Protobuf before `FindProtobuf.cmake`. `protobuf::libprotobuf` provided by `protobuf-config.cmake` must have needed dependencies. ### Are these changes tested? Yes. ### Are there any user-facing changes? Yes. * GitHub Issue: #41333 Authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
…obuf.cmake (apache#41360) ### Rationale for this change `protobuf::libprotobuf` provided by `FindProtobuf.cmake` (provided by CMake) may not provide needed dependencies such as Abseil. ### What changes are included in this PR? Try `protobuf-config.cmake` provided by Protobuf before `FindProtobuf.cmake`. `protobuf::libprotobuf` provided by `protobuf-config.cmake` must have needed dependencies. ### Are these changes tested? Yes. ### Are there any user-facing changes? Yes. * GitHub Issue: apache#41333 Authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
…obuf.cmake (apache#41360) ### Rationale for this change `protobuf::libprotobuf` provided by `FindProtobuf.cmake` (provided by CMake) may not provide needed dependencies such as Abseil. ### What changes are included in this PR? Try `protobuf-config.cmake` provided by Protobuf before `FindProtobuf.cmake`. `protobuf::libprotobuf` provided by `protobuf-config.cmake` must have needed dependencies. ### Are these changes tested? Yes. ### Are there any user-facing changes? Yes. * GitHub Issue: apache#41333 Authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
…obuf.cmake (apache#41360) ### Rationale for this change `protobuf::libprotobuf` provided by `FindProtobuf.cmake` (provided by CMake) may not provide needed dependencies such as Abseil. ### What changes are included in this PR? Try `protobuf-config.cmake` provided by Protobuf before `FindProtobuf.cmake`. `protobuf::libprotobuf` provided by `protobuf-config.cmake` must have needed dependencies. ### Are these changes tested? Yes. ### Are there any user-facing changes? Yes. * GitHub Issue: apache#41333 Authored-by: Sutou Kouhei <kou@clear-code.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
Describe the bug, including details regarding any error messages, version, and platform.
I am trying to add the 16.0.0 release to MINGW-packages but CI is failing with:
See the PR here: msys2/MINGW-packages#20692
Component(s)
C++, FlightRPC
The text was updated successfully, but these errors were encountered: