[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