ARROW-16869: [CI][C++][Homebrew] Build Apache Arrow with C++17#13407
ARROW-16869: [CI][C++][Homebrew] Build Apache Arrow with C++17#13407kou merged 1 commit intoapache:masterfrom
Conversation
|
@github-actions crossbow submit homebrew-r-brew |
|
|
|
Revision: e9dc065ebcd47d619642f8118afda34d5b8f6871 Submitted crossbow builds: ursacomputing/crossbow @ actions-c454abbe7a
|
|
Hmm, I think I was wrong about the diagnosis. The brew formula already depends on grpc, which pulls in abseil, and you can see abseil being installed by brew in https://github.com/ursacomputing/crossbow/runs/6953742239?check_suite_focus=true#step:8:476. Since abseil is working enough for grpc (assuming we test bundled grpc somewhere?) but not google-cloud-cpp, maybe we're missing something in INTERFACE_LINK_LIBRARIES in the bundled google-cloud-cpp cmake macro? cc @kou |
|
Following #13404 (comment), I think we need |
|
Sorry, I missed this in ARROW-14892. Could you try the following? diff --git a/dev/tasks/homebrew-formulae/apache-arrow.rb b/dev/tasks/homebrew-formulae/apache-arrow.rb
index 94a1a67a1a..4908c22ed6 100644
--- a/dev/tasks/homebrew-formulae/apache-arrow.rb
+++ b/dev/tasks/homebrew-formulae/apache-arrow.rb
@@ -89,6 +89,7 @@ class ApacheArrow < Formula
-DARROW_WITH_UTF8PROC=ON
-DARROW_WITH_ZLIB=ON
-DARROW_WITH_ZSTD=ON
+ -DCMAKE_CXX_STANDARD=17
-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=TRUE
-DPython3_EXECUTABLE=#{Formula["[email protected]"].bin/"python3"}
]We need to align C++ version with Abseil because we use |
|
FYI: |
Yep, I was wrongly assuming that all of my "undefined symbols" problems were the same. I've bumped to C++17 here and reverted the cmake changes. Pushing on the static build issues in #13404. |
|
@github-actions crossbow submit homebrew-r-brew |
|
Revision: caf1148 Submitted crossbow builds: ursacomputing/crossbow @ actions-a120875ba7
|
…e#13407) The `homebrew-r-brew` nightly job has been failing since the ARROW_GCS flag was turned on in [ARROW-14892](https://issues.apache.org/jira/browse/ARROW-14892). The failure is an undefined absl symbol ``` ** testing if installed package can be loaded from temporary location Error: Error: package or namespace load failed for ‘arrow’ in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Users/runner/work/crossbow/crossbow/arrow/r/check/arrow.Rcheck/00LOCK-arrow/00new/arrow/libs/arrow.so': dlopen(/Users/runner/work/crossbow/crossbow/arrow/r/check/arrow.Rcheck/00LOCK-arrow/00new/arrow/libs/arrow.so, 6): Symbol not found: __ZN4absl12lts_2021110210FormatTimeENS0_11string_viewENS0_4TimeENS0_8TimeZoneE Referenced from: /usr/local/opt/apache-arrow/lib/libarrow.900.dylib Expected in: flat namespace in /usr/local/opt/apache-arrow/lib/libarrow.900.dylib ``` We need to build Apache Arrow with C++17 because system Abseil installed by Homebrew uses C++17 and we use Abseil features such as `absl::FormatTime()` in `gcsfs_internal.cc`. Authored-by: Neal Richardson <[email protected]> Signed-off-by: Sutou Kouhei <[email protected]>
The
homebrew-r-brewnightly job has been failing since the ARROW_GCS flag was turned on in ARROW-14892. The failure is an undefined absl symbolWe need to build Apache Arrow with C++17 because system Abseil installed by Homebrew uses C++17 and we use
Abseil features such as
absl::FormatTime()ingcsfs_internal.cc.