New issue
Advanced search Search tips

Issue 747030 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Sep 2017
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug


Sign in to add a comment

Fix host packages to work with libc++

Project Member Reported by manojgupta@chromium.org, Jul 20 2017

Issue description

Labels: -Pri-3 Pri-2
Current status:
Did a try build on chromiumos-sdk (https://uberchromegw.corp.google.com/i/chromiumos.tryserver/builders/chromiumos-sdk/builds/2396).

InitSDK stage failed but fail rate is low :).

Pending 19/491,  7 Packages failed:
	dev-libs/dbus-c++-0.0.2-r59
	dev-libs/nss-3.30.2-r1
	dev-util/ragel-6.7-r2
	app-emulation/qemu-2.6.0
	chromeos-base/google-breakpad-2017.02.12.185156-r118
	dev-embedded/tegrarcm-1.6
	chromeos-base/libbrillo-0.0.1-r716

This means, 491 - 7 failed  - 19 pending = 465 packages were successfully built with libc++. Not all packages use C++ but low number of failed packages is promising.
Labels: -libc libcxx
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/dbus-cplusplus/+/ccb37a514aa1d0ea1604dbc9ad290491a1e65832

commit ccb37a514aa1d0ea1604dbc9ad290491a1e65832
Author: Manoj Gupta <manojgupta@google.com>
Date: Fri Jul 21 06:57:28 2017

dbus-c++: Rename to_string to make_string to build with libc++.

Source files have an using namespace std;
So the to_string function conflicts with std::to_string function.
Rename it to make_string to avoid compilation errors with libc++.

generate_stubs.cpp:90:17: error: call to 'to_string' is ambiguous
                                        ("argin" + to_string(i)) : legalize(arg_name);
                                                   ^~~~~~~~~
/usr/bin/../include/c++/v1/string:3881:25: note: candidate function
_LIBCPP_FUNC_VIS string to_string(unsigned __val);
                        ^
./generator_utils.h:38:13: note: candidate function
std::string to_string(unsigned int v);

BUG= chromium:747030 
TEST=sudo emerge dbus-c++ works with libc++ enabled.

Change-Id: I09a058b9bc83c70b4caab9a57ee2d74ff02ba320
Reviewed-on: https://chromium-review.googlesource.com/580330
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[modify] https://crrev.com/ccb37a514aa1d0ea1604dbc9ad290491a1e65832/tools/generator_utils.cpp
[modify] https://crrev.com/ccb37a514aa1d0ea1604dbc9ad290491a1e65832/tools/generator_utils.h
[modify] https://crrev.com/ccb37a514aa1d0ea1604dbc9ad290491a1e65832/tools/generate_stubs.cpp

Blockedon: 747618
Blockedon: 747613
Blockedon: 747600
Blockedon: 747106
Blockedon: 748474
Status: Started (was: Untriaged)
Only two host packages, dev-util/grpc and qemu, need to be fixed.
Project Member

Comment 12 by bugdroid1@chromium.org, Aug 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/444b343f4d6ae6e402443cc8b2e100fcc8d225fb

commit 444b343f4d6ae6e402443cc8b2e100fcc8d225fb
Author: Manoj Gupta <manojgupta@google.com>
Date: Wed Aug 02 19:47:47 2017

libcxx/libcxxabi: Fix dependency on sys-devel/llvm for host build.

libcxxabi:
libcxxabi does not specify llvm as its dependency. This results in
libcxxabi getting built ahead of llvm in chromiumos-sdk builder.
The build fails and succeeds after a retry after llvm is built.
Avoid the portage build error by adding llvm dependency.

libcxx:
Make the sys-devel/llvm dependency in libcxx conditional on cros_host.

BUG= chromium:747030 
BUG= chromium:714628 

TEST=equery d sys-devel/llvm shows libcxxabi.
TEST=emerge libcxxbi pulls in llvm if not installed.
TEST=verified that cros_host is listed in libcxx/libcxxabi USE flags in emerge.

Change-Id: I1bd6778f5f1756e93367e82ac75ba18486c19f0a
Reviewed-on: https://chromium-review.googlesource.com/595187
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[rename] https://crrev.com/444b343f4d6ae6e402443cc8b2e100fcc8d225fb/sys-libs/libcxx/libcxx-4.0.0-r7.ebuild
[modify] https://crrev.com/444b343f4d6ae6e402443cc8b2e100fcc8d225fb/sys-libs/libcxxabi/libcxxabi-9999.ebuild

Blockedon: 756528
Status: Verified (was: Started)
All host packages now work (some are forced to use libstdc++) when libc++ is default.

Sign in to add a comment