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

Issue 651887 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Cronet build with default args fails an assert

Project Member Reported by mge...@chromium.org, Sep 30 2016

Issue description

Since https://chromium.googlesource.com/chromium/src/+/090bc3fbad2a085f1eaffa27921072e769729377, Cronet builds using the default args from cr_cronet.py fail an assert. We need to either use a lower symbol level or fix the assert. Cronet is much smaller than Chrome and isn't at risk of hitting issue 648948, and doesn't work with component builds.
 

Comment 1 by torne@chromium.org, Oct 3 2016

Sorry, I didn't realise this would impact cronet builds :/

Feel free to amend the assert if there's a build-time condition for a cronet build; this issue was just causing a lot of confusion for people building regular chromium and the assert seemed like the best way to highlight that this configuration is not functional in general.
Why does Cronet use non-component build? Can Cronet switch over to component build? I don't really understand the difference between the two.

Comment 3 by mef@chromium.org, Oct 3 2016

Component builds package every component as a separate dynamic library, whereas cronet build packages them as static libraries and links them into single dynamic library, libcronet.so.


Thanks Misha for explaining!

torne@, can we change the following assert to skip non-component build?

from:

(!is_android || android_64bit_target_cpu || is_component_build || symbol_level < 2) 

to

((!is_android || android_64bit_target_cpu || symbol_level < 2) && is_component_build )


Comment 5 by torne@chromium.org, Oct 5 2016

No, that would invert the meaning of the assertion. The point of the assertion is to verify that *at least one* of the things that makes the libraries "okay" is true: either building for non-android (other OSes don't have this problem for various reasons), or building for 64-bit (in which case >4gb binaries are fine), or building a component build (where libraries are much smaller), or building with a reduced symbol level.

If there's a build time variable for "cronet build" you can simply add this as a fifth case to the assertion, assuming unstripped cronet binaries are not at risk of exceeding 4gb any time soon. If there's not a variable for this, then there's not a really easy solution here: we might just have to add another variable specifically for this purpose (ignore_elf32_limitations=true or similar).
Project Member

Comment 6 by bugdroid1@chromium.org, Oct 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d32a26068321e5976494501c51a33636a42c13f

commit 6d32a26068321e5976494501c51a33636a42c13f
Author: xunjieli <xunjieli@chromium.org>
Date: Thu Oct 06 16:58:03 2016

Add a ignore_elf32_limitations flag in build/config/compiler/compiler.gni

Add a ignore_elf32_limitations flag in
build/config/compiler/compiler.gni to turn off
assertion for Cronet builds.

This CL additionally adds is_clang to the
assertion per comment in 648948.

BUG= 651887 ,648948

Review-Url: https://codereview.chromium.org/2395603003
Cr-Commit-Position: refs/heads/master@{#423564}

[modify] https://crrev.com/6d32a26068321e5976494501c51a33636a42c13f/build/config/compiler/compiler.gni
[modify] https://crrev.com/6d32a26068321e5976494501c51a33636a42c13f/components/cronet/tools/cr_cronet.py

Owner: xunji...@chromium.org
Status: Fixed (was: Untriaged)
Project Member

Comment 8 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d32a26068321e5976494501c51a33636a42c13f

commit 6d32a26068321e5976494501c51a33636a42c13f
Author: xunjieli <xunjieli@chromium.org>
Date: Thu Oct 06 16:58:03 2016

Add a ignore_elf32_limitations flag in build/config/compiler/compiler.gni

Add a ignore_elf32_limitations flag in
build/config/compiler/compiler.gni to turn off
assertion for Cronet builds.

This CL additionally adds is_clang to the
assertion per comment in 648948.

BUG= 651887 ,648948

Review-Url: https://codereview.chromium.org/2395603003
Cr-Commit-Position: refs/heads/master@{#423564}

[modify] https://crrev.com/6d32a26068321e5976494501c51a33636a42c13f/build/config/compiler/compiler.gni
[modify] https://crrev.com/6d32a26068321e5976494501c51a33636a42c13f/components/cronet/tools/cr_cronet.py

Comment 9 by dimu@google.com, Nov 4 2016

Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840

Sign in to add a comment