-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
buildsystem: selectively build packages with debug #2501
buildsystem: selectively build packages with debug #2501
Conversation
Updated with some small optimisations. Added stamp support, although realistically any change to |
I did a DEBUG=yes build with the Rockchip PR, kodi crashlog looks fine and tar is about 316MiB:
Rebuild on debug change seems to work, too. Trying to rebuild a older DEBUG=yes build (without this PR) with DEBUG=all (and this PR) resulted in a rebuild of the toolchain (then I stopped the build) So, everything looks fine to me! |
@MilhouseVH : i like the idea of being able to selectively pick packages that need to be built in debug. Wouldn't it be better to use the distro options to define the map of packages that can be used ? |
@LongChair I've added support for configurable maps - how does that work for you? If you don't define anything for If you don't define anything for Effectively, this should give the "old" behaviour (or very similar to it) when debug groups are not defined and Groups are space delimited key/value pairs (the values being comma-delimited), so multiple groups would be defined as:
|
That looks good with that change :) |
Thanks, have squashed it. |
We can use the variable as we're not accessing it in the global context.
This is proposed as an alternative to #2493
Selectively building LibreELEC packages with debug significantly reduces the size of SYSTEM+KERNEL making it unnecessary to increase partition size at this time.
Most of the time we only need Kodi and supporting libraries to be built with debug, this can be accomplished with
DEBUG=yes
.If all packages need to be built with debug, then
DEBUG=all
can be used.yes
maps to a "group", which is currently defined askodi !mesa
- this buildskodi
(and all immediate dependent packages as defined byPKG_DEPENDS_TARGET
) while excludingmesa
as the graphics drivers with symbols are very large and rarely require debugging.When building
kodi
with debug, all addons will be built with debug. Similarly, if buildinglinux
with debug, all kernel packages will be built with debug.Size comparisons:
#0213
: Non-debug build (regular nightly)#0214b
: Full debug (without this PR)#0214c
: Selective debug build (DEBUG=yes
, ie.kodi,!mesa
)Generic
#0214b
vs.#0214c
: https://pastebin.com/raw/cZUxd1c4Generic
#0213
vs#0214c
: https://pastebin.com/raw/FFvFCXsSRPi2
#0214b
vs.#0214c
: https://pastebin.com/raw/uhVCYBFNRPi2
#0213
vs#0214c
: https://pastebin.com/raw/hDGjPjzSThese test builds include all PVR, inputstream and vfs binary addons and are larger than a vanilla build. However with this change the total SYSTEM+KERNEL size for a Generic debug build is reduced from 555MB to 428MB, which gives us breathing room for a little while yet. A debug build based on vanilla master (without the binary addons) might be under 400MB.
Additional tuning of the
yes
group (kodi !mesa
) could further reduce debug space requirements - eg. it may not always be necessary to buildalsa-lib
,pulseaudio
,systemd
and evensamba
with debug, and these packages (plus others) could be candidates for exclusion in future.