Compiling dev-util/ragel-6.9 with gcc-6* fails with narrowing conversion errors such as: error: narrowing conversion of '18446744073709551615ul' from 'long unsigned int' to 'long long int' inside { } [-Wnarrowing] and template errors such as: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'std::ostream {aka std::basic_ostream<char>}')
Created attachment 433794 [details] ragel-6.9:20160509-214745.log.gz
Created attachment 433796 [details] emerge --info
Created attachment 433798 [details, diff] ragel-6.9-gcc6.patch A patch to ragel-6.9 to compile with gcc-6*. It seems certain implicit conversions are now errors in c++11/c++1z mode. The patch just applies some explicit casts to overcome this.
@Peter just FYI we can also solve this problem by appending '-std=c++98' to CXXFLAGS.
(In reply to Aric Belsito from comment #4) > @Peter > just FYI we can also solve this problem by appending '-std=c++98' to > CXXFLAGS. You could solve most gcc-6 problems with that but it's a band-aid that should be used only temporarily and when necessary. If upstream doesn't fix their builds for gcc-6 it may be necessary but unnecessarily forcing '-std=c++98' may cause breakage in dependent packages. For instance, last I checked dev-libs/boost did/does this and makes it hard to debug such problems with dev-util/source-highlight (see: https://bugs.gentoo.org/show_bug.cgi?id=582696). That creates a situation where both packages would have to force '-std=c++98' or take them off.
@Peter Yeah, that's true. I'll probably go back to the other bugs I submitted about similar problems and try and work out some actual fixes.
Patch from comment 3 works for me too.
*** Bug 593820 has been marked as a duplicate of this bug. ***
Works on arm64, cortex-a53 CPU.
While not a fix for this issue: https://github.com/gentoo/gentoo/pull/3078 ragel 7.0 builds fine for me with GCC6.
can be marked as fixed with the version bump and patches? (about time we get GCC-6 stable now with the upcoming release of gcc-7?)
(In reply to C.J. Wijtmans from comment #11) > can be marked as fixed with the version bump and patches? (about time we get > GCC-6 stable now with the upcoming release of gcc-7?) Fixed in upstream: > commit b36524576acfccf840842f4a615855e5b51c247e > Author: Adrian Thurston <thurston@complang.org> > Date: Tue Jun 28 13:02:28 2016 -0400 > > use separate signed/unsigned values for host type min/max > > Using separate values avoids the need to type cast before the data goes into > FsmCtx structs. Keep it in native types until it is used. dev-util/ragel-7.0.0.9::gentoo compiles fine for me dev-util/ragel-6.9::gentoo compiles with ragel-6.9-gcc6.patch Using gcc-6.3.0
closing as fixed in 7.0.0.9
Ragel 6.9 is still can not be avoided. For instance, mail-filter/rspamd-1.6.1 depends on <dev-util/ragel-7.0.
(In reply to Cheba from comment #14) > Ragel 6.9 is still can not be avoided. > > For instance, mail-filter/rspamd-1.6.1 depends on <dev-util/ragel-7.0. Reopening then. We also need a fixed version stable soon.
PR: https://github.com/gentoo/gentoo/pull/6043
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=659cb1b6308cd164dc73ef9b9da3087385690837 commit 659cb1b6308cd164dc73ef9b9da3087385690837 Author: Peter Levine <plevine457@gmail.com> AuthorDate: 2017-10-25 05:10:47 +0000 Commit: David Seifert <soap@gentoo.org> CommitDate: 2017-11-18 18:09:09 +0000 dev-util/ragel: Fix building with GCC-6 Closes: https://bugs.gentoo.org/582606 Package-Manager: Portage-2.3.11, Repoman-2.3.3 Closes: https://github.com/gentoo/gentoo/pull/6043 dev-util/ragel/files/ragel-6.9-gcc6.patch | 42 +++++++++++++++++++++++++++++++ dev-util/ragel/ragel-6.9.ebuild | 1 + 2 files changed, 43 insertions(+)