Hmm, I see a couple of things: * There are two errors at the end, one about pthread_cancel and one about undefined symbols for snappy. I can't tell if the pthread issue is fatal. * On the latter, I see that we're using snappy and lz4 from the system (cmake finds them in the Arrow C++ build) but when the arrow.so is built for the R package, there is -llz4 in the libs but no -lsnappy. The line where the link libs are assembled from the C++ build via pkg-config is here: https://github.com/apache/arrow/blob/master/r/configure#L185, maybe the --static is relevant? Kou, do you know? * In terms of working around this, you have a few options, which are described in more detail here: https://arrow.apache.org/docs/r/articles/install.html * Set NOT_CRAN=true and get a fully-functioning C++ binary downloaded * Install a binary from RStudio Package Manager, if that's an option * conda may also be an option * If none of those work and you're building from source, you can set EXTRA_CMAKE_FLAGS="-DSNAPPY_SOURCE=BUNDLED" to skip the system version of snappy and build it in the Arrow build * You may also want to use a newer devtoolset since you're building with gcc 4.8, and some features aren't supported with that compiler.
I've trimmed the installation logs to the relevant bits in the quoted reply that follows, in case that's useful. Neal On Tue, May 3, 2022 at 1:08 PM Rares Vernica <rvern...@gmail.com> wrote: > Hi Dragos, > > It still fails after setting the environment variable. Here is the log. > > Cheers, > Rares > > ... > > install.packages("arrow") > Installing package into '/usr/lib64/R/library' > ... > *** Building libarrow from source > For a faster, more complete installation, set the environment variable > NOT_CRAN=true before installing > See install vignette for details: > https://cran.r-project.org/web/packages/arrow/vignettes/install.html > *** Building with MAKEFLAGS= -j2 > **** arrow with SOURCE_DIR='tools/cpp' > BUILD_DIR='/tmp/RtmpObd2i3/file5310bef585' DEST_DIR='libarrow/arrow-7.0.0' > CMAKE='/usr/bin/cmake3' EXTRA_CMAKE_FLAGS='' CC='gcc -m64 -std=gnu99' > CXX='g++ -m64 -std=gnu++11' LDFLAGS='-Wl,-z,relro' ARROW_S3='OFF' > ARROW_MIMALLOC='OFF' > ... > + /usr/bin/cmake3 -DARROW_BOOST_USE_SHARED=OFF -DARROW_BUILD_TESTS=OFF > -DARROW_BUILD_SHARED=OFF -DARROW_BUILD_STATIC=ON -DARROW_COMPUTE=ON > -DARROW_CSV=ON -DARROW_DATASET=ON -DARROW_DEPENDENCY_SOURCE=AUTO > -DAWSSDK_SOURCE= -DARROW_FILESYSTEM=ON -DARROW_JEMALLOC=OFF > -DARROW_MIMALLOC=OFF -DARROW_JSON=ON -DARROW_PARQUET=ON -DARROW_S3=OFF > -DARROW_WITH_BROTLI=OFF -DARROW_WITH_BZ2=OFF -DARROW_WITH_LZ4=ON > -DARROW_WITH_RE2=ON -DARROW_WITH_SNAPPY=ON -DARROW_WITH_UTF8PROC=ON > -DARROW_WITH_ZLIB=OFF -DARROW_WITH_ZSTD=OFF > -DARROW_VERBOSE_THIRDPARTY_BUILD=OFF -DCMAKE_BUILD_TYPE=Release > -DCMAKE_INSTALL_LIBDIR=lib > > -DCMAKE_INSTALL_PREFIX=/tmp/Rtmp8rFBf9/R.INSTALL2f7e48ba40/arrow/libarrow/arrow-7.0.0 > -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON > -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_UNITY_BUILD=OFF -G > 'Unix Makefiles' /tmp/Rtmp8rFBf9/R.INSTALL2f7e48ba40/arrow/tools/cpp > -- Building using CMake version: 3.17.5 > -- The C compiler identification is GNU 4.8.5 > -- The CXX compiler identification is GNU 4.8.5 > ... > -- Looking for pthread.h > -- Looking for pthread.h - found > -- Performing Test CMAKE_HAVE_LIBC_PTHREAD > -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed > -- Check if compiler accepts -pthread > -- Check if compiler accepts -pthread - yes > -- Found Threads: TRUE > ... > -- Found Snappy: /usr/lib64/libsnappy.so > -- Providing CMake module for Snappy > ... > -- Checking for module 'liblz4' > -- Found liblz4, version 1.8.3 > -- Found Lz4: /usr/lib64/liblz4.so > -- Providing CMake module for Lz4 > ... > -- Install configuration: "RELEASE" > -- Installing: > > /tmp/Rtmp8rFBf9/R.INSTALL2f7e48ba40/arrow/libarrow/arrow-7.0.0/lib/cmake/arrow/FindSnappy.cmake > -- Installing: > > /tmp/Rtmp8rFBf9/R.INSTALL2f7e48ba40/arrow/libarrow/arrow-7.0.0/lib/cmake/arrow/FindLz4.cmake > ... > > PKG_CFLAGS=-I/tmp/Rtmp8rFBf9/R.INSTALL2f7e48ba40/arrow/libarrow/arrow-7.0.0/include > -DARROW_R_WITH_ARROW -DARROW_R_WITH_PARQUET -DARROW_R_WITH_DATASET > -DARROW_R_WITH_JSON > > PKG_LIBS=-L/tmp/Rtmp8rFBf9/R.INSTALL2f7e48ba40/arrow/libarrow/arrow-7.0.0/lib > -larrow_dataset -lparquet -larrow -larrow -larrow_bundled_dependencies > -llz4 -larrow -larrow_bundled_dependencies -larrow_dataset -lparquet > ... > g++ -m64 -std=gnu++11 -shared -L/usr/lib64/R/lib -Wl,-z,relro -o arrow.so > RTasks.o altrep.o array.o array_to_vector.o arraydata.o arrowExports.o > bridge.o buffer.o chunkedarray.o compression.o compute-exec.o compute.o > config.o csv.o dataset.o datatype.o expression.o feather.o field.o > filesystem.o imports.o io.o json.o memorypool.o message.o parquet.o > r_to_arrow.o recordbatch.o recordbatchreader.o recordbatchwriter.o scalar.o > schema.o symbols.o table.o threadpool.o type_infer.o > -L/tmp/Rtmp8rFBf9/R.INSTALL2f7e48ba40/arrow/libarrow/arrow-7.0.0/lib > -larrow_dataset -lparquet -larrow -larrow -larrow_bundled_dependencies > -llz4 -larrow -larrow_bundled_dependencies -larrow_dataset -lparquet > -L/usr/lib64/R/lib -lR > installing to /usr/lib64/R/library/00LOCK-arrow/00new/arrow/libs > ** R > ... > ** testing if installed package can be loaded from temporary location > libgcc_s.so.1 must be installed for pthread_cancel to work > sh: line 1: 3916 Aborted (core dumped) > '/usr/lib64/R/bin/R' --no-save --slave 2>&1 < > '/tmp/Rtmp8rFBf9/file2f3cba608e' > Error: package or namespace load failed for 'arrow' in dyn.load(file, > DLLpath = DLLpath, ...): > unable to load shared object > '/usr/lib64/R/library/00LOCK-arrow/00new/arrow/libs/arrow.so': > /usr/lib64/R/library/00LOCK-arrow/00new/arrow/libs/arrow.so: undefined > symbol: _ZN6snappy11RawCompressEPKcmPcPm > Error: loading failed > Execution halted > ERROR: loading failed > * removing '/usr/lib64/R/library/arrow' >