|
|
DescriptionAssert that the chosen Android config is safe.
The default Android release build configuration fails to link on 32-bit
devices, because the combination of a 32-bit target CPU, a non-component
build, and symbol_level=2 produces a binary that's >4GiB. Assert that at
least one of these conditions doesn't apply at gn time, to prevent
people being surprised by the inevitable link failure.
BUG=648948
Committed: https://crrev.com/090bc3fbad2a085f1eaffa27921072e769729377
Cr-Commit-Position: refs/heads/master@{#421860}
Patch Set 1 #Patch Set 2 : Move to compiler.gni #Messages
Total messages: 16 (4 generated)
torne@chromium.org changed reviewers: + agrieve@chromium.org
People are continuing to discover their build doesn't link. What do you think of this? A couple of questions: 1) Do we want to change the default config? I'm not sure that quietly setting symbol_level=1 is sensible, because it seems likely to surprise people who debug with gdb. I think a noisy assert is "safer", but may be more annoying? 2) Is this a sensible place to put the assert? I tried to add it to build/config/android/config.gni but can't check symbol_level there due to a circular dependency with compiler.gni. 3) Is that the right way to wrap a long string in GN? gn format is happy with it, but it looks a bit weird.
On 2016/09/28 12:13:16, Torne wrote: > People are continuing to discover their build doesn't link. What do you think of > this? A couple of questions: > > 1) Do we want to change the default config? I'm not sure that quietly setting > symbol_level=1 is sensible, because it seems likely to surprise people who debug > with gdb. I think a noisy assert is "safer", but may be more annoying? > > 2) Is this a sensible place to put the assert? I tried to add it to > build/config/android/config.gni but can't check symbol_level there due to a > circular dependency with compiler.gni. > > 3) Is that the right way to wrap a long string in GN? gn format is happy with > it, but it looks a bit weird. 1) Fully agree assert is better than quietly changing the value. 2) Seems sensible 3) That's how I've been wrapping them anyways.
On 2016/09/28 13:57:25, agrieve wrote: > On 2016/09/28 12:13:16, Torne wrote: > > People are continuing to discover their build doesn't link. What do you think > of > > this? A couple of questions: > > > > 1) Do we want to change the default config? I'm not sure that quietly setting > > symbol_level=1 is sensible, because it seems likely to surprise people who > debug > > with gdb. I think a noisy assert is "safer", but may be more annoying? > > > > 2) Is this a sensible place to put the assert? I tried to add it to > > build/config/android/config.gni but can't check symbol_level there due to a > > circular dependency with compiler.gni. > > > > 3) Is that the right way to wrap a long string in GN? gn format is happy with > > it, but it looks a bit weird. > > 1) Fully agree assert is better than quietly changing the value. > 2) Seems sensible > 3) That's how I've been wrapping them anyways. 4) lgtm :)
On 2016/09/28 13:57:33, agrieve wrote: > On 2016/09/28 13:57:25, agrieve wrote: > > On 2016/09/28 12:13:16, Torne wrote: > > > People are continuing to discover their build doesn't link. What do you > think > > of > > > this? A couple of questions: > > > > > > 1) Do we want to change the default config? I'm not sure that quietly > setting > > > symbol_level=1 is sensible, because it seems likely to surprise people who > > debug > > > with gdb. I think a noisy assert is "safer", but may be more annoying? > > > > > > 2) Is this a sensible place to put the assert? I tried to add it to > > > build/config/android/config.gni but can't check symbol_level there due to a > > > circular dependency with compiler.gni. > > > > > > 3) Is that the right way to wrap a long string in GN? gn format is happy > with > > > it, but it looks a bit weird. > > > > 1) Fully agree assert is better than quietly changing the value. > > 2) Seems sensible > > 3) That's how I've been wrapping them anyways. > > 4) lgtm :) Actually - I think this might actually be one better if put here: https://cs.chromium.org/chromium/src/build/config/compiler/compiler.gni It probably also makes sense to update the default value logic.
dpranke@chromium.org changed reviewers: + dpranke@chromium.org
I agree that the change should be in compiler.gni instead. Yes, that is the correct way to wrap strings.
Moved to compiler.gni. Do we want to change the default selection behaviour or not? You contradicted yourself Andrew :) I'm fine with either, but have a slight preference to leave it alone to avoid surprising people who use gdb, since it seems (from recent internal list threads) that people have a hard enough time getting gdb debugging to work on android as it is ;)
On 2016/09/29 16:12:49, Torne wrote: > Moved to compiler.gni. > > Do we want to change the default selection behaviour or not? You contradicted > yourself Andrew :) > > I'm fine with either, but have a slight preference to leave it alone to avoid > surprising people who use gdb, since it seems (from recent internal list > threads) that people have a hard enough time getting gdb debugging to work on > android as it is ;) It's a cointoss :P. lgtm
If it annoys a lot of people I'll change it then. Leaving it as-is for now.
The CQ bit was checked by torne@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Assert that the chosen Android config is safe. The default Android release build configuration fails to link on 32-bit devices, because the combination of a 32-bit target CPU, a non-component build, and symbol_level=2 produces a binary that's >4GiB. Assert that at least one of these conditions doesn't apply at gn time, to prevent people being surprised by the inevitable link failure. BUG=648948 ========== to ========== Assert that the chosen Android config is safe. The default Android release build configuration fails to link on 32-bit devices, because the combination of a 32-bit target CPU, a non-component build, and symbol_level=2 produces a binary that's >4GiB. Assert that at least one of these conditions doesn't apply at gn time, to prevent people being surprised by the inevitable link failure. BUG=648948 Committed: https://crrev.com/090bc3fbad2a085f1eaffa27921072e769729377 Cr-Commit-Position: refs/heads/master@{#421860} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/090bc3fbad2a085f1eaffa27921072e769729377 Cr-Commit-Position: refs/heads/master@{#421860}
Message was sent while issue was closed.
lgtm. |