From: Ankur Dwivedi <adwivedi@marvell.com>
To: <dev@dpdk.org>
Cc: <thomas@monjalon.net>, <jerinj@marvell.com>,
Ankur Dwivedi <adwivedi@marvell.com>
Subject: [PATCH v6 1/2] devtools: move build map changes function
Date: Fri, 15 Dec 2023 12:13:54 +0530 [thread overview]
Message-ID: <20231215064355.1429709-2-adwivedi@marvell.com> (raw)
In-Reply-To: <20231215064355.1429709-1-adwivedi@marvell.com>
This patch moves the build_map_changes function from
check-symbol-change.sh to a new symbol-map-util.sh file. This function
can be used in other scripts by including symbol-map-util.sh file. The
license in check-symbol-change.sh is copied to symbol-map-util.sh.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
---
devtools/check-symbol-change.sh | 76 +-------------------------------
devtools/symbol-map-util.sh | 78 +++++++++++++++++++++++++++++++++
2 files changed, 80 insertions(+), 74 deletions(-)
create mode 100644 devtools/symbol-map-util.sh
diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh
index 8992214ac8..68613f63cc 100755
--- a/devtools/check-symbol-change.sh
+++ b/devtools/check-symbol-change.sh
@@ -2,80 +2,8 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Neil Horman <nhorman@tuxdriver.com>
-build_map_changes()
-{
- local fname="$1"
- local mapdb="$2"
-
- cat "$fname" | awk '
- # Initialize our variables
- BEGIN {map="";sym="";ar="";sec=""; in_sec=0; in_map=0}
-
- # Anything that starts with + or -, followed by an a
- # and ends in the string .map is the name of our map file
- # This may appear multiple times in a patch if multiple
- # map files are altered, and all section/symbol names
- # appearing between a triggering of this rule and the
- # next trigger of this rule are associated with this file
- /[-+] [ab]\/.*\.map/ {map=$2; in_map=1; next}
-
- # The previous rule catches all .map files, anything else
- # indicates we left the map chunk.
- /[-+] [ab]\// {in_map=0}
-
- # Triggering this rule, which starts a line and ends it
- # with a { identifies a versioned section. The section name is
- # the rest of the line with the + and { symbols removed.
- # Triggering this rule sets in_sec to 1, which actives the
- # symbol rule below
- /^.*{/ {
- gsub("+", "");
- if (in_map == 1) {
- sec=$(NF-1); in_sec=1;
- }
- }
-
- # This rule identifies the end of a section, and disables the
- # symbol rule
- /.*}/ {in_sec=0}
-
- # This rule matches on a + followed by any characters except a :
- # (which denotes a global vs local segment), and ends with a ;.
- # The semicolon is removed and the symbol is printed with its
- # association file name and version section, along with an
- # indicator that the symbol is a new addition. Note this rule
- # only works if we have found a version section in the rule
- # above (hence the in_sec check) And found a map file (the
- # in_map check). If we are not in a map chunk, do nothing. If
- # we are in a map chunk but not a section chunk, record it as
- # unknown.
- /^+[^}].*[^:*];/ {gsub(";","");sym=$2;
- if (in_map == 1) {
- if (in_sec == 1) {
- print map " " sym " " sec " add"
- } else {
- print map " " sym " unknown add"
- }
- }
- }
-
- # This is the same rule as above, but the rule matches on a
- # leading - rather than a +, denoting that the symbol is being
- # removed.
- /^-[^}].*[^:*];/ {gsub(";","");sym=$2;
- if (in_map == 1) {
- if (in_sec == 1) {
- print map " " sym " " sec " del"
- } else {
- print map " " sym " unknown del"
- }
- }
- }' > "$mapdb"
-
- sort -u "$mapdb" > "$mapdb.2"
- mv -f "$mapdb.2" "$mapdb"
-
-}
+selfdir=$(dirname $(readlink -f $0))
+. $selfdir/symbol-map-util.sh
is_stable_section() {
[ "$1" != 'EXPERIMENTAL' ] && [ "$1" != 'INTERNAL' ]
diff --git a/devtools/symbol-map-util.sh b/devtools/symbol-map-util.sh
new file mode 100644
index 0000000000..86e4279cdc
--- /dev/null
+++ b/devtools/symbol-map-util.sh
@@ -0,0 +1,78 @@
+#!/bin/sh
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Neil Horman <nhorman@tuxdriver.com>
+
+build_map_changes()
+{
+ local fname="$1"
+ local mapdb="$2"
+
+ cat "$fname" | awk '
+ # Initialize our variables
+ BEGIN {map="";sym="";ar="";sec=""; in_sec=0; in_map=0}
+
+ # Anything that starts with + or -, followed by an a
+ # and ends in the string .map is the name of our map file
+ # This may appear multiple times in a patch if multiple
+ # map files are altered, and all section/symbol names
+ # appearing between a triggering of this rule and the
+ # next trigger of this rule are associated with this file
+ /[-+] [ab]\/.*\.map/ {map=$2; in_map=1; next}
+
+ # The previous rule catches all .map files, anything else
+ # indicates we left the map chunk.
+ /[-+] [ab]\// {in_map=0}
+
+ # Triggering this rule, which starts a line and ends it
+ # with a { identifies a versioned section. The section name is
+ # the rest of the line with the + and { symbols removed.
+ # Triggering this rule sets in_sec to 1, which actives the
+ # symbol rule below
+ /^.*{/ {
+ gsub("+", "");
+ if (in_map == 1) {
+ sec=$(NF-1); in_sec=1;
+ }
+ }
+
+ # This rule identifies the end of a section, and disables the
+ # symbol rule
+ /.*}/ {in_sec=0}
+
+ # This rule matches on a + followed by any characters except a :
+ # (which denotes a global vs local segment), and ends with a ;.
+ # The semicolon is removed and the symbol is printed with its
+ # association file name and version section, along with an
+ # indicator that the symbol is a new addition. Note this rule
+ # only works if we have found a version section in the rule
+ # above (hence the in_sec check) And found a map file (the
+ # in_map check). If we are not in a map chunk, do nothing. If
+ # we are in a map chunk but not a section chunk, record it as
+ # unknown.
+ /^+[^}].*[^:*];/ {gsub(";","");sym=$2;
+ if (in_map == 1) {
+ if (in_sec == 1) {
+ print map " " sym " " sec " add"
+ } else {
+ print map " " sym " unknown add"
+ }
+ }
+ }
+
+ # This is the same rule as above, but the rule matches on a
+ # leading - rather than a +, denoting that the symbol is being
+ # removed.
+ /^-[^}].*[^:*];/ {gsub(";","");sym=$2;
+ if (in_map == 1) {
+ if (in_sec == 1) {
+ print map " " sym " " sec " del"
+ } else {
+ print map " " sym " unknown del"
+ }
+ }
+ }' > "$mapdb"
+
+ sort -u "$mapdb" > "$mapdb.2"
+ mv -f "$mapdb.2" "$mapdb"
+
+}
--
2.25.1
next prev parent reply other threads:[~2023-12-15 6:44 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-12 9:23 [PATCH] devtools: add tracepoint check in checkpatch Ankur Dwivedi
2022-10-12 11:45 ` [PATCH v2] " Ankur Dwivedi
2022-10-12 13:08 ` Thomas Monjalon
2022-10-12 15:16 ` [EXT] " Ankur Dwivedi
2022-10-12 16:19 ` Thomas Monjalon
2022-10-15 12:58 ` [PATCH v3 0/2] " Ankur Dwivedi
2022-10-15 12:58 ` [PATCH v3 1/2] devtools: move build symbol map function Ankur Dwivedi
2022-10-15 12:58 ` [PATCH v3 2/2] devtools: add tracepoint check in checkpatch Ankur Dwivedi
2022-11-02 4:08 ` [PATCH v3 0/2] " Ankur Dwivedi
2023-03-03 15:58 ` [PATCH v4 " Ankur Dwivedi
2023-03-03 15:58 ` [PATCH v4 1/2] devtools: move build symbol map function Ankur Dwivedi
2023-03-03 15:58 ` [PATCH v4 2/2] devtools: add tracepoint check in checkpatch Ankur Dwivedi
2023-03-07 12:05 ` [PATCH v5 0/1] " Ankur Dwivedi
2023-03-07 12:05 ` [PATCH v5 1/1] " Ankur Dwivedi
2023-05-18 13:45 ` Ankur Dwivedi
2023-05-18 15:33 ` Stephen Hemminger
2023-08-21 13:53 ` [EXT] " Ankur Dwivedi
2023-08-21 14:46 ` Morten Brørup
2023-08-30 16:23 ` Thomas Monjalon
2023-08-30 18:38 ` Morten Brørup
2023-09-01 2:32 ` Jerin Jacob
2023-09-01 7:28 ` Thomas Monjalon
2023-11-14 13:15 ` Ankur Dwivedi
2023-11-28 13:18 ` [PATCH v5 0/1] " Thomas Monjalon
2023-11-28 14:07 ` [EXT] " Ankur Dwivedi
2023-11-28 15:55 ` Thomas Monjalon
2023-11-30 5:56 ` Ankur Dwivedi
2023-11-30 8:40 ` Thomas Monjalon
2023-11-30 13:16 ` Ankur Dwivedi
2023-12-15 6:43 ` [PATCH v6 0/2] " Ankur Dwivedi
2023-12-15 6:43 ` Ankur Dwivedi [this message]
2023-12-15 6:43 ` [PATCH v6 2/2] " Ankur Dwivedi
2024-07-17 12:09 ` [PATCH v6 0/2] " Ankur Dwivedi
2024-10-08 0:40 ` Stephen Hemminger
2024-10-09 6:03 ` [EXTERNAL] " Ankur Dwivedi
2024-10-09 15:05 ` Stephen Hemminger
2024-10-21 14:06 ` Ankur Dwivedi
2024-11-05 7:06 ` Ankur Dwivedi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231215064355.1429709-2-adwivedi@marvell.com \
--to=adwivedi@marvell.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).