You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2019/01/26 16:18:00 UTC

[jira] [Created] (ARROW-4380) [C++] Linker failure due to Boost library link order

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)