New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 805004 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jan 2018
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocking:
issue 800984



Sign in to add a comment

dev-util/ragel fails to build with libc++

Project Member Reported by rahulchaudhry@chromium.org, Jan 23 2018

Issue description

This happens when testing the next version of llvm with libc++: https://logs.chromium.org/v/?s=chromeos%2Fbb%2Fchromiumos.tryserver%2Fchromiumos-sdk%2F2836%2F%2B%2Frecipes%2Fsteps%2FInitSDK%2F0%2Fstdout

In the host sdk, dev-util/ragel build fails with new error:

ragel-6.7-r3: rbxgoto.cpp:661:8: error: invalid operands to binary expression
ragel-6.7-r3:       ('basic_ostream<char, std::__1::char_traits<char> >' and
ragel-6.7-r3:       'std::__1::ostream' (aka 'basic_ostream<char>'))
ragel-6.7-r3:                 "               " << rbxGoto(ret, "_out") << "\n" 
ragel-6.7-r3:                 ~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~
ragel-6.7-r3: /usr/bin/../include/c++/v1/ostream:220:20: note: candidate function not viable:
ragel-6.7-r3:       no known conversion from 'std::__1::ostream' (aka 'basic_ostream<char>')
ragel-6.7-r3:       to 'const void *' for 1st argument; take the address of the argument with
ragel-6.7-r3:       &
ragel-6.7-r3:     basic_ostream& operator<<(const void* __p);
ragel-6.7-r3:                    ^
ragel-6.7-r3: /usr/bin/../include/c++/v1/ostream:196:20: note: candidate function not viable:
ragel-6.7-r3:       no known conversion from 'std::__1::ostream' (aka 'basic_ostream<char>')
ragel-6.7-r3:       to 'std::__1::basic_ostream<char, std::__1::char_traits<char> >
ragel-6.7-r3:       &(*)(std::__1::basic_ostream<char, std::__1::char_traits<char> > &)' for
ragel-6.7-r3:       1st argument
ragel-6.7-r3:     basic_ostream& operator<<(basic_ostream& (*__pf)(basic_ostream&))
ragel-6.7-r3:                    ^
...

The other errors [-Wc++11-narrowing] are from llvm-next, but I suspect that this error is due to libc++.

 
Upgrading to ragel-6.10 fix the problem for me. Alternatively, I can backport the fix from ragel-6.10.

Maybe upgrading is better since ragel has not been updated since 2013.

Let's do the upgrade. ragel-6.10 will fix crbug/804996 as well, by pulling in commit 8848bc25c8b943695cf9350332a215e655af2087, which is a backport of b36524576acfccf840842f4a615855e5b51c247e to ragel-6.* branch.
Blocking: 800984
Owner: rahulchaudhry@chromium.org
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/portage-stable/+/77a4e26efca2693d68481768d6c95ce74cc2e84a

commit 77a4e26efca2693d68481768d6c95ce74cc2e84a
Author: Rahul Chaudhry <rahulchaudhry@chromium.org>
Date: Fri Jan 26 03:23:38 2018

dev-util/ragel: add ragel-6.10 ebuild from gentoo.

The ebuild is from:
  https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-util/ragel/ragel-6.10.ebuild
with one change:
  KEYWORDS="*"

BUG= chromium:804996 
BUG= chromium:805004 
TEST='sudo emerge dev-util/ragel' works.

Change-Id: I19defb380df1650e0b385eacd0febb3b92b9370b
Reviewed-on: https://chromium-review.googlesource.com/884501
Commit-Ready: Rahul Chaudhry <rahulchaudhry@chromium.org>
Tested-by: Rahul Chaudhry <rahulchaudhry@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[add] https://crrev.com/77a4e26efca2693d68481768d6c95ce74cc2e84a/dev-util/ragel/Manifest
[add] https://crrev.com/77a4e26efca2693d68481768d6c95ce74cc2e84a/dev-util/ragel/ragel-6.10.ebuild

Project Member

Comment 5 by bugdroid1@chromium.org, Jan 26 2018

Status: Fixed (was: Assigned)

Sign in to add a comment