diff mbox series

libtraceevent: Fix build with binutils 2.35

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

Commit Message

Ben Hutchings July 25, 2020, 1:06 a.m. UTC
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(-)

Comments

Salvatore Bonaccorso July 25, 2020, 7:06 a.m. UTC | #1
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
Arnaldo Carvalho de Melo July 28, 2020, 12:19 p.m. UTC | #2
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                                                            \
Steven Rostedt July 28, 2020, 1:08 p.m. UTC | #3
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                                                            \  
> 
> 
>
Arnaldo Carvalho de Melo July 29, 2020, 8:59 p.m. UTC | #4
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                                                            \  
> > 
> > 
> > 
>
Steven Rostedt July 30, 2020, 12:11 a.m. UTC | #5
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
Arnaldo Carvalho de Melo July 30, 2020, 10:02 a.m. UTC | #6
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 mbox series

Patch

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                                                            \