Re: MATLAB, Arrow, ABI's and Linux

2019-03-13 Thread Joris Peeters
Yeah, precisely. We're aiming to simultaneously - maintain compatibility with quite old versions of MATLAB (down to R2009 at the moment), - where possible, make use of prebuilt libraries from Anaconda, e.g. for arrow-cpp, boost, gtest etc Our build infrastructure also doesn't easily support GCC 6.

Re: MATLAB, Arrow, ABI's and Linux

2019-03-13 Thread Uwe L. Korn
Hello all, the conda packages from conda-forge use gcc and libstdc++ 7.3, i.e. are a major version newer than the ones that come with Matlab. Thus the missing symbols and the need for LD_PRELOAD. As long as Matlab is using an older version of gcc/libstdc++, the missing symbols will continue to

Re: MATLAB, Arrow, ABI's and Linux

2019-03-13 Thread Hatem Helal
Hi Joris, Nice to hear from you! I'd like the understand the need to use LD_PRELOAD for picking up a different libstdc++. In case haven't found this already, MATLAB even vendors a libstdc++ as per: (pwd = matlabroot) % more sys/os/glnxa64/README.libstdc++ The GCC runtime libraries included h

Re: MATLAB, Arrow, ABI's and Linux

2019-03-13 Thread Joris Peeters
Hello Uwe, Yes, it would appear that was the case. Aggregating yours and Wes' suggestions, I'm now: - Compiling arrow-cpp myself, explicitly with the new ABI, and publishing this on our internal conda channel (as gsa-arrow-cpp, so it can be explicitly depended upon). Did this by tweaking https://

Re: MATLAB, Arrow, ABI's and Linux

2019-03-12 Thread Uwe L. Korn
Hello Joris, '/data/home/jpeeter/apps/anaconda3/envs/testarrow/lib/fromArrowStream.mexa64': /data/home/jpeeter/apps/anaconda3/envs/testarrow/lib/fromArrowStream.mexa64: undefined symbol: _ZNK5arrow6Status8ToStringEv. sounds like fromArrowStream.mexa64 was still compiled using -D_GLIBCXX_USE_CXX

Re: MATLAB, Arrow, ABI's and Linux

2019-03-12 Thread Wes McKinney
hi Joris, You probably ran into the conda-forge compiler migration. I'm not sure about Anaconda's Apache Arrow libraries since they maintain those recipes. If you need shared libaries using the gcc 4.x ABI you may have to build them yourself right, or use the Linux packages for the platform where