Wes McKinney created ARROW-4380:
-----------------------------------

             Summary: [C++] Linker failure due to Boost library link order
                 Key: ARROW-4380
                 URL: https://issues.apache.org/jira/browse/ARROW-4380
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
            Reporter: Wes McKinney
             Fix For: 0.13.0


I hit this developing on Ubuntu 18.10 / clang 6 (gcc 8.2.x toolchain base) for 
some reason:

{code}
In [1]: import pyarrow.parquet as pq                                            
               
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-dc8a4f7832af> in <module>
----> 1 import pyarrow.parquet as pq

~/code/arrow/python/pyarrow/__init__.py in <module>
     52 
     53 
---> 54 from pyarrow.lib import cpu_count, set_cpu_count
     55 from pyarrow.lib import (null, bool_,
     56                          int8, int16, int32, int64,

ImportError: /home/wesm/local-release/lib/libarrow.so.12: undefined symbol: 
_ZN5boost6system6detail20generic_category_ncxEv

In [2]:                                                                         
               
Do you really want to exit ([y]/n)? y
(arrow-3.7) 10:12 ~/code/arrow/python  ((apache-arrow-0.12.0))$ ldd 
~/local-release/lib/libarrow.so
        linux-vdso.so.1 (0x00007ffcbd4e5000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc74e8c7000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x00007fc74e8a6000)
        libz.so.1 => /home/wesm/cpp-runtime-toolchain/lib/libz.so.1 
(0x00007fc74e88c000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc74e882000)
        libstdc++.so.6 => /home/wesm/cpp-runtime-toolchain/lib/libstdc++.so.6 
(0x00007fc74e740000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc74e5b3000)
        libgcc_s.so.1 => /home/wesm/cpp-runtime-toolchain/lib/libgcc_s.so.1 
(0x00007fc74e59d000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc74e3b3000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fc74ef42000)
(arrow-3.7) 10:12 ~/code/arrow/python  ((apache-arrow-0.12.0))$ c++filt 
_ZN5boost6system6detail20generic_category_ncxEv
boost::system::detail::generic_category_ncx()
{code}

This occurs on 0.12.0 whether we statically link Boost or not.

Passing boost_system last in the linker call fixes the issue for me...



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to