kou commented on issue #37067:
URL: https://github.com/apache/arrow/issues/37067#issuecomment-1670499126
It seems that it doesn't solve this problem.
The link command line for `arrow-flight-test` has
`googletest_ep-prefix/lib/libgmockd.so` but it's not linked to
`arrow-flight-test` directly. (`libgtestd.so` and `libgtest_maind.so` are
linked directly.)
```console
$ objdump -p build/cpp/debug/arrow-flight-test | grep NEEDED
NEEDED libarrow_flight_testing.so.1300
NEEDED libarrow_testing.so.1300
NEEDED libgtest_maind.so.1.11.0
NEEDED libarrow_flight.so.1300
NEEDED libgrpc.so.10
NEEDED libarrow.so.1300
NEEDED libgtestd.so.1.11.0
NEEDED libstdc++.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
NEEDED ld-linux-x86-64.so.2
```
`arrow-flight-test` has rpath to bundled GoogleTest:
```console
$ objdump -p build/cpp/debug/arrow-flight-test | grep RUNPATH
RUNPATH /build/cpp/debug:/build/cpp/googletest_ep-prefix/lib
```
So directed linked `libgtestd.so` and `libgtest_maind.so` can be found but
`libgmockd.so` can't:
```console
$ ldd build/cpp/debug/arrow-flight-test | grep libg
libgtest_maind.so.1.11.0 =>
/build/cpp/googletest_ep-prefix/lib/libgtest_maind.so.1.11.0
(0x00007fc833eb2000)
libgrpc.so.10 => /lib/x86_64-linux-gnu/libgrpc.so.10
(0x00007fc8337dc000)
libgtestd.so.1.11.0 =>
/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0 (0x00007fc82e1f8000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
(0x00007fc82dfac000)
libgmockd.so.1.11.0 =>
/build/cpp/googletest_ep-prefix/lib/libgmockd.so.1.11.0 (0x00007fc82dd06000)
libgrpc++.so.1 => /lib/x86_64-linux-gnu/libgrpc++.so.1
(0x00007fc82dba7000)
libgpr.so.10 => /lib/x86_64-linux-gnu/libgpr.so.10 (0x00007fc82d054000)
libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2
(0x00007fc82ceba000)
libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30
(0x00007fc82caae000)
libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fc82c99e000)
$
LD_LIBRARY_PATH=${ARROW_HOME}/${CMAKE_INSTALL_LIBDIR:-lib}:${LD_LIBRARY_PATH}
ldd build/cpp/debug/arrow-flight-test | grep libg
libgtest_maind.so.1.11.0 =>
/build/cpp/googletest_ep-prefix/lib/libgtest_maind.so.1.11.0
(0x00007f4fe6589000)
libgrpc.so.10 => /lib/x86_64-linux-gnu/libgrpc.so.10
(0x00007f4fe5eb3000)
libgtestd.so.1.11.0 =>
/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0 (0x00007f4fe08cf000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
(0x00007f4fe0683000)
libgmockd.so.1.11.0 => not found
libgrpc++.so.1 => /lib/x86_64-linux-gnu/libgrpc++.so.1
(0x00007f4fe02da000)
libgpr.so.10 => /lib/x86_64-linux-gnu/libgpr.so.10 (0x00007f4fdf787000)
libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2
(0x00007f4fdf5ed000)
libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30
(0x00007f4fdf1e1000)
libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f4fdf0d1000)
```
`libgmocked.so` is linked implicitly via `libarrow_flight_testing.so`:
```console
$ lddtree build/cpp/debug/arrow-flight-test
arrow-flight-test => build/cpp/debug/arrow-flight-test (interpreter =>
/lib64/ld-linux-x86-64.so.2)
libarrow_flight_testing.so.1300 =>
/build/cpp/debug/libarrow_flight_testing.so.1300
scanelf: rpath_security_checks(): Security problem NULL DT_RUNPATH in
/build/cpp/debug/libarrow_flight_testing.so.1300
libboost_filesystem.so.1.74.0 =>
/lib/x86_64-linux-gnu/libboost_filesystem.so.1.74.0
libgmockd.so.1.11.0 =>
/build/cpp/googletest_ep-prefix/lib/libgmockd.so.1.11.0
libarrow_testing.so.1300 => /build/cpp/debug/libarrow_testing.so.1300
scanelf: rpath_security_checks(): Security problem NULL DT_RUNPATH in
/build/cpp/debug/libarrow_testing.so.1300
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
libgtest_maind.so.1.11.0 =>
/build/cpp/googletest_ep-prefix/lib/libgtest_maind.so.1.11.0
libarrow_flight.so.1300 => /build/cpp/debug/libarrow_flight.so.1300
scanelf: rpath_security_checks(): Security problem NULL DT_RUNPATH in
/build/cpp/debug/libarrow_flight.so.1300
libgrpc++.so.1 => /lib/x86_64-linux-gnu/libgrpc++.so.1
libabsl_strings.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_strings.so.20210324
libabsl_strings_internal.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_strings_internal.so.20210324
libabsl_int128.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_int128.so.20210324
libabsl_throw_delegate.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_throw_delegate.so.20210324
libabsl_raw_logging_internal.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_raw_logging_internal.so.20210324
libgpr.so.10 => /lib/x86_64-linux-gnu/libgpr.so.10
libabsl_str_format_internal.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_str_format_internal.so.20210324
scanelf: rpath_security_checks(): Security problem NULL DT_RUNPATH in
/build/cpp/debug/libarrow_flight.so.1300
libprotobuf.so.23 => /lib/x86_64-linux-gnu/libprotobuf.so.23
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
libgrpc.so.10 => /lib/x86_64-linux-gnu/libgrpc.so.10
libssl.so.3 => /lib/x86_64-linux-gnu/libssl.so.3
libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3
libabsl_time.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_time.so.20210324
libabsl_time_zone.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_time_zone.so.20210324
libabsl_base.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_base.so.20210324
libabsl_spinlock_wait.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_spinlock_wait.so.20210324
libabsl_bad_optional_access.so.20210324 =>
/lib/x86_64-linux-gnu/libabsl_bad_optional_access.so.20210324
libcares.so.2 => /lib/x86_64-linux-gnu/libcares.so.2
libarrow.so.1300 => /build/cpp/debug/libarrow.so.1300
libbrotlienc.so.1 => /lib/x86_64-linux-gnu/libbrotlienc.so.1
libbrotlicommon.so.1 =>
/lib/x86_64-linux-gnu/libbrotlicommon.so.1
libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1
libutf8proc.so.2 => /lib/x86_64-linux-gnu/libutf8proc.so.2
libre2.so.9 => /lib/x86_64-linux-gnu/libre2.so.9
libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0
liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1
libsnappy.so.1 => /lib/x86_64-linux-gnu/libsnappy.so.1
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1
libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4
libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14
libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0
libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2
librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1
libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30
libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0
libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8
libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6
libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6
libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8
libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10
libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4
libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5
libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2
libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3
libkeyutils.so.1 =>
/lib/x86_64-linux-gnu/libkeyutils.so.1
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2
libkrb5support.so.0 =>
/lib/x86_64-linux-gnu/libkrb5support.so.0
libldap-2.5.so.0 => /lib/x86_64-linux-gnu/libldap-2.5.so.0
libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2
liblber-2.5.so.0 => /lib/x86_64-linux-gnu/liblber-2.5.so.0
libgtestd.so.1.11.0 =>
/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
```
--
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]