DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ankur Dwivedi <adwivedi@marvell.com>
To: <dev@dpdk.org>
Cc: <thomas@monjalon.net>, <david.marchand@redhat.com>,
	<gakhil@marvell.com>,  <royzhang1980@gmail.com>,
	<amitprakashs@marvell.com>, <jerinj@marvell.com>,
	Ankur Dwivedi <adwivedi@marvell.com>
Subject: [PATCH v3 1/2] devtools: move build symbol map function
Date: Sat, 15 Oct 2022 18:28:25 +0530	[thread overview]
Message-ID: <20221015125826.27760-2-adwivedi@marvell.com> (raw)
In-Reply-To: <20221015125826.27760-1-adwivedi@marvell.com>

This patch moves the build_map_changes function from
check-symbol-change.sh to a new build-symbol-map.sh file.
This function can be used in other scripts by including
build-symbol-map.sh file.

Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com>
---
 devtools/build-symbol-map.sh    | 77 +++++++++++++++++++++++++++++++++
 devtools/check-symbol-change.sh | 76 +-------------------------------
 2 files changed, 79 insertions(+), 74 deletions(-)
 create mode 100644 devtools/build-symbol-map.sh

diff --git a/devtools/build-symbol-map.sh b/devtools/build-symbol-map.sh
new file mode 100644
index 0000000000..c88e949890
--- /dev/null
+++ b/devtools/build-symbol-map.sh
@@ -0,0 +1,77 @@
+#!/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"
+}
diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh
index 8992214ac8..874afa2632 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/build-symbol-map.sh
 
 is_stable_section() {
 	[ "$1" != 'EXPERIMENTAL' ] && [ "$1" != 'INTERNAL' ]
-- 
2.28.0


  reply	other threads:[~2022-10-15 12:59 UTC|newest]

Thread overview: 32+ 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     ` Ankur Dwivedi [this message]
2022-10-15 12:58     ` [PATCH v3 2/2] " 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           ` [PATCH v6 1/2] devtools: move build map changes function Ankur Dwivedi
2023-12-15  6:43           ` [PATCH v6 2/2] devtools: add tracepoint check in checkpatch 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=20221015125826.27760-2-adwivedi@marvell.com \
    --to=adwivedi@marvell.com \
    --cc=amitprakashs@marvell.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=gakhil@marvell.com \
    --cc=jerinj@marvell.com \
    --cc=royzhang1980@gmail.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).