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'
>

Reply via email to