kou commented on issue #35577:
URL: https://github.com/apache/arrow/issues/35577#issuecomment-1577856231
`ldd` show dependencies recursively. So non-direct dependencies
(`libthrift.so` in this case) are also shown.
If you want to show direct dependencies, you can use `readelf`: `LANG=C
readelf --dynamic ../../r/src/arrow.so | grep Shared`
In general, you need to specify rpath when you build Apache Arrow C++ not
Apache Arrow R.
Could you try installing Apache Arrow C++ with rpath and installing Apache
Arrow R without `-lthrift`?
Installing Apache Arrow R with `LDFLAGS=-L${HOME}/lib -Wl,-rpath=${HOME}/lib
-L${CONDA_PREFIX}/lib -Wl,-rpath=${CONDA_PREFIX}/lib -lthrift` works because
`libthrift.so` is linked to `arrow.so` (not `libarrow.so` nor `libparquet.so`)
with rpath. But `arrow.so` doesn't refer symbols in `libthrift.so` directly. So
the linking isn't needed. It works but it's not a correct approach. (It's OK
that you use this approach if you like it. But we don't recommend this
approach.)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]