Closed MatthewHambley closed 6 years ago
I confirm there are issues with GCC 7.1.1:
../blitz/array/ops.h:127:1: note: in expansion of macro 'BZ_DECLARE_ARRAY_ET_SCALAR_OPS BZ_DECLARE_ARRAY_ET_SCALAR_OPS(complex
) ^ ~~~~~~~~~ In file included from ../blitz/globeval.cc:34:0, from ../blitz/array/ops.cc:38, from ../blitz/array.cc:13, from ../blitz/array-impl.h:2559, from ../blitz/array.h:37, from ../src/globals.cpp:12: ../blitz/tvevaluate.h: In instantiation of 'static void blitz::_tv_evaluator<unroll, N_length>::evaluate_unaligned(T_numtype, const T_expr&, T_update) [with T_numtype = int; T_expr = blitz::_bz_ArrayExpr<blitz::FastTV2Iterator<int, 2> >; T_update = blitz::_bz_update<int, int>; bool unroll = false; int N_length = 2]': ../blitz/globeval.cc:303:7: required from 'static void blitz::chunked_updater<T_numtype, T_expr, T_update, N>::unaligned_update(T_numtype, T_expr, blitz::diffType) [with T_numtype = int; T_expr = blitz::_bz_ArrayExpr<blitz::IndexPlaceholder<0> >; T_update = blitz::_bz_update<int, int>; int N = 2; blitz::diffType = long int]' ../blitz/globeval.cc:342:41: recursively required from 'static void blitz::_bz_meta_binaryAssign::assign(T_data, T_expr, blitz::diffType, blitz::diffType, T_update) [with T_data = int; T_expr = blitz::_bz_ArrayExpr<blitz::IndexPlaceholder<0> >; T_update = blitz::_bz_update<int, int>; int I = 6; blitz::diffType = long int]' ../blitz/globeval.cc:342:41: required from 'static void blitz::_bz_meta_binaryAssign::assign(T_data, T_expr, blitz::diffType, blitz::diffType, T_update) [with T_data = int; T_expr = blitz::_bz_ArrayExpr<blitz::IndexPlaceholder<0> >; T_update = blitz::_bz_update<int, int>; int I = 7; blitz::diffType = long int]' ../blitz/globeval.cc:404:13: required from 'void blitz::_bz_evaluateWithUnitStride(T_dest&, typename T_dest::T_iterator&, T_expr, blitz::diffType, T_update) [with T_dest = blitz::TinyVector<int, 1>; T_expr = blitz::_bz_ArrayExpr<blitz::IndexPlaceholder<0> >; T_update = blitz::_bz_update<int, int>; typename T_dest::T_iterator = blitz::FastTV2Iterator<int, 1>; blitz::diffType = long int]' ../blitz/globeval.cc:591:31: required from 'static void blitz::_bz_evaluator<1>::evaluateWithStackTraversal(T_dest&, T_expr, T_update) [with T_dest = blitz::TinyVector<int, 1>; T_expr = blitz::_bz_ArrayExpr<blitz::IndexPlaceholder<0> >; T_update = blitz::_bz_update<int, int>]' ../blitz/globeval.cc:279:58: required from 'void blitz::_bz_evaluate(T_dest&, T_expr, T_update) [with T_dest = blitz::TinyVector<int, 1>; T_expr = blitz::_bz_ArrayExpr<blitz::IndexPlaceholder<0> >; T_update = blitz::_bz_update<int, int>]' ../blitz/tvevaluate.h:135:17: required from 'static void blitz::_tv_evaluator<true, N_length>::select_evaluation(blitz::TinyVector<T, N_length>&, const T_expr&, T_update) [with T = int; T_expr = blitz::_bz_ArrayExpr<blitz::IndexPlaceholder<0> >; T_update = blitz::_bz_update<int, int>; int N_length = 1]' ../blitz/tvevaluate.h:179:57: required from 'void blitz::TinyVector<T, N>::_tv_evaluate(const T_expr&, T_update) [with T_expr = blitz::_bz_ArrayExpr<blitz::IndexPlaceholder<0> >; T_update = blitz::_bz_update<int, int>; P_numtype = int; int N_length = 1]' ../blitz/tinyvec2.cc:86:15: required from 'blitz::TinyVector<T, N>& blitz::TinyVector<T, N>::operator=(const blitz::ETBase&) [with T_expr = blitz::IndexPlaceholder<0>; P_numtype = int; int N_length = 1]' ../blitz/array/storage.h:412:17: required from 'blitz::ColumnMajorArray ::ColumnMajorArray(blitz::paddingPolicy) [with int N_rank = 1]' ../blitz/array/storage.h:430:34: required from here ../blitz/tvevaluate.h:120:36: error: 'const class blitz::_bz_ArrayExpr<blitz::FastTV2Iterator<int, 2> >' has no member named 'fastRead'; did you mean 'fastRead_tv'? T_update::update(data[i], expr.fastRead(i)); fastRead_tv Makefile:430: recipe for target 'globals.lo' failed make[1]: *** [globals.lo] Error 1 make[1]: Leaving directory '/data/pede_ma/workspace_eclipse/UPAS2_trunk/UPAS-L2/build/blitz-0.10/lib' Makefile:451: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1
With my #16 changes, I can build and run check-testsuite
and check-examples
without problems on Mac OS (Sierra) using GNU 7.2.0. That's the only platform I have access to a GNU 7 compiler.
Please tell me when I should merge these PRs.
On Thu, Sep 28, 2017 at 11:00 AM, Bill notifications@github.com wrote:
With my #16 https://github.com/blitzpp/blitz/pull/16 changes, I can build and run check-testsuite and check-examples without problems on Mac OS (Sierra) using GNU 7.2.0. That's the only platform I have access to a GNU 7 compiler.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/blitzpp/blitz/issues/17#issuecomment-332864467, or mute the thread https://github.com/notifications/unsubscribe-auth/AB1cd0i0hvcneE-yL_PCRYB4k5pEC4xsks5sm7SYgaJpZM4PBFhU .
I can confirm that #16 works on CentOS 6 and gcc 7.1
I've just had a chance to try building Blitz 1.0.1 with GCC 7.3.0 and can confirm that the problem appears to be fixed.
Thanks! Closing the issue then
We have witnessed this issue while trying to compile XIOS, a library which makes use of blitz++, using GCC 7.1.0. The failure has also been seen by a Debian autobuilder, see this link: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853333
It looks like this new version of GCC is stricter about some shady usage pattern which it was hitherto letting through without comment.