build: detect backtrace availability

Message ID 20230108095920.327672-1-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series build: detect backtrace availability |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/intel-Testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-abi-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS

Commit Message

Thomas Monjalon Jan. 8, 2023, 9:59 a.m. UTC
  Backtrace dump is available:
	- always on Windows
	- on Linux/BSD if execinfo.h is available (not anymore on Alpine)

The flag RTE_BACKTRACE was set unconditionnaly in rte_config.h.
It is now set only if the feature is available.

Note: Alpine Linux has decided to remove libexecinfo support,
so this change will allow to compile DPDK on recent Alpine Linux.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 config/meson.build                | 3 ++-
 config/rte_config.h               | 1 -
 doc/guides/linux_gsg/sys_reqs.rst | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
  

Comments

Bruce Richardson Jan. 9, 2023, 9:08 a.m. UTC | #1
On Sun, Jan 08, 2023 at 10:59:20AM +0100, Thomas Monjalon wrote:
> Backtrace dump is available:
> 	- always on Windows
> 	- on Linux/BSD if execinfo.h is available (not anymore on Alpine)
> 
> The flag RTE_BACKTRACE was set unconditionnaly in rte_config.h.
> It is now set only if the feature is available.
> 
> Note: Alpine Linux has decided to remove libexecinfo support,
> so this change will allow to compile DPDK on recent Alpine Linux.
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---

Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  
Thomas Monjalon Feb. 2, 2023, 9:54 p.m. UTC | #2
09/01/2023 10:08, Bruce Richardson:
> On Sun, Jan 08, 2023 at 10:59:20AM +0100, Thomas Monjalon wrote:
> > Backtrace dump is available:
> > 	- always on Windows
> > 	- on Linux/BSD if execinfo.h is available (not anymore on Alpine)
> > 
> > The flag RTE_BACKTRACE was set unconditionnaly in rte_config.h.
> > It is now set only if the feature is available.
> > 
> > Note: Alpine Linux has decided to remove libexecinfo support,
> > so this change will allow to compile DPDK on recent Alpine Linux.
> > 
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> 
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>

Applied
  

Patch

diff --git a/config/meson.build b/config/meson.build
index 80564eec52..0c4d1f06e5 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -200,10 +200,11 @@  if fdt_dep.found() and cc.has_header('fdt.h')
 endif
 
 libexecinfo = cc.find_library('libexecinfo', required: false)
-if libexecinfo.found() and cc.has_header('execinfo.h')
+if libexecinfo.found()
     add_project_link_arguments('-lexecinfo', language: 'c')
     dpdk_extra_ldflags += '-lexecinfo'
 endif
+dpdk_conf.set('RTE_BACKTRACE', cc.has_header('execinfo.h') or is_windows)
 
 libarchive = dependency('libarchive', required: false, method: 'pkg-config')
 if libarchive.found()
diff --git a/config/rte_config.h b/config/rte_config.h
index 3c4876d434..7b8c85e948 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -37,7 +37,6 @@ 
 #define RTE_MAX_MEMZONE 2560
 #define RTE_MAX_TAILQ 32
 #define RTE_LOG_DP_LEVEL RTE_LOG_INFO
-#define RTE_BACKTRACE 1
 #define RTE_MAX_VFIO_CONTAINERS 64
 
 /* bsd module defines */
diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
index e4f9b41251..2a7988cf46 100644
--- a/doc/guides/linux_gsg/sys_reqs.rst
+++ b/doc/guides/linux_gsg/sys_reqs.rst
@@ -32,7 +32,7 @@  Compilation of the DPDK
 
     * For RHEL/Fedora systems these can be installed using ``dnf groupinstall "Development Tools"``
     * For Ubuntu/Debian systems these can be installed using ``apt install build-essential``
-    * For Alpine Linux, ``apk add alpine-sdk bsd-compat-headers libexecinfo-dev``
+    * For Alpine Linux, ``apk add alpine-sdk bsd-compat-headers``
 
 .. note::