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]

Reply via email to