PATCH: Fix cfi awk scripts for gawk 5 warning

Submitted by Will Dietz on Jan. 8, 2020, 7:48 p.m.

Details

Message ID 20200108134809.GB24159@dtznix
State New
Series "PATCH: Fix cfi awk scripts for gawk 5 warning"
Headers show

Commit Message

Will Dietz Jan. 8, 2020, 7:48 p.m.
When `awk` is gawk 5.0.1, the cfi awk scripts print a warning
due to unnecessarily escaping '@' character (see attached patch).

Warning message example:

awk: ./tools/add-cfi.x86_64.awk:79: warning: regexp escape sequence `\@' is not a known regexp operator

Trivial patch addressing this is attached.

Unsure which awk implementations are relevant,
tested with gawk 4.2.1, gawk 5.0.1, and mawk 1.3.4.
Also tested with busybox 1.31.1, didn't check config options used (if that matters).

For all, `.cfi_startproc` seems to be inserted appropriately on example used for testing
(src/math/x86_64/lrintf.s) and no warnings were printed.

Minor issue, but seems might as well fix if there aren't awk's requiring escaping '@'.

Thanks!

~Will
From 004799af62609eab3261ea9a75794dd7281ce02e Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Wed, 8 Jan 2020 13:20:44 -0600
Subject: [PATCH] tools/add-cfi.{i386,x86_64}.awk: fix for gawk 5, '\@' -> '@'

---
 tools/add-cfi.i386.awk   | 2 +-
 tools/add-cfi.x86_64.awk | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/tools/add-cfi.i386.awk b/tools/add-cfi.i386.awk
index 9162e309..d05037de 100644
--- a/tools/add-cfi.i386.awk
+++ b/tools/add-cfi.i386.awk
@@ -81,7 +81,7 @@  function adjust_sp_offset(delta) {
     in_function = 0
   }
 }
-/^\.type [a-zA-Z0-9_]+,\@function/ {
+/^\.type [a-zA-Z0-9_]+,@function/ {
   functions[substr($2, 1, length($2)-10)] = 1
 }
 # not interested in assembler directives beyond this, just pass them through
diff --git a/tools/add-cfi.x86_64.awk b/tools/add-cfi.x86_64.awk
index bbc90daa..7e1513d6 100644
--- a/tools/add-cfi.x86_64.awk
+++ b/tools/add-cfi.x86_64.awk
@@ -76,7 +76,7 @@  function adjust_sp_offset(delta) {
     in_function = 0
   }
 }
-/^\.type [a-zA-Z0-9_]+,\@function/ {
+/^\.type [a-zA-Z0-9_]+,@function/ {
   functions[substr($2, 1, length($2)-10)] = 1
 }
 # not interested in assembler directives beyond this, just pass them through

Comments

Rich Felker Jan. 8, 2020, 8:06 p.m.
On Wed, Jan 08, 2020 at 01:48:09PM -0600, Will Dietz wrote:
> When `awk` is gawk 5.0.1, the cfi awk scripts print a warning
> due to unnecessarily escaping '@' character (see attached patch).
> 
> Warning message example:
> 
> awk: ./tools/add-cfi.x86_64.awk:79: warning: regexp escape sequence `\@' is not a known regexp operator
> 
> Trivial patch addressing this is attached.
> 
> Unsure which awk implementations are relevant,
> tested with gawk 4.2.1, gawk 5.0.1, and mawk 1.3.4.
> Also tested with busybox 1.31.1, didn't check config options used (if that matters).
> 
> For all, `.cfi_startproc` seems to be inserted appropriately on example used for testing
> (src/math/x86_64/lrintf.s) and no warnings were printed.
> 
> Minor issue, but seems might as well fix if there aren't awk's requiring escaping '@'.
> 
> Thanks!
> 
> ~Will

