diff mbox series

[1/1] package/uclibc: add backtrace support option

Message ID 20210109161900.51824-1-andrea.ricchi@amarulasolutions.com
State Superseded
Headers show
Series [1/1] package/uclibc: add backtrace support option | expand

Commit Message

Andrea Ricchi Jan. 9, 2021, 4:19 p.m. UTC
Add toolchain configuration to support execinfo.h and backtrace
features.

Signed-off-by: Andrea Ricchi <andrea.ricchi@amarulasolutions.com>
---
 package/uclibc/Config.in |  7 +++++++
 package/uclibc/uclibc.mk | 11 +++++++++++
 2 files changed, 18 insertions(+)

Comments

Yann E. MORIN Jan. 9, 2021, 6:03 p.m. UTC | #1
Andrea, All,

On 2021-01-09 17:19 +0100, Andrea Ricchi spake thusly:
> Add toolchain configuration to support execinfo.h and backtrace
> features.

Thanks for your contribution; see comments below...

> Signed-off-by: Andrea Ricchi <andrea.ricchi@amarulasolutions.com>
> ---
>  package/uclibc/Config.in |  7 +++++++
>  package/uclibc/uclibc.mk | 11 +++++++++++
>  2 files changed, 18 insertions(+)
> 
> diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
> index e59fef3c69..fa3abc2f50 100644
> --- a/package/uclibc/Config.in
> +++ b/package/uclibc/Config.in
> @@ -39,6 +39,13 @@ config BR2_TOOLCHAIN_BUILDROOT_LOCALE
>  	  Enable this option if you want your toolchain to support
>  	  localization and internationalization.
>  
> +config BR2_TOOLCHAIN_BUILDROOT_BACKTRACE
> +	bool "Enable backtrace support"
> +	select BR2_USE_BACKTRACE

There is no such symbol in Buildroot.

Also, backtrace in uClibc-ng depends on support for shared libraries:

    https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/extra/Configs/Config.in#n2286

Can you have a further look and resend a fixed-up patch, please?

Also, we do have a standalone package that provides libbacktrace, and
which was not added so long ago. Does that package not provide what you
need?

Regards,
Yann E. MORIN.

> +	help
> +	  Enable this option if you want your toolchain to support
> +	  execinfo.h and backtrace features.
> +
>  choice
>  	prompt "Thread library implementation"
>  	help
> diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
> index 53983e852d..b6f6c0f824 100644
> --- a/package/uclibc/uclibc.mk
> +++ b/package/uclibc/uclibc.mk
> @@ -359,6 +359,16 @@ else
>  UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_ENABLE_OPT,HAVE_SHARED)
>  endif
>  
> +#
> +# backtrace support
> +#
> +
> +ifeq ($(BR2_TOOLCHAIN_BUILDROOT_BACKTRACE),y)
> +UCLIBC_BACKTRACE_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_BACKTRACE)
> +else
> +UCLIBC_BACKTRACE_CONFIG = $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_BACKTRACE)
> +endif
> +
>  #
>  # Commands
>  #
> @@ -401,6 +411,7 @@ define UCLIBC_KCONFIG_FIXUP_CMDS
>  	$(UCLIBC_LOCALE_CONFIG)
>  	$(UCLIBC_WCHAR_CONFIG)
>  	$(UCLIBC_SHARED_LIBS_CONFIG)
> +	$(UCLIBC_BACKTRACE_CONFIG)
>  endef
>  
>  define UCLIBC_BUILD_CMDS
> -- 
> 2.25.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN Jan. 9, 2021, 6:11 p.m. UTC | #2
Andrea, All,

On 2021-01-09 19:03 +0100, Yann E. MORIN spake thusly:
> On 2021-01-09 17:19 +0100, Andrea Ricchi spake thusly:
> > Add toolchain configuration to support execinfo.h and backtrace
> > features.

I also forgot to state that uClibc-ng builds libubacktrace, not
libbactrace, so applications would need to have special handling to
explicitly load libubacktrace anyway...

Regards,
Yann E. MORIN.
Andrea Ricchi Jan. 11, 2021, 10:46 a.m. UTC | #3
Hi Yann,

Regarding the libbacktrace, in my application, I need to link the *execinfo.h
*file that is included in the uClibc-ng toolchain when the build
configuration includes UCLIBC_HAS_BACKTRACE. Because of this, I need to
build the entire libubacktrace in the uClibc-ng.

Thanks

---

Andrea Ricchi

Amarula Solutions s.r.o.

Software Developer

Pekařská 628/14, 155 00 Praha 5-Jinonice, Czechia

T. +420 212 245 723

M. +39 333 7754973
[`as] https://www.amarulasolutions.com <http://www.amarulasolutions.com>


On Sat, Jan 9, 2021 at 7:11 PM Yann E. MORIN <yann.morin.1998@free.fr>
wrote:

> Andrea, All,
>
> On 2021-01-09 19:03 +0100, Yann E. MORIN spake thusly:
> > On 2021-01-09 17:19 +0100, Andrea Ricchi spake thusly:
> > > Add toolchain configuration to support execinfo.h and backtrace
> > > features.
>
> I also forgot to state that uClibc-ng builds libubacktrace, not
> libbactrace, so applications would need to have special handling to
> explicitly load libubacktrace anyway...
>
> Regards,
> Yann E. MORIN.
>
> --
>
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics'
> conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___
>      |
> | +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is
> no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v
>  conspiracy.  |
>
> '------------------------------^-------^------------------^--------------------'
>
diff mbox series

Patch

diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index e59fef3c69..fa3abc2f50 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -39,6 +39,13 @@  config BR2_TOOLCHAIN_BUILDROOT_LOCALE
 	  Enable this option if you want your toolchain to support
 	  localization and internationalization.
 
+config BR2_TOOLCHAIN_BUILDROOT_BACKTRACE
+	bool "Enable backtrace support"
+	select BR2_USE_BACKTRACE
+	help
+	  Enable this option if you want your toolchain to support
+	  execinfo.h and backtrace features.
+
 choice
 	prompt "Thread library implementation"
 	help
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
index 53983e852d..b6f6c0f824 100644
--- a/package/uclibc/uclibc.mk
+++ b/package/uclibc/uclibc.mk
@@ -359,6 +359,16 @@  else
 UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_ENABLE_OPT,HAVE_SHARED)
 endif
 
+#
+# backtrace support
+#
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_BACKTRACE),y)
+UCLIBC_BACKTRACE_CONFIG = $(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_BACKTRACE)
+else
+UCLIBC_BACKTRACE_CONFIG = $(call KCONFIG_DISABLE_OPT,UCLIBC_HAS_BACKTRACE)
+endif
+
 #
 # Commands
 #
@@ -401,6 +411,7 @@  define UCLIBC_KCONFIG_FIXUP_CMDS
 	$(UCLIBC_LOCALE_CONFIG)
 	$(UCLIBC_WCHAR_CONFIG)
 	$(UCLIBC_SHARED_LIBS_CONFIG)
+	$(UCLIBC_BACKTRACE_CONFIG)
 endef
 
 define UCLIBC_BUILD_CMDS