* [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson
@ 2019-10-08 14:36 Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 1/3] check-experimental-syms: remove use of environmental var Bruce Richardson
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Bruce Richardson @ 2019-10-08 14:36 UTC (permalink / raw)
To: dev; +Cc: thomas, Neil Horman, bluca, ray.kinsella, Bruce Richardson
The meson builds were missing support for scanning experimental symbols
in the .o/.a files and matching that against those tagged as
experimental in the version file. This set adds that missing support.
Bruce Richardson (3):
check-experimental-syms: remove use of environmental var
lib: add experimental symbols check to meson build
drivers: process shared lib link dependencies as for libs
buildtools/check-experimental-syms.sh | 2 +-
buildtools/meson.build | 2 ++
drivers/meson.build | 27 +++++++++++++++++++++++++--
lib/meson.build | 12 +++++++++++-
4 files changed, 39 insertions(+), 4 deletions(-)
--
2.21.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH 1/3] check-experimental-syms: remove use of environmental var
2019-10-08 14:36 [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Bruce Richardson
@ 2019-10-08 14:36 ` Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 2/3] lib: add experimental symbols check to meson build Bruce Richardson
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Bruce Richardson @ 2019-10-08 14:36 UTC (permalink / raw)
To: dev; +Cc: thomas, Neil Horman, bluca, ray.kinsella, Bruce Richardson
The check-experimental-syms.sh script was finding the map-list-symbol.sh
script using $RTE_SDK, which is the variable set when using the "make"
build system. To make this script more independent, we just use the current
path of the script as the location to find its companion script.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
buildtools/check-experimental-syms.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/buildtools/check-experimental-syms.sh b/buildtools/check-experimental-syms.sh
index 0f6c62dbe..a95de33b1 100755
--- a/buildtools/check-experimental-syms.sh
+++ b/buildtools/check-experimental-syms.sh
@@ -5,7 +5,7 @@
MAPFILE=$1
OBJFILE=$2
-LIST_SYMBOL=$RTE_SDK/buildtools/map-list-symbol.sh
+LIST_SYMBOL=$(dirname $(readlink -f $0))/map-list-symbol.sh
# added check for "make -C test/" usage
if [ ! -e $MAPFILE ] || [ ! -f $OBJFILE ]
--
2.21.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH 2/3] lib: add experimental symbols check to meson build
2019-10-08 14:36 [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 1/3] check-experimental-syms: remove use of environmental var Bruce Richardson
@ 2019-10-08 14:36 ` Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 3/3] drivers: process shared lib link dependencies as for libs Bruce Richardson
2019-10-09 8:17 ` [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Luca Boccassi
3 siblings, 0 replies; 7+ messages in thread
From: Bruce Richardson @ 2019-10-08 14:36 UTC (permalink / raw)
To: dev; +Cc: thomas, Neil Horman, bluca, ray.kinsella, Bruce Richardson
Call check-experimental-syms.sh script as part of the meson build to ensure
that all functions are correctly tagged.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
buildtools/meson.build | 2 ++
lib/meson.build | 12 +++++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/buildtools/meson.build b/buildtools/meson.build
index 32c79c130..8d0b9e0cd 100644
--- a/buildtools/meson.build
+++ b/buildtools/meson.build
@@ -5,6 +5,8 @@ subdir('pmdinfogen')
pmdinfo = find_program('gen-pmdinfo-cfile.sh')
+check_experimental_syms = find_program('check-experimental-syms.sh')
+
# set up map-to-def script using python, either built-in or external
python3 = import('python').find_installation(required: false)
if python3.found()
diff --git a/lib/meson.build b/lib/meson.build
index e5ff83893..5be5c8559 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -128,11 +128,21 @@ foreach l:libraries
command: [map_to_def_cmd, '@INPUT@', '@OUTPUT@'],
input: version_map,
output: 'rte_@0@_exports.def'.format(name))
+ lk_deps = [version_map, def_file]
if is_windows
lk_args = ['-Wl,/def:' + def_file.full_path(),
'-Wl,/implib:lib\\' + implib]
else
lk_args = ['-Wl,--version-script=' + version_map]
+ # on unix systems check the output of the
+ # experimental syms script, using it as a
+ # dependency of the .so build
+ lk_deps += custom_target(name + '.exp_chk',
+ command: [check_experimental_syms,
+ version_map, '@INPUT@'],
+ capture: true,
+ input: static_lib,
+ output: name + '.exp_chk')
endif
shared_lib = shared_library(libname,
@@ -142,7 +152,7 @@ foreach l:libraries
dependencies: shared_deps,
include_directories: includes,
link_args: lk_args,
- link_depends: [version_map, def_file],
+ link_depends: lk_deps,
version: lib_version,
soversion: so_version,
install: true)
--
2.21.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH 3/3] drivers: process shared lib link dependencies as for libs
2019-10-08 14:36 [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 1/3] check-experimental-syms: remove use of environmental var Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 2/3] lib: add experimental symbols check to meson build Bruce Richardson
@ 2019-10-08 14:36 ` Bruce Richardson
2019-10-09 8:17 ` [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Luca Boccassi
3 siblings, 0 replies; 7+ messages in thread
From: Bruce Richardson @ 2019-10-08 14:36 UTC (permalink / raw)
To: dev; +Cc: thomas, Neil Horman, bluca, ray.kinsella, Bruce Richardson
For the public APIs of DPDK libraries we run checks for correct use of
experimental tags, and also do dynamic generation of the version file to
its window's equivalent. Although must drivers don't export APIs, some do,
so these checks are relevant and should be copied from lib/meson.build to
drivers/meson.build.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
drivers/meson.build | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/drivers/meson.build b/drivers/meson.build
index 2ed2e9541..fd5a8aa59 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -131,14 +131,37 @@ foreach class:dpdk_driver_classes
version_map = '@0@/@1@/@2@_version.map'.format(
meson.current_source_dir(),
drv_path, lib_name)
+ implib = dir_name + '.dll.a'
+
+ def_file = custom_target(lib_name + '_def',
+ command: [map_to_def_cmd, '@INPUT@', '@OUTPUT@'],
+ input: version_map,
+ output: '@0@_exports.def'.format(lib_name))
+ lk_deps = [version_map, def_file]
+ if is_windows
+ lk_args = ['-Wl,/def:' + def_file.full_path(),
+ '-Wl,/implib:lib\\' + implib]
+ else
+ lk_args = ['-Wl,--version-script=' + version_map]
+ # on unix systems check the output of the
+ # experimental syms script, using it as a
+ # dependency of the .so build
+ lk_deps += custom_target(lib_name + '.exp_chk',
+ command: [check_experimental_syms,
+ version_map, '@INPUT@'],
+ capture: true,
+ input: static_lib,
+ output: lib_name + '.exp_chk')
+ endif
+
shared_lib = shared_library(lib_name,
sources,
objects: objs,
include_directories: includes,
dependencies: shared_objs,
c_args: cflags,
- link_args: '-Wl,--version-script=' + version_map,
- link_depends: version_map,
+ link_args: lk_args,
+ link_depends: lk_deps,
version: lib_version,
soversion: so_version,
install: true,
--
2.21.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson
2019-10-08 14:36 [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Bruce Richardson
` (2 preceding siblings ...)
2019-10-08 14:36 ` [dpdk-dev] [PATCH 3/3] drivers: process shared lib link dependencies as for libs Bruce Richardson
@ 2019-10-09 8:17 ` Luca Boccassi
2019-11-09 20:23 ` Thomas Monjalon
3 siblings, 1 reply; 7+ messages in thread
From: Luca Boccassi @ 2019-10-09 8:17 UTC (permalink / raw)
To: Bruce Richardson, dev; +Cc: thomas, Neil Horman, ray.kinsella
On Tue, 2019-10-08 at 15:36 +0100, Bruce Richardson wrote:
> The meson builds were missing support for scanning experimental
> symbols
> in the .o/.a files and matching that against those tagged as
> experimental in the version file. This set adds that missing support.
>
> Bruce Richardson (3):
> check-experimental-syms: remove use of environmental var
> lib: add experimental symbols check to meson build
> drivers: process shared lib link dependencies as for libs
>
> buildtools/check-experimental-syms.sh | 2 +-
> buildtools/meson.build | 2 ++
> drivers/meson.build | 27
> +++++++++++++++++++++++++--
> lib/meson.build | 12 +++++++++++-
> 4 files changed, 39 insertions(+), 4 deletions(-)
Series-acked-by: Luca Boccassi <bluca@debian.org>
--
Kind regards,
Luca Boccassi
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson
2019-10-09 8:17 ` [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Luca Boccassi
@ 2019-11-09 20:23 ` Thomas Monjalon
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2019-11-09 20:23 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev, Luca Boccassi, Neil Horman, ray.kinsella
09/10/2019 10:17, Luca Boccassi:
> On Tue, 2019-10-08 at 15:36 +0100, Bruce Richardson wrote:
> > The meson builds were missing support for scanning experimental
> > symbols
> > in the .o/.a files and matching that against those tagged as
> > experimental in the version file. This set adds that missing support.
> >
> > Bruce Richardson (3):
> > check-experimental-syms: remove use of environmental var
> > lib: add experimental symbols check to meson build
> > drivers: process shared lib link dependencies as for libs
> >
>
> Series-acked-by: Luca Boccassi <bluca@debian.org>
Applied, thanks
^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson
@ 2019-10-08 14:36 Bruce Richardson
0 siblings, 0 replies; 7+ messages in thread
From: Bruce Richardson @ 2019-10-08 14:36 UTC (permalink / raw)
To: dev; +Cc: thomas, Neil Horman, bluca, ray.kinsella, Bruce Richardson
The meson builds were missing support for scanning experimental symbols
in the .o/.a files and matching that against those tagged as
experimental in the version file. This set adds that missing support.
Bruce Richardson (3):
check-experimental-syms: remove use of environmental var
lib: add experimental symbols check to meson build
drivers: process shared lib link dependencies as for libs
buildtools/check-experimental-syms.sh | 2 +-
buildtools/meson.build | 2 ++
drivers/meson.build | 27 +++++++++++++++++++++++++--
lib/meson.build | 12 +++++++++++-
4 files changed, 39 insertions(+), 4 deletions(-)
--
2.21.0
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-11-09 20:23 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-08 14:36 [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 1/3] check-experimental-syms: remove use of environmental var Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 2/3] lib: add experimental symbols check to meson build Bruce Richardson
2019-10-08 14:36 ` [dpdk-dev] [PATCH 3/3] drivers: process shared lib link dependencies as for libs Bruce Richardson
2019-10-09 8:17 ` [dpdk-dev] [PATCH 0/3] Add scanning for experimental symbols to meson Luca Boccassi
2019-11-09 20:23 ` Thomas Monjalon
-- strict thread matches above, loose matches on Subject: below --
2019-10-08 14:36 Bruce Richardson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).