eng builds: dexpreopt: stop explicitly removing minidebuginfo
This special-casing is actively unhelpful nowadays, as it breaks callstack unwinding and symbolisation by tools that work using the on-device debug info (e.g. perfetto's profilers). It's also highly surprising that eng builds have less debug info than userdebug/user. As far as I can tell, the history behind this case is (with some internal-only references as the context is in the review comments): the minidebuginfo was originally rolled out in device-specific makefiles (e.g. ag/2433691). Eng builds were excluded, presumably due to time/size concerns for rebuild+resync workflow, as well as the assumption that engineers using eng builds already have the necessary debug info off-device. Later, as some more makefile variables were introduced, the conversation in ag/990059 shows that the overheads were no longer a concern, and the last patchset generalised the option to include eng builds. However at a later point, during device-specific makefile cleanup, the eng-exclusion got restored: ag/2455645. This then ended up in the makefile->soong transition, leaving us with the current special casing that is undesireable. Checking things with an internal master build on my workstation: dexpreopting system services is 10s regardless of this minidebuginfo flag, and the resulting odex size is 37MB vs 38MB. Overall, I only see 4 dexpreopt invocations as part of a local build, so the effect of this patch should be negligible. Bug: 194835631 Change-Id: I80de75a84259c056cdae0696fe611afe7e0162f5
Loading
Please register or sign in to comment