[v2,2/2] devtools: list symbols by version
Checks
Commit Message
Make it easier to list experimental symbols added in a certain version.
Example:
$ ./buildtools/map-list-symbol.sh -V 18.11 lib/eal/version.map
lib/eal/version.map EXPERIMENTAL rte_dev_event_callback_process
lib/eal/version.map EXPERIMENTAL rte_dev_hotplug_handle_disable
lib/eal/version.map EXPERIMENTAL rte_dev_hotplug_handle_enable
Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
---
buildtools/map-list-symbol.sh | 39 ++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 14 deletions(-)
@@ -6,7 +6,7 @@ section=all
symbol=all
quiet=
-while getopts 'S:s:q' name; do
+while getopts 'S:s:qV:' name; do
case $name in
S)
[ $section = 'all' ] || {
@@ -25,8 +25,11 @@ while getopts 'S:s:q' name; do
q)
quiet='y'
;;
+ V)
+ version=$OPTARG
+ ;;
?)
- echo 'usage: $0 [-S section] [-s symbol] [-q]'
+ echo 'usage: $0 [-S section] [-s symbol] [-V version] [-q]'
exit 1
;;
esac
@@ -38,7 +41,8 @@ for file in $@; do
cat "$file" |awk '
BEGIN {
current_section = "";
- if ("'$section'" == "all" && "'$symbol'" == "all") {
+ current_version = "";
+ if ("'$section'" == "all" && "'$symbol'" == "all" && "'$version'" == "") {
ret = 0;
} else {
ret = 1;
@@ -49,18 +53,25 @@ for file in $@; do
current_section = $1;
}
}
- /.*}/ { current_section = ""; }
+ /.*}/ { current_section = ""; current_version = ""; }
+ /^\t# added in / {
+ current_version=$4;
+ }
/^[^}].*[^:*];/ {
- if (current_section != "") {
- gsub(";","");
- if ("'$symbol'" == "all" || $1 == "'$symbol'") {
- ret = 0;
- if ("'$quiet'" == "") {
- print "'$file' "current_section" "$1;
- }
- if ("'$symbol'" != "all") {
- exit 0;
- }
+ if (current_section == "") {
+ next;
+ }
+ if ("'$version'" != "" && "'$version'" != current_version) {
+ next;
+ }
+ gsub(";","");
+ if ("'$symbol'" == "all" || $1 == "'$symbol'") {
+ ret = 0;
+ if ("'$quiet'" == "") {
+ print "'$file' "current_section" "$1;
+ }
+ if ("'$symbol'" != "all") {
+ exit 0;
}
}
}