[Buildroot] [PATCH v2] package/uclibc: fix usage of DODEBUG option
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Tue Feb 7 17:12:09 UTC 2023
Hello Ben,
On Wed, 3 Aug 2022 16:06:29 -0400
Ben Wolsieffer <ben.wolsieffer at hefring.com> wrote:
> The DODEBUG option passes -O0 and -DDEBUG to the compiler, which has a
> significant impact on runtime behavior and performance. Currently,
> DODEBUG is enabled by BR2_ENABLE_DEBUG, but it makes more sense for it
> to be enabled by BR_ENABLE_RUNTIME_DEBUG.
>
> This patch implements the above change, and also disables the DOSTRIP
> option, allowing Builroot to decide whether binaries should be stripped.
>
> Lastly, this patch adds $(TARGET_DEBUGGING) to the compiler flags, to
> enable debug symbols when appropriate.
>
> Signed-off-by: Ben Wolsieffer <Ben.Wolsieffer at hefring.com>
> ---
> Changes in v2:
> - Always disable DOSTRIP.
> - Only add $(TARGET_DEBUGGING) to CFLAGS, to avoid any unintended side
> effects.
So after quite some time, I finally took care of your patch (sorry for
the delay!). I ended up splitting it into 3 separate commits, because
even though they are related, the 3 aspects are distinct. So here you
are:
commit f9867a725c12975af52dda9dffbdc33c3b0312db
Author: Ben Wolsieffer <Ben.Wolsieffer at hefring.com>
Date: Tue Feb 7 17:53:37 2023 +0100
package/uclibc: enable DODEBUG when BR2_ENABLE_RUNTIME_DEBUG
The DODEBUG=y option of uClibc causes uClibc to be built with -O0 and
-DDEBUG, which has a significant runtime performance
impact. Currently, DODEBUG=y is passed when BR2_ENABLE_DEBUG=y, but
BR2_ENABLE_DEBUG is only about enabling debugging symbols, not about
runtime debugging additions. The more recently added
BR2_ENABLE_RUNTIME_DEBUG option is precisely designed for that, so we
changed the logic to pass DODEBUG=y when BR2_ENABLE_RUNTIME_DEBUG=y,
and not BR2_ENABLE_DEBUG=y.
This allows to build uClibc with debugging symbols when
BR2_ENABLE_DEBUG=y, without disabling optimizations and adding more
debugging features that have a runtime performance impact.
Signed-off-by: Ben Wolsieffer <Ben.Wolsieffer at hefring.com>
[Thomas: extracted from
https://patchwork.ozlabs.org/project/buildroot/patch/20220803200629.3172370-1-Ben.Wolsieffer@hefring.com/
and split into its own independent patch.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
commit 17481bd0bf6abff260ccc579974b813050f91d4e
Author: Ben Wolsieffer <Ben.Wolsieffer at hefring.com>
Date: Tue Feb 7 17:52:21 2023 +0100
package/uclibc: pass $(TARGET_DEBUGGING) flags
In order to have debugging symbols in uClibc, let's pass
$(TARGET_DEBUGGING) in UCLIBC_EXTRA_CFLAGS.
Signed-off-by: Ben Wolsieffer <Ben.Wolsieffer at hefring.com>
[Thomas: extracted from
https://patchwork.ozlabs.org/project/buildroot/patch/20220803200629.3172370-1-Ben.Wolsieffer@hefring.com/
and split into its own independent patch.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
commit cf92dcfaa92f6564830d10d4e18ae00fd8102ab2
Author: Ben Wolsieffer <Ben.Wolsieffer at hefring.com>
Date: Tue Feb 7 17:50:59 2023 +0100
package/uclibc: don't let uClibc build system strip uClibc
Let Buildroot handle this, so we can have an unstripped uClibc if
needed.
Signed-off-by: Ben Wolsieffer <Ben.Wolsieffer at hefring.com>
[Thomas: extracted from
https://patchwork.ozlabs.org/project/buildroot/patch/20220803200629.3172370-1-Ben.Wolsieffer@hefring.com/
and split into its own independent patch.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Thanks a lot!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list