Re: [PATCH] ver_linux: Eliminate duplicate code in ldconfig processing logic

2021-01-21 Thread Alexander Kapshuk
On Fri, Jan 8, 2021 at 1:26 PM Alexander Kapshuk
 wrote:
>
> The code that acquires the version strings for libc and libcpp is
> identical, as is the printversion call. The only difference being the
> name of the library being printed.
>
> Refactor the code by unifying the bits that are common to both libraries.
>
> Signed-off-by: Alexander Kapshuk 
> ---
>  scripts/ver_linux | 12 +---
>  1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/scripts/ver_linux b/scripts/ver_linux
> index 0968a3070eff..a92acc703f9b 100755
> --- a/scripts/ver_linux
> +++ b/scripts/ver_linux
> @@ -15,7 +15,7 @@ BEGIN {
>
> vernum = "[0-9]+([.]?[0-9]+)+"
> libc = "libc[.]so[.][0-9]+$"
> -   libcpp = "(libg|stdc)[+]+[.]so[.][0-9]+$"
> +   libcpp = "(libg|stdc)[+]+[.]so([.][0-9]+)+$"
>
> printversion("GNU C", version("gcc -dumpversion"))
> printversion("GNU Make", version("make --version"))
> @@ -37,12 +37,10 @@ BEGIN {
> printversion("Bison", version("bison --version"))
> printversion("Flex", version("flex --version"))
>
> -   while ("ldconfig -p 2>/dev/null" | getline > 0) {
> -   if ($NF ~ libc && !seen[ver = version("readlink " $NF)]++)
> -   printversion("Linux C Library", ver)
> -   else if ($NF ~ libcpp && !seen[ver = version("readlink " 
> $NF)]++)
> -   printversion("Linux C++ Library", ver)
> -   }
> +   while ("ldconfig -p 2>/dev/null" | getline > 0)
> +   if ($NF ~ libc || $NF ~ libcpp)
> +   if (!seen[ver = version("readlink " $NF)]++)
> +   printversion("Linux C" ($NF ~ libcpp? "++" : 
> "") " Library", ver)
>
> printversion("Dynamic linker (ldd)", version("ldd --version"))
> printversion("Procps", version("ps --version"))
> --
> 2.30.0
>

I'd appreciate getting some feedback on the patch in question at your
convenience.


[PATCH] ver_linux: Eliminate duplicate code in ldconfig processing logic

2021-01-08 Thread Alexander Kapshuk
The code that acquires the version strings for libc and libcpp is
identical, as is the printversion call. The only difference being the
name of the library being printed.

Refactor the code by unifying the bits that are common to both libraries.

Signed-off-by: Alexander Kapshuk 
---
 scripts/ver_linux | 12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/scripts/ver_linux b/scripts/ver_linux
index 0968a3070eff..a92acc703f9b 100755
--- a/scripts/ver_linux
+++ b/scripts/ver_linux
@@ -15,7 +15,7 @@ BEGIN {

vernum = "[0-9]+([.]?[0-9]+)+"
libc = "libc[.]so[.][0-9]+$"
-   libcpp = "(libg|stdc)[+]+[.]so[.][0-9]+$"
+   libcpp = "(libg|stdc)[+]+[.]so([.][0-9]+)+$"

printversion("GNU C", version("gcc -dumpversion"))
printversion("GNU Make", version("make --version"))
@@ -37,12 +37,10 @@ BEGIN {
printversion("Bison", version("bison --version"))
printversion("Flex", version("flex --version"))

-   while ("ldconfig -p 2>/dev/null" | getline > 0) {
-   if ($NF ~ libc && !seen[ver = version("readlink " $NF)]++)
-   printversion("Linux C Library", ver)
-   else if ($NF ~ libcpp && !seen[ver = version("readlink " 
$NF)]++)
-   printversion("Linux C++ Library", ver)
-   }
+   while ("ldconfig -p 2>/dev/null" | getline > 0)
+   if ($NF ~ libc || $NF ~ libcpp)
+   if (!seen[ver = version("readlink " $NF)]++)
+   printversion("Linux C" ($NF ~ libcpp? "++" : 
"") " Library", ver)

printversion("Dynamic linker (ldd)", version("ldd --version"))
printversion("Procps", version("ps --version"))
--
2.30.0