[ https://issues.apache.org/jira/browse/ARROW-10841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17245753#comment-17245753 ]
Uwe Korn commented on ARROW-10841: ---------------------------------- The issue is that the version of {{tapi}} / {{d64_osx-64}} conda packages is too old to deal with the new MacOS SDK. Either use an older MacOS SDK (you can get them from https://github.com/phracker/MacOSX-SDKs) and set {{CONDA_BUILD_SYSROOT}} accordingly or update the {{clang clangxx tapi ldid ld64_osx-64}} set of packages. > [C++] Cannot build Gandiva locally > ---------------------------------- > > Key: ARROW-10841 > URL: https://issues.apache.org/jira/browse/ARROW-10841 > Project: Apache Arrow > Issue Type: Bug > Components: C++ - Gandiva > Reporter: Andrew Wieteska > Priority: Major > > I'm having trouble building Gandiva locally. > The minimal build script I'm using is > {code:java} > HOME=/Users/andrewwieteska/repos/arrow > LIBRARY_INSTALL_DIR=$HOME/local-libs > CPP_BUILD_DIR=$HOME/arrow-cpp-build-gandiva > ARROW_ROOT=$HOME/arrow > PYTHON=3.7 > #---------------------------------------------------------------------- > # Activate conda in bash and activate conda environment > source /Users/andrewwieteska/anaconda3/etc/profile.d/conda.sh > conda activate pyarrow-dev > export ARROW_HOME=/Users/andrewwieteska/anaconda3/envs/pyarrow-dev > export CONDA_BUILD_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk > #---------------------------------------------------------------------- > # Build C++ library > mkdir -p $CPP_BUILD_DIR > pushd $CPP_BUILD_DIR > cmake -GNinja \ > -DCMAKE_BUILD_TYPE=DEBUG \ > -DCMAKE_INSTALL_PREFIX=$ARROW_HOME \ > -DCMAKE_INSTALL_LIBDIR=lib \ > -DARROW_BUILD_TESTS=ON \ > -DARROW_SIMD_LEVEL=NONE \ > -DARROW_GANDIVA=ON \ > $ARROW_ROOT/cpp > ninja -j4 > ninja install > ctest > popd > {code} > The output is: > > {code:java} > (pyarrow-dev) andrewwieteska@x86_64-apple-darwin13 arrow % sh build_gandiva.sh > ~/arrow ~ > ~ > ~/arrow-cpp-build-gandiva ~ > -- Building using CMake version: 3.18.4 > -- Arrow version: 3.0.0 (full: '3.0.0-SNAPSHOT') > -- Arrow SO version: 300 (full: 300.0.0) > -- clang-tidy not found > -- clang-format not found > -- Could NOT find ClangTools (missing: CLANG_FORMAT_BIN CLANG_TIDY_BIN) > -- infer not found > -- Found Python3: > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/python3.7 (found version > "3.7.8") found components: Interpreter > -- Using ccache: /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/ccache > -- Found cpplint executable at > /Users/andrewwieteska/repos/arrow/arrow/cpp/build-support/cpplint.py > -- System processor: x86_64 > -- Arrow build warning level: CHECKIN > Configured for DEBUG build (set with cmake > -DCMAKE_BUILD_TYPE={release,debug,...}) > -- Build Type: DEBUG > -- Using CONDA approach to find dependencies > -- Using CONDA_PREFIX for ARROW_PACKAGE_PREFIX: > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev > -- Setting (unset) dependency *_ROOT variables: > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev > -- ARROW_ABSL_BUILD_VERSION: 2eba343b51e0923cd3fb919a6abd6120590fc059 > -- ARROW_AWSSDK_BUILD_VERSION: 1.8.57 > -- ARROW_AWS_CHECKSUMS_BUILD_VERSION: v0.1.5 > -- ARROW_AWS_C_COMMON_BUILD_VERSION: v0.4.59 > -- ARROW_AWS_C_EVENT_STREAM_BUILD_VERSION: v0.1.5 > -- ARROW_BOOST_BUILD_VERSION: 1.71.0 > -- ARROW_BROTLI_BUILD_VERSION: v1.0.7 > -- ARROW_BZIP2_BUILD_VERSION: 1.0.8 > -- ARROW_CARES_BUILD_VERSION: 1.16.1 > -- ARROW_GBENCHMARK_BUILD_VERSION: v1.5.2 > -- ARROW_GFLAGS_BUILD_VERSION: v2.2.2 > -- ARROW_GLOG_BUILD_VERSION: v0.4.0 > -- ARROW_GRPC_BUILD_VERSION: v1.29.1 > -- ARROW_GTEST_BUILD_VERSION: 1.10.0 > -- ARROW_JEMALLOC_BUILD_VERSION: 5.2.1 > -- ARROW_LZ4_BUILD_VERSION: v1.9.2 > -- ARROW_MIMALLOC_BUILD_VERSION: v1.6.4 > -- ARROW_ORC_BUILD_VERSION: 1.6.2 > -- ARROW_PROTOBUF_BUILD_VERSION: v3.12.1 > -- ARROW_RAPIDJSON_BUILD_VERSION: 1a803826f1197b5e30703afe4b9c0e7dd48074f5 > -- ARROW_RE2_BUILD_VERSION: 2019-08-01 > -- ARROW_SNAPPY_BUILD_VERSION: 1.1.8 > -- ARROW_THRIFT_BUILD_VERSION: 0.12.0 > -- ARROW_THRIFT_BUILD_MD5_CHECKSUM: 3deebbb4d1ca77dd9c9e009a1ea02183 > -- ARROW_UTF8PROC_BUILD_VERSION: v2.5.0 > -- ARROW_ZLIB_BUILD_VERSION: 1.2.11 > -- ARROW_ZSTD_BUILD_VERSION: v1.4.5 > -- Boost include dir: /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/include > -- Boost libraries: Boost::system;Boost::filesystem > -- Building without OpenSSL support. Minimum OpenSSL version 1.0.2 required. > -- Found protoc: /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/protoc > -- Found libprotoc: > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/lib/libprotoc.dylib > -- Found libprotobuf: > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/lib/libprotobuf.dylib > -- Found protobuf headers: > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/include > -- Building (vendored) jemalloc from source > -- Providing cmake module for GTest > -- RapidJSON found. Headers: > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/include > -- Providing cmake module for RE2 > -- Providing cmake module for utf8proc > -- Found hdfs.h at: > /Users/andrewwieteska/repos/arrow/arrow/cpp/thirdparty/hadoop/include/hdfs.h > -- All bundled static libraries: jemalloc::jemalloc > -- CMAKE_C_FLAGS: -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC > -fPIE -fstack-protector-strong -O2 -pipe -isystem > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/include -Qunused-arguments > -ggdb -O0 -Wall -Wextra -Wdocumentation -Wno-missing-braces > -Wno-unused-parameter -Wno-unknown-warning-option > -Wno-constant-logical-operand -Werror -Wno-unknown-warning-option > -Wno-pass-failed > -- CMAKE_CXX_FLAGS: -march=core2 -mtune=haswell -mssse3 -ftree-vectorize > -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc++ > -fvisibility-inlines-hidden -std=c++14 -fmessage-length=0 -isystem > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/include -Qunused-arguments > -fcolor-diagnostics -ggdb -O0 -Wall -Wextra -Wdocumentation > -Wno-missing-braces -Wno-unused-parameter -Wno-unknown-warning-option > -Wno-constant-logical-operand -Werror -Wno-unknown-warning-option > -Wno-pass-failed > -- Creating bundled static library target arrow_bundled_dependencies at > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/debug/libarrow_bundled_dependencies.a > -- Found Python3: > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/python3.7 (found version > "3.7.8") found components: Interpreter Development NumPy Development.Module > Development.Embed > -- Using LLVMConfig.cmake in: /usr/local/opt/llvm/lib/cmake/llvm > -- Found llvm-link > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/llvm-link > -- Found clang /usr/local/opt/llvm/bin/clang-11 > -- --------------------------------------------------------------------- > -- Arrow version: 3.0.0-SNAPSHOT > -- > -- Build configuration summary: > -- Generator: Ninja > -- Build type: DEBUG > -- Source directory: /Users/andrewwieteska/repos/arrow/arrow/cpp > -- Install prefix: /Users/andrewwieteska/anaconda3/envs/pyarrow-dev > -- > -- Compile and link options: > -- > -- ARROW_CXXFLAGS="" [default=""] > -- Compiler flags to append when compiling Arrow > -- ARROW_BUILD_STATIC=ON [default=ON] > -- Build static libraries > -- ARROW_BUILD_SHARED=ON [default=ON] > -- Build shared libraries > -- ARROW_PACKAGE_KIND="" [default=""] > -- Arbitrary string that identifies the kind of package > -- (for informational purposes) > -- ARROW_GIT_ID=c2cff611bf247c1d48c5d00778cd89f174da5ed5 [default=""] > -- The Arrow git commit id (if any) > -- ARROW_GIT_DESCRIPTION=apache-arrow-0.17.0-1623-gc2cff611b [default=""] > -- The Arrow git commit description (if any) > -- ARROW_NO_DEPRECATED_API=OFF [default=OFF] > -- Exclude deprecated APIs from build > -- ARROW_USE_CCACHE=ON [default=ON] > -- Use ccache when compiling (if available) > -- ARROW_USE_LD_GOLD=OFF [default=OFF] > -- Use ld.gold for linking on Linux (if available) > -- ARROW_USE_PRECOMPILED_HEADERS=OFF [default=OFF] > -- Use precompiled headers when compiling > -- ARROW_SIMD_LEVEL=NONE [default=NONE|SSE4_2|AVX2|AVX512] > -- Compile-time SIMD optimization level > -- ARROW_RUNTIME_SIMD_LEVEL=MAX [default=NONE|SSE4_2|AVX2|AVX512|MAX] > -- Max runtime SIMD optimization level > -- ARROW_ARMV8_ARCH=armv8-a [default=armv8-a|armv8-a+crc+crypto] > -- Arm64 arch and extensions > -- ARROW_ALTIVEC=ON [default=ON] > -- Build with Altivec if compiler has support > -- ARROW_RPATH_ORIGIN=OFF [default=OFF] > -- Build Arrow libraries with RATH set to $ORIGIN > -- ARROW_INSTALL_NAME_RPATH=ON [default=ON] > -- Build Arrow libraries with install_name set to @rpath > -- ARROW_GGDB_DEBUG=ON [default=ON] > -- Pass -ggdb flag to debug builds > -- > -- Test and benchmark options: > -- > -- ARROW_BUILD_EXAMPLES=OFF [default=OFF] > -- Build the Arrow examples > -- ARROW_BUILD_TESTS=ON [default=OFF] > -- Build the Arrow googletest unit tests > -- ARROW_ENABLE_TIMING_TESTS=ON [default=ON] > -- Enable timing-sensitive tests > -- ARROW_BUILD_INTEGRATION=OFF [default=OFF] > -- Build the Arrow integration test executables > -- ARROW_BUILD_BENCHMARKS=OFF [default=OFF] > -- Build the Arrow micro benchmarks > -- ARROW_BUILD_BENCHMARKS_REFERENCE=OFF [default=OFF] > -- Build the Arrow micro reference benchmarks > -- ARROW_TEST_LINKAGE=shared [default=shared|static] > -- Linkage of Arrow libraries with unit tests executables. > -- ARROW_FUZZING=OFF [default=OFF] > -- Build Arrow Fuzzing executables > -- ARROW_LARGE_MEMORY_TESTS=OFF [default=OFF] > -- Enable unit tests which use large memory > -- > -- Lint options: > -- > -- ARROW_ONLY_LINT=OFF [default=OFF] > -- Only define the lint and check-format targets > -- ARROW_VERBOSE_LINT=OFF [default=OFF] > -- If off, 'quiet' flags will be passed to linting tools > -- ARROW_GENERATE_COVERAGE=OFF [default=OFF] > -- Build with C++ code coverage enabled > -- > -- Checks options: > -- > -- ARROW_TEST_MEMCHECK=OFF [default=OFF] > -- Run the test suite using valgrind --tool=memcheck > -- ARROW_USE_ASAN=OFF [default=OFF] > -- Enable Address Sanitizer checks > -- ARROW_USE_TSAN=OFF [default=OFF] > -- Enable Thread Sanitizer checks > -- ARROW_USE_UBSAN=OFF [default=OFF] > -- Enable Undefined Behavior sanitizer checks > -- > -- Project component options: > -- > -- ARROW_BUILD_UTILITIES=OFF [default=OFF] > -- Build Arrow commandline utilities > -- ARROW_COMPUTE=ON [default=OFF] > -- Build the Arrow Compute Modules > -- ARROW_CSV=ON [default=OFF] > -- Build the Arrow CSV Parser Module > -- ARROW_CUDA=OFF [default=OFF] > -- Build the Arrow CUDA extensions (requires CUDA toolkit) > -- ARROW_DATASET=ON [default=OFF] > -- Build the Arrow Dataset Modules > -- ARROW_FILESYSTEM=ON [default=OFF] > -- Build the Arrow Filesystem Layer > -- ARROW_FLIGHT=OFF [default=OFF] > -- Build the Arrow Flight RPC System (requires GRPC, Protocol Buffers) > -- ARROW_GANDIVA=ON [default=OFF] > -- Build the Gandiva libraries > -- ARROW_HDFS=ON [default=OFF] > -- Build the Arrow HDFS bridge > -- ARROW_HIVESERVER2=OFF [default=OFF] > -- Build the HiveServer2 client and Arrow adapter > -- ARROW_IPC=ON [default=ON] > -- Build the Arrow IPC extensions > -- ARROW_JEMALLOC=ON [default=ON] > -- Build the Arrow jemalloc-based allocator > -- ARROW_JNI=OFF [default=OFF] > -- Build the Arrow JNI lib > -- ARROW_JSON=ON [default=OFF] > -- Build Arrow with JSON support (requires RapidJSON) > -- ARROW_MIMALLOC=OFF [default=OFF] > -- Build the Arrow mimalloc-based allocator > -- ARROW_PARQUET=OFF [default=OFF] > -- Build the Parquet libraries > -- ARROW_ORC=OFF [default=OFF] > -- Build the Arrow ORC adapter > -- ARROW_PLASMA=OFF [default=OFF] > -- Build the plasma object store along with Arrow > -- ARROW_PLASMA_JAVA_CLIENT=OFF [default=OFF] > -- Build the plasma object store java client > -- ARROW_PYTHON=ON [default=OFF] > -- Build the Arrow CPython extensions > -- ARROW_S3=OFF [default=OFF] > -- Build Arrow with S3 support (requires the AWS SDK for C++) > -- ARROW_TENSORFLOW=OFF [default=OFF] > -- Build Arrow with TensorFlow support enabled > -- ARROW_TESTING=ON [default=OFF] > -- Build the Arrow testing libraries > -- > -- Thirdparty toolchain options: > -- > -- ARROW_DEPENDENCY_SOURCE=CONDA [default=AUTO|BUNDLED|SYSTEM|CONDA|BREW] > -- Method to use for acquiring arrow's build dependencies > -- ARROW_VERBOSE_THIRDPARTY_BUILD=OFF [default=OFF] > -- Show output from ExternalProjects rather than just logging to files > -- ARROW_DEPENDENCY_USE_SHARED=ON [default=ON] > -- Link to shared libraries > -- ARROW_BOOST_USE_SHARED=ON [default=ON] > -- Rely on boost shared libraries where relevant > -- ARROW_BROTLI_USE_SHARED=ON [default=ON] > -- Rely on Brotli shared libraries where relevant > -- ARROW_BZ2_USE_SHARED=ON [default=ON] > -- Rely on Bz2 shared libraries where relevant > -- ARROW_GFLAGS_USE_SHARED=ON [default=ON] > -- Rely on GFlags shared libraries where relevant > -- ARROW_GRPC_USE_SHARED=ON [default=ON] > -- Rely on gRPC shared libraries where relevant > -- ARROW_LZ4_USE_SHARED=ON [default=ON] > -- Rely on lz4 shared libraries where relevant > -- ARROW_OPENSSL_USE_SHARED=ON [default=ON] > -- Rely on OpenSSL shared libraries where relevant > -- ARROW_PROTOBUF_USE_SHARED=ON [default=ON] > -- Rely on Protocol Buffers shared libraries where relevant > -- ARROW_THRIFT_USE_SHARED=ON [default=ON] > -- Rely on thrift shared libraries where relevant > -- ARROW_UTF8PROC_USE_SHARED=ON [default=ON] > -- Rely on utf8proc shared libraries where relevant > -- ARROW_SNAPPY_USE_SHARED=ON [default=ON] > -- Rely on snappy shared libraries where relevant > -- ARROW_UTF8PROC_USE_SHARED=ON [default=ON] > -- Rely on utf8proc shared libraries where relevant > -- ARROW_ZSTD_USE_SHARED=ON [default=ON] > -- Rely on zstd shared libraries where relevant > -- ARROW_USE_GLOG=OFF [default=OFF] > -- Build libraries with glog support for pluggable logging > -- ARROW_WITH_BACKTRACE=ON [default=ON] > -- Build with backtrace support > -- ARROW_WITH_BROTLI=OFF [default=OFF] > -- Build with Brotli compression > -- ARROW_WITH_BZ2=OFF [default=OFF] > -- Build with BZ2 compression > -- ARROW_WITH_LZ4=OFF [default=OFF] > -- Build with lz4 compression > -- ARROW_WITH_SNAPPY=OFF [default=OFF] > -- Build with Snappy compression > -- ARROW_WITH_ZLIB=OFF [default=OFF] > -- Build with zlib compression > -- ARROW_WITH_ZSTD=OFF [default=OFF] > -- Build with zstd compression > -- ARROW_WITH_UTF8PROC=ON [default=ON] > -- Build with support for Unicode properties using the utf8proc library > -- (only used if ARROW_COMPUTE is ON) > -- ARROW_WITH_RE2=ON [default=ON] > -- Build with support for regular expressions using the re2 library > -- (only used if ARROW_COMPUTE or ARROW_GANDIVA is ON) > -- > -- Parquet options: > -- > -- PARQUET_MINIMAL_DEPENDENCY=OFF [default=OFF] > -- Depend only on Thirdparty headers to build libparquet. > -- Always OFF if building binaries > -- PARQUET_BUILD_EXECUTABLES=OFF [default=OFF] > -- Build the Parquet executable CLI tools. Requires static libraries to be > built. > -- PARQUET_BUILD_EXAMPLES=OFF [default=OFF] > -- Build the Parquet examples. Requires static libraries to be built. > -- PARQUET_REQUIRE_ENCRYPTION=OFF [default=OFF] > -- Build support for encryption. Fail if OpenSSL is not found > -- > -- Gandiva options: > -- > -- ARROW_GANDIVA_JAVA=OFF [default=OFF] > -- Build the Gandiva JNI wrappers > -- ARROW_GANDIVA_STATIC_LIBSTDCPP=OFF [default=OFF] > -- Include -static-libstdc++ -static-libgcc when linking with > -- Gandiva static libraries > -- ARROW_GANDIVA_PC_CXX_FLAGS="" [default=""] > -- Compiler flags to append when pre-compiling Gandiva operations > -- > -- Advanced developer options: > -- > -- ARROW_EXTRA_ERROR_CONTEXT=OFF [default=OFF] > -- Compile with extra error context (line numbers, code) > -- ARROW_OPTIONAL_INSTALL=OFF [default=OFF] > -- If enabled install ONLY targets that have already been built. Please be > -- advised that if this is enabled 'install' will fail silently on components > -- that have not been built > -- Outputting build configuration summary to > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/cmake_summary.json > -- Configuring done > -- Generating done > -- Build files have been written to: > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva > [33/315] Performing configure step for 'jemalloc_ep' > FAILED: jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure > cd > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/jemalloc_ep-prefix/src/jemalloc_ep > && /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/cmake -P > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-DEBUG.cmake > && /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/cmake -E touch > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure > CMake Error at > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-DEBUG.cmake:37 > (message): > Command failed: 77 > './configure' > 'AR=/Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/x86_64-apple-darwin13.4.0-ar' > > 'CC=/Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/x86_64-apple-darwin13.4.0-clang' > > 'SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk' > > '--prefix=/Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/jemalloc_ep-prefix/src/jemalloc_ep/dist/' > '--with-jemalloc-prefix=je_arrow_' > '--with-private-namespace=je_arrow_private_' '--without-export' > '--disable-shared' '--disable-cxx' '--disable-libdl' > '--disable-initial-exec-tls' > See also > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-*.log > -- stdout output is: > checking for xsltproc... /usr/bin/xsltproc > checking for gcc... > /Users/andrewwieteska/anaconda3/envs/pyarrow-dev/bin/x86_64-apple-darwin13.4.0-clang > checking whether the C compiler works... no > -- stderr output is: > configure: error: in > `/Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/jemalloc_ep-prefix/src/jemalloc_ep': > configure: error: C compiler cannot create executables > See `config.log' for more details > CMake Error at > /Users/andrewwieteska/repos/arrow/arrow-cpp-build-gandiva/jemalloc_ep-prefix/src/jemalloc_ep-stamp/jemalloc_ep-configure-DEBUG.cmake:47 > (message): > Stopping after outputting logs. > [34/315] Generating ../irhelpers.bc > ninja: build stopped: subcommand failed. > (pyarrow-dev) andrewwieteska@x86_64-apple-darwin13 arrow % > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005)