Open tomjakubowski opened 3 days ago
Discussion in https://github.com/apache/arrow/issues/30937 suggests that Conda is probably also passing -DCMAKE_LIBTOOL=/path/to/or/name/of/some-suitable-apple-libtool
(which perspective would forward on in its ExternalProject build of Arrow). Maybe it would better to check that cmake variable than an environment variable.
edit: learned from #44368 that CMAKE_LIBTOOL is used for MSVC builds. I'll do the same in my PR.
if(CMAKE_LIBTOOL)
set(BUNDLE_TOOL ${CMAKE_LIBTOOL})
else()
find_program(BUNDLE_TOOL lib
Describe the bug, including details regarding any error messages, version, and platform.
I am supporting a bundled build of libarrow in perspective's conda-forge feedstock. On the conda-forge arm64 cross-compiling builders,
/usr/bin/libtool
is broken due to some SDK issues (full logs). Here is the (stderr?) output of /usr/bin/libtool from our build logs:There is some logic in BuildUtils.cmake to locate libtool for bundling using
find_program(libtool HINTS /usr/bin ...)
, which then fails:In this build environment, the
LIBTOOL
environment variable is set by conda to the name of a suitable Apple libtool on the PATH. I would propose that ifLIBTOOL
is set in the environment, that BuildUtils.cmake ought to use it instead of callingfind_program
.To unblock us, I made this commit on top of 17.0.0 https://github.com/ProspectiveCo/arrow/commit/273a22873b3bdf2f88631441ba8fd80bc7a0dbf4. I'll use that as the basis for a PR to close this issue. I am new to both conda-build and arrow's build system and would be glad to hear better ideas of how to address this.
Component(s)
C++