> From 004799af62609eab3261ea9a75794dd7281ce02e Mon Sep 17 00:00:00 2001
> From: Will Dietz <w@wdtz.org>
> Date: Wed, 8 Jan 2020 13:20:44 -0600
> Subject: [PATCH] tools/add-cfi.{i386,x86_64}.awk: fix for gawk 5, '\@' -> '@'
> 
> ---
>  tools/add-cfi.i386.awk   | 2 +-
>  tools/add-cfi.x86_64.awk | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/add-cfi.i386.awk b/tools/add-cfi.i386.awk
> index 9162e309..d05037de 100644
> --- a/tools/add-cfi.i386.awk
> +++ b/tools/add-cfi.i386.awk
> @@ -81,7 +81,7 @@ function adjust_sp_offset(delta) {
>      in_function = 0
>    }
>  }
> -/^\.type [a-zA-Z0-9_]+,\@function/ {
> +/^\.type [a-zA-Z0-9_]+,@function/ {
>    functions[substr($2, 1, length($2)-10)] = 1
>  }
>  # not interested in assembler directives beyond this, just pass them through
> diff --git a/tools/add-cfi.x86_64.awk b/tools/add-cfi.x86_64.awk
> index bbc90daa..7e1513d6 100644
> --- a/tools/add-cfi.x86_64.awk
> +++ b/tools/add-cfi.x86_64.awk
> @@ -76,7 +76,7 @@ function adjust_sp_offset(delta) {
>      in_function = 0
>    }
>  }
> -/^\.type [a-zA-Z0-9_]+,\@function/ {
> +/^\.type [a-zA-Z0-9_]+,@function/ {
>    functions[substr($2, 1, length($2)-10)] = 1
>  }
>  # not interested in assembler directives beyond this, just pass them through
> -- 
> 2.25.0-rc1
> 

I think this should be okay, but I'll probably wait until after
release to commit just in case.

At some point it may make sense to remove these entirely, if we can
get rid of most of the external asm files.

Rich
Rich Felker Jan. 20, 2020, 9 p.m.
On Wed, Jan 08, 2020 at 03:06:40PM -0500, Rich Felker wrote:
> On Wed, Jan 08, 2020 at 01:48:09PM -0600, Will Dietz wrote:
> > When `awk` is gawk 5.0.1, the cfi awk scripts print a warning
> > due to unnecessarily escaping '@' character (see attached patch).
> > 
> > Warning message example:
> > 
> > awk: ./tools/add-cfi.x86_64.awk:79: warning: regexp escape sequence `\@' is not a known regexp operator
> > 
> > Trivial patch addressing this is attached.
> > 
> > Unsure which awk implementations are relevant,
> > tested with gawk 4.2.1, gawk 5.0.1, and mawk 1.3.4.
> > Also tested with busybox 1.31.1, didn't check config options used (if that matters).
> > 
> > For all, `.cfi_startproc` seems to be inserted appropriately on example used for testing
> > (src/math/x86_64/lrintf.s) and no warnings were printed.
> > 
> > Minor issue, but seems might as well fix if there aren't awk's requiring escaping '@'.
> > 
> > Thanks!
> > 
> > ~Will
> 
> > From 004799af62609eab3261ea9a75794dd7281ce02e Mon Sep 17 00:00:00 2001
> > From: Will Dietz <w@wdtz.org>
> > Date: Wed, 8 Jan 2020 13:20:44 -0600
> > Subject: [PATCH] tools/add-cfi.{i386,x86_64}.awk: fix for gawk 5, '\@' -> '@'
> > 
> > ---
> >  tools/add-cfi.i386.awk   | 2 +-
> >  tools/add-cfi.x86_64.awk | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/tools/add-cfi.i386.awk b/tools/add-cfi.i386.awk
> > index 9162e309..d05037de 100644
> > --- a/tools/add-cfi.i386.awk
> > +++ b/tools/add-cfi.i386.awk
> > @@ -81,7 +81,7 @@ function adjust_sp_offset(delta) {
> >      in_function = 0
> >    }
> >  }
> > -/^\.type [a-zA-Z0-9_]+,\@function/ {
> > +/^\.type [a-zA-Z0-9_]+,@function/ {
> >    functions[substr($2, 1, length($2)-10)] = 1
> >  }
> >  # not interested in assembler directives beyond this, just pass them through
> > diff --git a/tools/add-cfi.x86_64.awk b/tools/add-cfi.x86_64.awk
> > index bbc90daa..7e1513d6 100644
> > --- a/tools/add-cfi.x86_64.awk
> > +++ b/tools/add-cfi.x86_64.awk
> > @@ -76,7 +76,7 @@ function adjust_sp_offset(delta) {
> >      in_function = 0
> >    }
> >  }
> > -/^\.type [a-zA-Z0-9_]+,\@function/ {
> > +/^\.type [a-zA-Z0-9_]+,@function/ {
> >    functions[substr($2, 1, length($2)-10)] = 1
> >  }
> >  # not interested in assembler directives beyond this, just pass them through
> > -- 
> > 2.25.0-rc1
> > 
> 
> I think this should be okay, but I'll probably wait until after
> release to commit just in case.
> 
> At some point it may make sense to remove these entirely, if we can
> get rid of most of the external asm files.

Others have reported hitting this, and I think it looks fine. I'm
testing with Busybox awk and as long as it works (I expect it to) I'll
include it in this release.

Rich