Package: libeigen3-dev Version: 3.3~alpha1-2 Severity: grave Control: affects -1 src:gnudatalanguage Justification: Makes package unusable on one release architecture
Hi, with the most recent upload of gnudatalanguage (which just changed documentation stuff), it deterministically FTBFS on arm64 -- and only there (not counting non-release architectures which have different issues): https://buildd.debian.org/status/package.php?p=gnudatalanguage https://buildd.debian.org/status/fetch.php?pkg=gnudatalanguage&arch=arm64&ver=0.9.5-3&stamp=1445723100 Example log excerpt: In function 'float64x2_t vdupq_lane_f64(float64x1_t, int)', inlined from 'Packet Eigen::internal::pmul(const Packet&, const Packet&) [with Packet = Eigen::internal::Packet1cd]' at /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h:329:22, inlined from 'Packet Eigen::internal::pmadd(const Packet&, const Packet&, const Packet&) [with Packet = Eigen::internal::Packet1cd]' at /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h:450:14, inlined from 'static void Eigen::internal::etor_product_packet_impl<0, -1, Lhs, Rhs, Packet, LoadMode>::run(Eigen::Index, Eigen::Index, const Lhs&, const Rhs&, Eigen::Index, Packet&) [with Lhs = Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> > >; Rhs = Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> > >; Packet = Eigen::internal::Packet1cd; int LoadMode = 0; Eigen::Index = long int]' at /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h:601:7, inlined from 'const PacketType Eigen::internal::product_evaluator<Eigen::Product<Lhs, Rhs, 1>, ProductTag, Eigen::DenseShape, Eigen::DenseShape, typename Lhs::Scalar, typename Rhs::Scalar>::packet(Eigen::Index, Eigen::Index) const [with int LoadMode = 0; PacketType = Eigen::internal::Packet1cd; Lhs = Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >; Rhs = Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >; int ProductTag = 8; typename Rhs::Scalar = std::complex<double>; typename Lhs::Scalar = std::complex<double>; Eigen::Index = long int]' at /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h:493:5, inlined from 'void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignPacket(Eigen::Index, Eigen::Index) [with int StoreMode = 16; int LoadMode = 0; PacketType = Eigen::internal::Packet1cd; DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> > >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Product<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >, Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >, 1> >; Functor = Eigen::internal::assign_op<std::complex<double> >; int Version = 0; Eigen::Index = long int]' at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:598:5, inlined from 'void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignPacketByOuterInner(Eigen::Index, Eigen::Index) [with int StoreMode = 16; int LoadMode = 0; PacketType = Eigen::internal::Packet1cd; DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> > >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Product<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >, Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >, 1> >; Functor = Eigen::internal::assign_op<std::complex<double> >; int Version = 0; Eigen::Index = long int]' at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:612:5, inlined from 'static void Eigen::internal::dense_assignment_loop<Kernel, 4, 0>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator<Eigen::Product<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >, Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >, 1> >, Eigen::internal::assign_op<std::complex<double> >, 0>]' at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:516:9, inlined from 'void Eigen::internal::call_dense_assignment_loop(const DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >; SrcXprType = Eigen::Product<Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >, Eigen::Map<Eigen::Matrix<std::complex<double>, -1, -1>, 16, Eigen::Stride<0, 0> >, 1>; Functor = Eigen::internal::assign_op<std::complex<double> >]' at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:659:3: /usr/lib/gcc/aarch64-linux-gnu/5/include/arm_neon.h:14027:10: error: lane 1 out of range 0 - 0 return __aarch64_vdupq_lane_f64 (__a, __b); ^ Downgrading libeigen3-dev from 3.3~alpha1-2 to 3.2.5-6 from http://snapshot.debian.org/package/eigen3/3.2.5-6/#libeigen3-dev_3.2.5-6 makes the problem vanish. Since … * all error messages in the build log only mention code coming from the libeigen3-dev package and no gnudatalanguage code, * no code change in gnudatalanguage happened since the last upload, * downgrading libeigen3-dev helps, * the issues seem to be cause by architecture-specific flows in libeigen3-dev, * the current version of libeigen3-dev in unstable is an alpha version, * and the upstream changelog says "There might be some issues with ARM/NEON", … I suspect that this is an issue in libeigen3-dev and not in gnudatalanguage. So far I would have set the severity only to "important" as only gnudatalanguage seems affected. But since upstream knows about issues with arm64 (see below) and they sound as broken as gnudatalanguage currently is on arm64, IMHO "grave" is justified. The issue described in this bug report may be upstream bug mentioned in the upstream changelog (http://eigen.tuxfamily.org/index.php?title=3.3) as known issue (http://eigen.tuxfamily.org/bz/show_bug.cgi?id=907; current state "REOPENED") but could also be a different issue. At least all of the patches I saw in that upstream bug report are either already part of the package or -- the most recent ones -- are very specific to clang compilers on iOS devices. Then again both issues (this bug report as well as the mentioned upstream bug report) are (at least partially) about Eigen/src/Core/GenericPacketMath.h, arm64, NEON and gcc (i.e. not only clang). (Not marking as forwarded as I'm not sure if it's the same issue.) -- System Information: [Bug report written on a different system than where the issue occurs, hence no system information.]