Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-6309

[C++] Parquet tests and executables are linked statically

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.15.0
    • Component/s: C++

      Description

      For some reason, on Linux Parquet tests are now statically linked with libparquet and libarrow by default, even though other tests (Arrow, Plasma...) are dynamically-linked.

      For example:

      $ ldd build-test/debug/parquet-schema-test 
      	linux-vdso.so.1 (0x00007ffd376ad000)
      	libgtest_main.so => /home/antoine/miniconda3/envs/pyarrow/lib/libgtest_main.so (0x00007f3affeaf000)
      	libgtest.so => /home/antoine/miniconda3/envs/pyarrow/lib/libgtest.so (0x00007f3affde5000)
      	libbz2.so.1.0 => /home/antoine/miniconda3/envs/pyarrow/lib/libbz2.so.1.0 (0x00007f3affdd1000)
      	liblz4.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/liblz4.so.1 (0x00007f3aff58d000)
      	libsnappy.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/libsnappy.so.1 (0x00007f3aff384000)
      	libz.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/libz.so.1 (0x00007f3affdb1000)
      	libzstd.so.1.3.7 => /home/antoine/miniconda3/envs/pyarrow/lib/libzstd.so.1.3.7 (0x00007f3affd0a000)
      	libboost_filesystem.so.1.67.0 => /home/antoine/miniconda3/envs/pyarrow/lib/libboost_filesystem.so.1.67.0 (0x00007f3aff168000)
      	libstdc++.so.6 => /home/antoine/miniconda3/envs/pyarrow/lib/libstdc++.so.6 (0x00007f3afeff4000)
      	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3afec56000)
      	libgcc_s.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/libgcc_s.so.1 (0x00007f3affcbb000)
      	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3afe865000)
      	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3afe646000)
      	libboost_system.so.1.67.0 => /home/antoine/miniconda3/envs/pyarrow/lib/./libboost_system.so.1.67.0 (0x00007f3afe441000)
      	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f3afe239000)
      	/lib64/ld-linux-x86-64.so.2 (0x00007f3affc8f000)
      

      Contrast with e.g.:

      $ ldd build-test/debug/arrow-uri-test 
      	linux-vdso.so.1 (0x00007ffe07fb6000)
      	libarrow.so.15 => /home/antoine/arrow/dev/cpp/build-test/debug/libarrow.so.15 (0x00007f774f340000)
      	libboost_system.so.1.67.0 => /home/antoine/miniconda3/envs/pyarrow/lib/libboost_system.so.1.67.0 (0x00007f774f13b000)
      	libgtest_main.so => /home/antoine/miniconda3/envs/pyarrow/lib/libgtest_main.so (0x00007f7751723000)
      	libgtest.so => /home/antoine/miniconda3/envs/pyarrow/lib/libgtest.so (0x00007f7751659000)
      	libstdc++.so.6 => /home/antoine/miniconda3/envs/pyarrow/lib/libstdc++.so.6 (0x00007f774efc7000)
      	libgcc_s.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/libgcc_s.so.1 (0x00007f7751645000)
      	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f774ebd6000)
      	libaws-cpp-sdk-s3.so => /home/antoine/miniconda3/envs/pyarrow/lib/libaws-cpp-sdk-s3.so (0x00007f774e990000)
      	libaws-cpp-sdk-core.so => /home/antoine/miniconda3/envs/pyarrow/lib/libaws-cpp-sdk-core.so (0x00007f774e893000)
      	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f774e68f000)
      	liburiparser.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/liburiparser.so.1 (0x00007f77515f2000)
      	libbz2.so.1.0 => /home/antoine/miniconda3/envs/pyarrow/lib/libbz2.so.1.0 (0x00007f77515de000)
      	liblz4.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/liblz4.so.1 (0x00007f774e46b000)
      	libsnappy.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/libsnappy.so.1 (0x00007f774e262000)
      	libz.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/libz.so.1 (0x00007f77515bc000)
      	libzstd.so.1.3.7 => /home/antoine/miniconda3/envs/pyarrow/lib/libzstd.so.1.3.7 (0x00007f774e1bd000)
      	libboost_filesystem.so.1.67.0 => /home/antoine/miniconda3/envs/pyarrow/lib/libboost_filesystem.so.1.67.0 (0x00007f774dfa1000)
      	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f774dd82000)
      	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f774d9e4000)
      	/lib64/ld-linux-x86-64.so.2 (0x00007f7751503000)
      	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f774d7dc000)
      	libcurl.so.4 => /home/antoine/miniconda3/envs/pyarrow/lib/./libcurl.so.4 (0x00007f7751534000)
      	libcrypto.so.1.1 => /home/antoine/miniconda3/envs/pyarrow/lib/./libcrypto.so.1.1 (0x00007f774d512000)
      	libaws-c-event-stream.so.0unstable => /home/antoine/miniconda3/envs/pyarrow/lib/./libaws-c-event-stream.so.0unstable (0x00007f775152b000)
      	libaws-c-common.so.0unstable => /home/antoine/miniconda3/envs/pyarrow/lib/./libaws-c-common.so.0unstable (0x00007f774d4ef000)
      	libssh2.so.1 => /home/antoine/miniconda3/envs/pyarrow/lib/././libssh2.so.1 (0x00007f774d4bd000)
      	libssl.so.1.1 => /home/antoine/miniconda3/envs/pyarrow/lib/././libssl.so.1.1 (0x00007f774d42d000)
      	libgssapi_krb5.so.2 => /home/antoine/miniconda3/envs/pyarrow/lib/././libgssapi_krb5.so.2 (0x00007f774d3de000)
      	libkrb5.so.3 => /home/antoine/miniconda3/envs/pyarrow/lib/././libkrb5.so.3 (0x00007f774d302000)
      	libk5crypto.so.3 => /home/antoine/miniconda3/envs/pyarrow/lib/././libk5crypto.so.3 (0x00007f774d2e1000)
      	libcom_err.so.3 => /home/antoine/miniconda3/envs/pyarrow/lib/././libcom_err.so.3 (0x00007f774d2db000)
      	libaws-checksums.so => /home/antoine/miniconda3/envs/pyarrow/lib/././libaws-checksums.so (0x00007f774d2cd000)
      	libkrb5support.so.0 => /home/antoine/miniconda3/envs/pyarrow/lib/./././libkrb5support.so.0 (0x00007f774d2be000)
      	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f774d0a3000)
      

      Static linking makes building slower and the test executables larger.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                kou Kouhei Sutou
                Reporter:
                apitrou Antoine Pitrou
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h
                  1h