Hi,

On Thu, 2 Apr 2020 16:56:06 +0000
Brian Bowman <brian.bow...@sas.com.INVALID> wrote:
> A new high-performance file system we are working with returns an error while 
> writing a .parquet file.   The following arrow symbol does not resolve 
> properly and the error is masked.
> 
>     libparquet.so: undefined symbol: _ZNK5arrow6Status8ToStringB5cxx11Ev
> 
>      > nm libarrow.so* | grep -i ZNK5arrow6Status8ToStringB5cxx11Ev  
>          00000000002b7760 t _ZNK5arrow6Status8ToStringB5cxx11Ev
>          00000000002b7760 t _ZNK5arrow6Status8ToStringB5cxx11Ev

For clarity, you should use `nm --demangle`.  This will give you the
actual C++ symbol, i.e. "arrow::Status::ToString[abi:cxx11]() const".

> One of our Linux dev/build experts tracked this down to an issue in arrow 
> open source.  He says the lowercase ‘t’ (text) code (… 7760 t _ZNK …) in the 
> nm command output is incorrect and it should instead be an uppercase ‘T’.

I have the right output here:

$ nm --demangle --defined-only --dynamic .../libarrow.so | \
    grep Status::ToString
00000000012f1ff0 T arrow::Status::ToString[abi:cxx11]() const

Which toolchain (linker etc.) are you using?

Regards

Antoine.


Reply via email to