Message ID | 20200725010623.GA194964@decadent.org.uk (mailing list archive) |
---|---|
State | Accepted |
Commit | 39efdd94e314336f4acbac4c07e0f37bdc3bef71 |
Headers | show |
Series | libtraceevent: Fix build with binutils 2.35 | expand |
Hi, On Sat, Jul 25, 2020 at 02:06:23AM +0100, Ben Hutchings wrote: > 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 <ben@decadent.org.uk> > Cc: stable@vger.kernel.org > --- > tools/lib/traceevent/plugins/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/lib/traceevent/plugins/Makefile b/tools/lib/traceevent/plugins/Makefile > index 349bb81482ab..680d883efe05 100644 > --- a/tools/lib/traceevent/plugins/Makefile > +++ b/tools/lib/traceevent/plugins/Makefile > @@ -197,7 +197,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 \ FWIW, tested on a system with binutils 2.35 for a 5.7.10 build. Tested-by: Salvatore Bonaccorso <carnil@debian.org> Regards, Salvatore
Em Sat, Jul 25, 2020 at 02:06:23AM +0100, Ben Hutchings escreveu: > 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. Steven, have you seen this one? - Arnaldo > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > Cc: stable@vger.kernel.org > --- > tools/lib/traceevent/plugins/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/lib/traceevent/plugins/Makefile b/tools/lib/traceevent/plugins/Makefile > index 349bb81482ab..680d883efe05 100644 > --- a/tools/lib/traceevent/plugins/Makefile > +++ b/tools/lib/traceevent/plugins/Makefile > @@ -197,7 +197,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 \
On Tue, 28 Jul 2020 09:19:08 -0300 Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Em Sat, Jul 25, 2020 at 02:06:23AM +0100, Ben Hutchings escreveu: > > 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. > > Steven, have you seen this one? Yeah, I saw it. Just haven't gotten to it yet ;-) -- Steve > > - Arnaldo > > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > > Cc: stable@vger.kernel.org > > --- > > tools/lib/traceevent/plugins/Makefile | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/tools/lib/traceevent/plugins/Makefile b/tools/lib/traceevent/plugins/Makefile > > index 349bb81482ab..680d883efe05 100644 > > --- a/tools/lib/traceevent/plugins/Makefile > > +++ b/tools/lib/traceevent/plugins/Makefile > > @@ -197,7 +197,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 \ > > >
Em Tue, Jul 28, 2020 at 09:08:06AM -0400, Steven Rostedt escreveu: > On Tue, 28 Jul 2020 09:19:08 -0300 > Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > > Em Sat, Jul 25, 2020 at 02:06:23AM +0100, Ben Hutchings escreveu: > > > 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. > > > > Steven, have you seen this one? > > Yeah, I saw it. Just haven't gotten to it yet ;-) So, I've stumbled on this on debian:experimental: LINK /tmp/build/perf/perf /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: ignoring invalid character `@' in script /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: ignoring invalid character `@' in script /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: syntax error in dynamic list collect2: error: ld returned 1 exit status make[2]: *** [Makefile.perf:637: /tmp/build/perf/perf] Error 1 I'll tentatively add this patch to see if it then passes all the tests everywhere... - Arnaldo > -- Steve > > > > > - Arnaldo > > > > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > > > Cc: stable@vger.kernel.org > > > --- > > > tools/lib/traceevent/plugins/Makefile | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/tools/lib/traceevent/plugins/Makefile b/tools/lib/traceevent/plugins/Makefile > > > index 349bb81482ab..680d883efe05 100644 > > > --- a/tools/lib/traceevent/plugins/Makefile > > > +++ b/tools/lib/traceevent/plugins/Makefile > > > @@ -197,7 +197,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 \ > > > > > > >
On Wed, 29 Jul 2020 17:59:27 -0300 Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > Em Tue, Jul 28, 2020 at 09:08:06AM -0400, Steven Rostedt escreveu: > > On Tue, 28 Jul 2020 09:19:08 -0300 > > Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > > > > Em Sat, Jul 25, 2020 at 02:06:23AM +0100, Ben Hutchings escreveu: > > > > 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. > > > > > > Steven, have you seen this one? > > > > Yeah, I saw it. Just haven't gotten to it yet ;-) > > So, I've stumbled on this on debian:experimental: > > LINK /tmp/build/perf/perf > /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: ignoring invalid character `@' in script > /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: ignoring invalid character `@' in script > /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: syntax error in dynamic list > collect2: error: ld returned 1 exit status > make[2]: *** [Makefile.perf:637: /tmp/build/perf/perf] Error 1 > > I'll tentatively add this patch to see if it then passes all the tests > everywhere... > > - I'd say go ahead and apply it. Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> -- Steve
Em Wed, Jul 29, 2020 at 08:11:43PM -0400, Steven Rostedt escreveu: > On Wed, 29 Jul 2020 17:59:27 -0300 > Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > > Em Tue, Jul 28, 2020 at 09:08:06AM -0400, Steven Rostedt escreveu: > > > On Tue, 28 Jul 2020 09:19:08 -0300 > > > Arnaldo Carvalho de Melo <acme@kernel.org> wrote: > > > > > > > Em Sat, Jul 25, 2020 at 02:06:23AM +0100, Ben Hutchings escreveu: > > > > > 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. > > > > > > > > Steven, have you seen this one? > > > > > > Yeah, I saw it. Just haven't gotten to it yet ;-) > > > > So, I've stumbled on this on debian:experimental: > > > > LINK /tmp/build/perf/perf > > /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: ignoring invalid character `@' in script > > /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: ignoring invalid character `@' in script > > /usr/bin/ld:/tmp/build/perf/libtraceevent-dynamic-list:2: syntax error in dynamic list > > collect2: error: ld returned 1 exit status > > make[2]: *** [Makefile.perf:637: /tmp/build/perf/perf] Error 1 > > > > I'll tentatively add this patch to see if it then passes all the tests > > everywhere... > > > > - > > I'd say go ahead and apply it. > > Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Done, thanks, testing finished in all containers without build problems. - Arnaldo
diff --git a/tools/lib/traceevent/plugins/Makefile b/tools/lib/traceevent/plugins/Makefile index 349bb81482ab..680d883efe05 100644 --- a/tools/lib/traceevent/plugins/Makefile +++ b/tools/lib/traceevent/plugins/Makefile @@ -197,7 +197,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 \
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 <ben@decadent.org.uk> Cc: stable@vger.kernel.org --- tools/lib/traceevent/plugins/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)