Re: [PATCH] bpf: bpftool: convert âconst char *â type into 'char *' in assignment

From: Quentin Monnet
Date: Thu Mar 28 2019 - 10:30:46 EST


2019-03-28 10:16 UTC-0400 ~ Bo YU <tsu.yubo@xxxxxxxxx>
> When compiling with check flag: make -C tools/bpf/bpftool/
> gcc will warning:
>
> jit_disasm.c:119:29: warning: assignment discards âconstâ qualifier from
> pointer target type [-Wdiscarded-qualifiers]
> Â info.disassembler_options = disassembler_options;
>
> So convert 'const char *' type into 'char *' to fix the warning.
>
> Fixes:3ddeac6705aba(tools: bpftool: use 4 context mode for the NFP disasm)
> Signed-off-by: Bo YU <tsu.yubo@xxxxxxxxx>
> ---
> tools/bpf/bpftool/jit_disasm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/bpf/bpftool/jit_disasm.c
> b/tools/bpf/bpftool/jit_disasm.c
> index 3ef3093560ba..40b46e46454a 100644
> --- a/tools/bpf/bpftool/jit_disasm.c
> +++ b/tools/bpf/bpftool/jit_disasm.c
> @@ -116,7 +116,7 @@ void disasm_print_insn(unsigned char *image, ssize_t
> len, int opcodes,
> ÂÂÂÂinfo.arch = bfd_get_arch(bfdf);
> ÂÂÂÂinfo.mach = bfd_get_mach(bfdf);
> ÂÂÂÂif (disassembler_options)
> -ÂÂÂÂÂÂÂ info.disassembler_options = disassembler_options;
> +ÂÂÂÂÂÂÂ info.disassembler_options = (char *)disassembler_options;
> ÂÂÂÂinfo.buffer = image;
> ÂÂÂÂinfo.buffer_length = len;
>


Hi, the warning does not show with latest versions of binutils, it was
fixed with this (binutils) commit:

commit f995bbe8e62fdb5607acb1ee127240cfe50d2b8f
Author: Pedro Alves <palves@xxxxxxxxxx>
Date: Wed Apr 5 19:21:33 2017 +0100

-Wwrite-strings: Constify struct disassemble_info's
disassembler_options field

Distributions with recent binutils (Ubuntu 18.04, Fedora 29 at least)
should not have this message. I thought about sending the same patch
some time ago, but in the end Jakub and I decided that it may not be
worth casting the const away to silence the warning just for older
distributions. Daniel also shared the same opinion at the time (but that
was off the mailing-list).

Quentin