Bug#812852: Vigra auf ppc64el -- continues a little bit
I upgraded the RC to use the newest LZ4 version which has significantly better byte order handling. Hopefully, this fixes the problem. One could also add a cmake option to use a pre-installed LZ4 library when available and just fall-back to the internal version if not. Best Ulli
Bug#812852: Vigra auf ppc64el -- continues a little bit
* Remove all occurencies of threading::memory_order* in multi_array_chunked.hxx (or equivalently, replace them with threading::memory_order_seq_cst). This will force all atomic accesses to use sequentially consistent ordering, the most strict possibility. That worked out ... much thanks! - First of all, there was a little mistake, that was the wrong log file. Unfortunately, the problem with test_multiarray_chunked resp. multi_array_chunked.hxx on ppc64el/le remains also with changing `memory_order_release/acquire` to `memory_order_seq_cst`. bummer! I'm further experimenting with VIGRA_SINGLE_THREADED but no breakthrough so far ... Looking at the log again, it occured to me that the error might not be related to multi-threading at all. Possibly, all failing tests are on ChunkedArrayCompressed with T being float and double. Can you please check this? If this is true, the error might go away be changing the compression algorithm in test_chunked.cxx line 121 from LZ4 into ZLIB_FAST or NO_COMPRESSION. If this works, there might be a byte order problem in the LZ4 algorithm. Endianess is decided in /src/impex/lz4.c lines 65 to 79. Please check if the correct endianess for your platform is retrieved there, and possibly propose a fix if it isn't. Best Ulli
Bug#814606: libvigraimpex: FTBFS on armel (error: return type 'class std::future')
so, please run cmake with the flag "-DWITH_BOOST_THREAD=1". Yup, that works. Great. Ideally, we would like to activate this flag automatically for non-conforming compilers, or at least issue a warning. Is there a way for cmake to recognize your platform and toolchain? -- ** WARNING: You are compiling in C++98 mode. -- ** Multiarray tests will be skipped. -- ** Add -std=c++11 to CMAKE_CXX_FLAGS to enable multiarray tests. If you want, you should be able to solve this by passing "-DCMAKE_CXX_FLAGS=-std=c++11" to cmake. Best Ulli
Bug#814606: libvigraimpex: FTBFS on armel (error: return type 'class std::future')
Since your toolchain apparently has no conforming implementation of std::thread, you might want to try boost::thread as a fall-back. To do so, please run cmake with the flag "-DWITH_BOOST_THREAD=1". Best Ulli On Sat, 13 Feb 2016 13:27:16 +0100 Andreas Metzler wrote: Package: libvigraimpex Version: 1.10.0+git20160120.803d5d4-1 Severity: serious Justification: fails to build from source (but built successfully in the past) Hello, the build-error on armel is different from the one on ppc64el (#812852: Failure in ChunkedMultiArrayTest). It fails at Building CXX object vigranumpy/src/core/CMakeFiles/vigranumpy_analysis.dir/segmentation.cxx.o with multiple errors starting with this one: threadpool.hxx:333:26: error: return type 'class std::future' is incomplete ThreadPool::enqueue(F&& f) ^ This is a new issue in 1.10.0+git, not a change in rdeps. cu Andreas -- `What a good friend you are to him, Dr. Maturin. His other friends are so grateful to you.' `I sew his ears on from time to time, sure'
Bug#814606: libvigraimpex: FTBFS on armel (error: return type 'class std::future')
threadpool.hxx:333:26: error: return type 'class std::future' is incomplete ThreadPool::enqueue(F&& f) ^ This message is emitted by outdated compilers that lack sufficient C++11 support. What compiler did you use? If gcc: was the '-std=c++11' flag active? Best Ulli (VIGRA maintainer)