2022-12-13 18:51:02

by Christophe Leroy

[permalink] [raw]
Subject: [PATCH] [BACKPORT FOR 4.14] libtraceevent: Fix build with binutils 2.35

From: Ben Hutchings <[email protected]>

[upstream commit 39efdd94e314336f4acbac4c07e0f37bdc3bef71]

In binutils 2.35, 'nm -D' changed to show symbol versions along with
symbol names, with the usual @@ separator. When generating
libtraceevent-dynamic-list we need just the names, so strip off the
version suffix if present.

Signed-off-by: Ben Hutchings <[email protected]>
Tested-by: Salvatore Bonaccorso <[email protected]>
Reviewed-by: Steven Rostedt <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
Signed-off-by: Christophe Leroy <[email protected]>
---
tools/lib/traceevent/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/lib/traceevent/Makefile b/tools/lib/traceevent/Makefile
index a0ac01c647f5..2d6989f8a87c 100644
--- a/tools/lib/traceevent/Makefile
+++ b/tools/lib/traceevent/Makefile
@@ -263,7 +263,7 @@ define do_generate_dynamic_list_file
xargs echo "U w W" | tr 'w ' 'W\n' | sort -u | xargs echo`;\
if [ "$$symbol_type" = "U W" ];then \
(echo '{'; \
- $(NM) -u -D $1 | awk 'NF>1 {print "\t"$$2";"}' | sort -u;\
+ $(NM) -u -D $1 | awk 'NF>1 {sub("@.*", "", $$2); print "\t"$$2";"}' | sort -u;\
echo '};'; \
) > $2; \
else \
--
2.38.1


2022-12-13 20:47:05

by Segher Boessenkool

[permalink] [raw]
Subject: Re: [PATCH] [BACKPORT FOR 4.14] libtraceevent: Fix build with binutils 2.35

On Tue, Dec 13, 2022 at 07:03:07PM +0100, Christophe Leroy wrote:
> In binutils 2.35, 'nm -D' changed to show symbol versions along with
> symbol names, with the usual @@ separator.

2.37 instead? And --without-symbol-versions is there to restore the
old behaviour. The script is parsing the output already so this patch
is simpler maybe, but :-)


Segher

2022-12-14 15:48:27

by Christophe Leroy

[permalink] [raw]
Subject: Re: [PATCH] [BACKPORT FOR 4.14] libtraceevent: Fix build with binutils 2.35



Le 13/12/2022 à 21:25, Segher Boessenkool a écrit :
> On Tue, Dec 13, 2022 at 07:03:07PM +0100, Christophe Leroy wrote:
>> In binutils 2.35, 'nm -D' changed to show symbol versions along with
>> symbol names, with the usual @@ separator.
>
> 2.37 instead? And --without-symbol-versions is there to restore the
> old behaviour. The script is parsing the output already so this patch
> is simpler maybe, but :-)
>

Do you mean that the original commit from Ben should have done it
differently ?

My patch is only a backport of original commit 39efdd94e314
("libtraceevent: Fix build with binutils 2.35") due to Makefile being at
a different place in 4.14.

Christophe

2022-12-14 19:23:51

by Segher Boessenkool

[permalink] [raw]
Subject: Re: [PATCH] [BACKPORT FOR 4.14] libtraceevent: Fix build with binutils 2.35

On Wed, Dec 14, 2022 at 03:33:24PM +0000, Christophe Leroy wrote:
> Le 13/12/2022 ? 21:25, Segher Boessenkool a ?crit?:
> > On Tue, Dec 13, 2022 at 07:03:07PM +0100, Christophe Leroy wrote:
> >> In binutils 2.35, 'nm -D' changed to show symbol versions along with
> >> symbol names, with the usual @@ separator.
> >
> > 2.37 instead? And --without-symbol-versions is there to restore the
> > old behaviour. The script is parsing the output already so this patch
> > is simpler maybe, but :-)
>
> Do you mean that the original commit from Ben should have done it
> differently ?

Probably.

> My patch is only a backport of original commit 39efdd94e314
> ("libtraceevent: Fix build with binutils 2.35") due to Makefile being at
> a different place in 4.14.

<shrug>. It's not such a great idea to spread misinformation further,
imo. Maybe the mailing list archives will help dampen that already now.

Thanks,


Segher