build: detect execinfo library on Linux
The library execinfo and its header file can be installed on Alpine Linux where the backtrace feature is not part of musl libc: apk add libexecinfo-dev As a consequence, this library should not be restricted to BSD only. At the same time, the library and header are detected once and added globally to be linked with any application, internal or external. Fixes: 9065b1fac65f ("build: fix dependency on execinfo for BSD meson builds") Cc: stable@dpdk.org Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: David Marchand <david.marchand@redhat.com>
This commit is contained in:
parent
e1ab26df48
commit
1cd512b2f5
@ -21,9 +21,6 @@ apps = [
|
||||
'test-regex',
|
||||
'test-sad']
|
||||
|
||||
# for BSD only
|
||||
lib_execinfo = cc.find_library('execinfo', required: false)
|
||||
|
||||
default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
|
||||
default_ldflags = []
|
||||
if get_option('default_library') == 'static' and not is_windows
|
||||
@ -53,7 +50,6 @@ foreach app:apps
|
||||
dep_objs += get_variable(get_option('default_library')
|
||||
+ '_rte_' + d)
|
||||
endforeach
|
||||
dep_objs += lib_execinfo
|
||||
|
||||
link_libs = []
|
||||
if get_option('default_library') == 'static'
|
||||
|
@ -426,7 +426,6 @@ foreach d:test_deps
|
||||
def_lib = get_option('default_library')
|
||||
test_dep_objs += get_variable(def_lib + '_rte_' + d)
|
||||
endforeach
|
||||
test_dep_objs += cc.find_library('execinfo', required: false)
|
||||
|
||||
link_libs = []
|
||||
if get_option('default_library') == 'static'
|
||||
|
@ -125,11 +125,8 @@ if cc.find_library('m', required : false).found()
|
||||
dpdk_extra_ldflags += '-lm'
|
||||
endif
|
||||
|
||||
# for linux link against dl, for bsd execinfo
|
||||
if is_linux
|
||||
link_lib = 'dl'
|
||||
elif is_freebsd
|
||||
link_lib = 'execinfo'
|
||||
else
|
||||
link_lib = ''
|
||||
endif
|
||||
@ -166,6 +163,12 @@ if fdt_dep.found() and cc.has_header('fdt.h')
|
||||
dpdk_extra_ldflags += '-lfdt'
|
||||
endif
|
||||
|
||||
libexecinfo = cc.find_library('libexecinfo', required: false)
|
||||
if libexecinfo.found() and cc.has_header('execinfo.h')
|
||||
add_project_link_arguments('-lexecinfo', language: 'c')
|
||||
dpdk_extra_ldflags += '-lexecinfo'
|
||||
endif
|
||||
|
||||
# check for libbsd
|
||||
libbsd = dependency('libbsd', required: false, method: 'pkg-config')
|
||||
if libbsd.found()
|
||||
|
@ -6,8 +6,6 @@ if get_option('default_library') == 'static'
|
||||
link_whole_libs = dpdk_static_libraries + dpdk_drivers
|
||||
endif
|
||||
|
||||
execinfo = cc.find_library('execinfo', required: false)
|
||||
|
||||
# list of all example apps. Keep 1-3 per line, in alphabetical order.
|
||||
all_examples = [
|
||||
'bbdev_app', 'bond',
|
||||
@ -82,7 +80,7 @@ foreach example: examples
|
||||
cflags = default_cflags
|
||||
ldflags = default_ldflags
|
||||
|
||||
ext_deps = [execinfo]
|
||||
ext_deps = []
|
||||
includes = [include_directories(example)]
|
||||
deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
|
||||
subdir(example)
|
||||
|
Loading…
x
Reference in New Issue
Block a user