I'm using conan to build a library that uses arrow parquet. I built arrow myself because I couldn't find versions in conan center that included parquet:
In my conanfile.txt
[options]
arrow:shared=True # I tried both shared and static
arrow:parquet=True
arrow:with_snappy=True
conan install .. --build=arrow
It builds and executes properly in my machine, but fails the tests in the Jenkins server with
SIGILL - Illegal instruction signal
From this and this posts, it seems like there could be an architecture conflict. And indeed, there are differences:
Jenkins server
AVX supported
AVX2 not supported
my computer
AVX supported
AVX2 supported
Furthermore, the arrow code has optimizations up to the avx level. For example, in byte_stream_split.h:
#if defined(ARROW_HAVE_AVX2)
template <typename T>
void ByteStreamSplitDecodeAvx2(const uint8_t* data, int64_t num_values, int64_t stride,
T* out)
// Code
Since I didn't add support for AVX2, how do I tell conan to build arrow without AVX2 support, or whatever the minimum common configuration might be?
Or is there something entirely different I should be looking at?