diff mbox series

[v2,1/2] package/openipmi: add libexecinfo optional dependency

Message ID 20221030175632.4139-1-fontaine.fabrice@gmail.com
State Accepted
Headers show
Series [v2,1/2] package/openipmi: add libexecinfo optional dependency | expand

Commit Message

Fabrice Fontaine Oct. 30, 2022, 5:56 p.m. UTC
Add libexecinfo optional dependency as upstream rejected the patch to
add --with-execinfo=no

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2 (after review of Yann E. Morin):
 - Add missing local patch

 ...igure.ac-add-without-execinfo-option.patch | 55 -------------------
 package/openipmi/openipmi.mk                  |  6 +-
 2 files changed, 5 insertions(+), 56 deletions(-)
 delete mode 100644 package/openipmi/0002-configure.ac-add-without-execinfo-option.patch

Comments

Yann E. MORIN Oct. 30, 2022, 6:20 p.m. UTC | #1
Fabrice, All,

On 2022-10-30 18:56 +0100, Fabrice Fontaine spake thusly:
> Add libexecinfo optional dependency as upstream rejected the patch to
> add --with-execinfo=no

Indeed, they rejected it, but they suggested an alternate solution:
check for backtrace() and whether it requires -lexecinfo.

Something like:

    AC_SEARCH_LIBS(
        [backtrace],
        [execinfo],
        ,
        [AC_MSG_ERROR([backtrace() not found and no library provides it; maybe install libexecinfo])]
    )

Regards,
Yann E. MORIN.

> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> Changes v1 -> v2 (after review of Yann E. Morin):
>  - Add missing local patch
> 
>  ...igure.ac-add-without-execinfo-option.patch | 55 -------------------
>  package/openipmi/openipmi.mk                  |  6 +-
>  2 files changed, 5 insertions(+), 56 deletions(-)
>  delete mode 100644 package/openipmi/0002-configure.ac-add-without-execinfo-option.patch
> 
> diff --git a/package/openipmi/0002-configure.ac-add-without-execinfo-option.patch b/package/openipmi/0002-configure.ac-add-without-execinfo-option.patch
> deleted file mode 100644
> index e1838a06f4..0000000000
> --- a/package/openipmi/0002-configure.ac-add-without-execinfo-option.patch
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -From 388033e3d0129510c3884333bc428cefeb75e0b8 Mon Sep 17 00:00:00 2001
> -From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> -Date: Mon, 3 Jan 2022 23:27:21 +0100
> -Subject: [PATCH] configure.ac: add --without-execinfo option
> -
> -Add an option to allow the user to disable execinfo to avoid the
> -following build failure on musl with
> -https://github.com/mikroskeem/libexecinfo:
> -
> -/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-musl/10.3.0/../../../../x86_64-buildroot-linux-musl/bin/ld: /home/buildroot/autobuild/instance-3/output-1/build/openipmi-2.0.28/utils/.libs/libOpenIPMIutils.so: undefined reference to `backtrace'
> -
> -Fixes:
> - - http://autobuild.buildroot.org/results/dcc33c5cca97d538231647a94212450f043974b3
> -
> -Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> -[Upstream status: https://sourceforge.net/p/openipmi/patches/36]
> ----
> - configure.ac | 14 +++++++++++++-
> - 1 file changed, 13 insertions(+), 1 deletion(-)
> -
> -diff --git a/configure.ac b/configure.ac
> -index 607864b9..f369166f 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -77,6 +77,16 @@ AC_ARG_WITH(poptlibs,
> -     POPTLIBS="$withval"
> - )
> - 
> -+tryexecinfo=yes
> -+AC_ARG_WITH(execinfo,
> -+[  --with-execinfo[[=yes|no]]      Look for execinfo.],
> -+    if test "x$withval" = "xyes"; then
> -+      tryexecinfo=yes
> -+    elif test "x$withval" = "xno"; then
> -+      tryexecinfo=no
> -+    fi,
> -+)
> -+
> - # If UCD SNMP requires OpenSSL, this tells where to find the crypto lib
> - tryopenssl=yes
> - AC_ARG_WITH(openssl,
> -@@ -275,7 +285,9 @@ AM_PROG_CC_C_O
> - AC_PROG_LIBTOOL
> - AC_STDC_HEADERS
> - 
> --AC_CHECK_HEADERS(execinfo.h)
> -+if test "x$tryexecinfo" != "xno"; then
> -+   AC_CHECK_HEADERS(execinfo.h)
> -+fi
> - AC_CHECK_HEADERS([netinet/ether.h])
> - AC_CHECK_HEADERS([sys/ethernet.h])
> - 
> --- 
> -2.34.1
> -
> diff --git a/package/openipmi/openipmi.mk b/package/openipmi/openipmi.mk
> index b3a4d90d4b..81492ec131 100644
> --- a/package/openipmi/openipmi.mk
> +++ b/package/openipmi/openipmi.mk
> @@ -15,7 +15,6 @@ OPENIPMI_INSTALL_STAGING = YES
>  OPENIPMI_AUTORECONF = YES
>  OPENIPMI_CONF_ENV = ac_cv_path_pkgprog="$(PKG_CONFIG_HOST_BINARY)"
>  OPENIPMI_CONF_OPTS = \
> -	--with-execinfo=no \
>  	--with-glib=no \
>  	--with-tcl=no \
>  	--with-perl=no \
> @@ -26,6 +25,11 @@ ifeq ($(BR2_PACKAGE_GDBM),y)
>  OPENIPMI_DEPENDENCIES += gdbm
>  endif
>  
> +ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
> +OPENIPMI_DEPENDENCIES += libexecinfo
> +OPENIPMI_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -lexecinfo"
> +endif
> +
>  ifeq ($(BR2_PACKAGE_OPENSSL),y)
>  OPENIPMI_DEPENDENCIES += openssl
>  OPENIPMI_CONF_OPTS += --with-openssl=yes
> -- 
> 2.35.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Thomas Petazzoni Feb. 17, 2023, 3:09 p.m. UTC | #2
On Sun, 30 Oct 2022 18:56:31 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Add libexecinfo optional dependency as upstream rejected the patch to
> add --with-execinfo=no
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> Changes v1 -> v2 (after review of Yann E. Morin):
>  - Add missing local patch

Both applied, thanks!

Thomas
Thomas Petazzoni Feb. 17, 2023, 3:10 p.m. UTC | #3
Hello Yann,

On Sun, 30 Oct 2022 19:20:41 +0100
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Fabrice, All,
> 
> On 2022-10-30 18:56 +0100, Fabrice Fontaine spake thusly:
> > Add libexecinfo optional dependency as upstream rejected the patch to
> > add --with-execinfo=no  
> 
> Indeed, they rejected it, but they suggested an alternate solution:
> check for backtrace() and whether it requires -lexecinfo.
> 
> Something like:
> 
>     AC_SEARCH_LIBS(
>         [backtrace],
>         [execinfo],
>         ,
>         [AC_MSG_ERROR([backtrace() not found and no library provides it; maybe install libexecinfo])]
>     )
> 
> Regards,
> Yann E. MORIN.

Agreed, but for now, Fabrice's patch was good enough, so I applied
as-is. It will certainly be nice if Fabrice has the chance to work on a
better solution using AC_SEARCH_LIBS().

Best regards,

Thomas
diff mbox series

Patch

diff --git a/package/openipmi/0002-configure.ac-add-without-execinfo-option.patch b/package/openipmi/0002-configure.ac-add-without-execinfo-option.patch
deleted file mode 100644
index e1838a06f4..0000000000
--- a/package/openipmi/0002-configure.ac-add-without-execinfo-option.patch
+++ /dev/null
@@ -1,55 +0,0 @@ 
-From 388033e3d0129510c3884333bc428cefeb75e0b8 Mon Sep 17 00:00:00 2001
-From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-Date: Mon, 3 Jan 2022 23:27:21 +0100
-Subject: [PATCH] configure.ac: add --without-execinfo option
-
-Add an option to allow the user to disable execinfo to avoid the
-following build failure on musl with
-https://github.com/mikroskeem/libexecinfo:
-
-/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-musl/10.3.0/../../../../x86_64-buildroot-linux-musl/bin/ld: /home/buildroot/autobuild/instance-3/output-1/build/openipmi-2.0.28/utils/.libs/libOpenIPMIutils.so: undefined reference to `backtrace'
-
-Fixes:
- - http://autobuild.buildroot.org/results/dcc33c5cca97d538231647a94212450f043974b3
-
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
-[Upstream status: https://sourceforge.net/p/openipmi/patches/36]
----
- configure.ac | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 607864b9..f369166f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -77,6 +77,16 @@ AC_ARG_WITH(poptlibs,
-     POPTLIBS="$withval"
- )
- 
-+tryexecinfo=yes
-+AC_ARG_WITH(execinfo,
-+[  --with-execinfo[[=yes|no]]      Look for execinfo.],
-+    if test "x$withval" = "xyes"; then
-+      tryexecinfo=yes
-+    elif test "x$withval" = "xno"; then
-+      tryexecinfo=no
-+    fi,
-+)
-+
- # If UCD SNMP requires OpenSSL, this tells where to find the crypto lib
- tryopenssl=yes
- AC_ARG_WITH(openssl,
-@@ -275,7 +285,9 @@ AM_PROG_CC_C_O
- AC_PROG_LIBTOOL
- AC_STDC_HEADERS
- 
--AC_CHECK_HEADERS(execinfo.h)
-+if test "x$tryexecinfo" != "xno"; then
-+   AC_CHECK_HEADERS(execinfo.h)
-+fi
- AC_CHECK_HEADERS([netinet/ether.h])
- AC_CHECK_HEADERS([sys/ethernet.h])
- 
--- 
-2.34.1
-
diff --git a/package/openipmi/openipmi.mk b/package/openipmi/openipmi.mk
index b3a4d90d4b..81492ec131 100644
--- a/package/openipmi/openipmi.mk
+++ b/package/openipmi/openipmi.mk
@@ -15,7 +15,6 @@  OPENIPMI_INSTALL_STAGING = YES
 OPENIPMI_AUTORECONF = YES
 OPENIPMI_CONF_ENV = ac_cv_path_pkgprog="$(PKG_CONFIG_HOST_BINARY)"
 OPENIPMI_CONF_OPTS = \
-	--with-execinfo=no \
 	--with-glib=no \
 	--with-tcl=no \
 	--with-perl=no \
@@ -26,6 +25,11 @@  ifeq ($(BR2_PACKAGE_GDBM),y)
 OPENIPMI_DEPENDENCIES += gdbm
 endif
 
+ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
+OPENIPMI_DEPENDENCIES += libexecinfo
+OPENIPMI_CONF_ENV += LDFLAGS="$(TARGET_LDFLAGS) -lexecinfo"
+endif
+
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
 OPENIPMI_DEPENDENCIES += openssl
 OPENIPMI_CONF_OPTS += --with-openssl=yes