Re: CONFIG_KPROBES=y build requires gawk

Sam Ravnborg
2009-12-17T05:46:49Z

On Wed, Dec 16, 2009 at 09:11:09PM -0800, Roland Dreier wrote:
>
> > As Al Viro said, if we run awk with LC_ALL=C, then the characters will be
> > sorted as ASCII. So, your patch is OK if you can add LC_ALL=C just before
> > $(AWK). (I'm not so sure whether Makefile can accept it...)
>
> OK, updated patch:
>
> ===
>
> x86: Don't use POSIX character classes in gen-insn-attr-x86.awk
>
> Not all awk implementations (including the default awk in Ubuntu 9.10)
> support POSIX character classes. Since x86-opcode-map.txt is plain
> ASCII, we can just use explicit ranges for lower case, alphabetic, and
> alphanumeric characters instead. We set LC_ALL=C when invoking awk so
> that ASCII ranges are never misinterpreted.
>
> I verified that the Debian version of mawk, which doesn't have POSIX
> character set suport, generates the byte-for-byte the same inat-tables.c
> after this patch as gawk did on an unpatched kernel.
>
> Signed-off-by: Roland Dreier <rolandd@cisco.com>
> ---
> arch/x86/lib/Makefile | 2 +-
> arch/x86/tools/gen-insn-attr-x86.awk | 10 ++++------
> 2 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
> index 45b20e4..0c46d60 100644
> --- a/arch/x86/lib/Makefile
> +++ b/arch/x86/lib/Makefile
> @@ -5,7 +5,7 @@
> inat_tables_script = $(srctree)/arch/x86/tools/gen-insn-attr-x86.awk
> inat_tables_maps = $(srctree)/arch/x86/lib/x86-opcode-map.txt
> quiet_cmd_inat_tables = GEN $@
> - cmd_inat_tables = $(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@ || rm -f $@
> + cmd_inat_tables = LC_ALL=C $(AWK) -f $(inat_tables_script) $(inat_tables_maps) > $@ || rm -f $@

This will result in error messages in english always from awk - no?
Some people will care.

Sam