Re: [PATCH v2] tools/resolve_btfids: Fix build error with older host toolchains

Jiri Olsa
2021-02-24T08:34:39Z

On Wed, Feb 24, 2021 at 05:27:52AM +0000, Kun-Chuan Hsieh wrote:
> Older libelf.h and glibc elf.h might not yet define the ELF compression
> types.
>
> Checking and defining SHF_COMPRESSED fix the build error when compiling
> with older toolchains. Also, the tool resolve_btfids is compiled with host
> toolchain. The host toolchain is more likely to be older than the cross
> compile toolchain.
>
> Cc: stable@vger.kernel.org
>
> Signed-off-by: Kun-Chuan Hsieh <jetswayss@gmail.com>

Acked-by: Jiri Olsa <jolsa@redhat.com>

thanks,
jirka

> ---
> tools/bpf/resolve_btfids/main.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/main.c
> index 7409d7860aa6..80d966cfcaa1 100644
> --- a/tools/bpf/resolve_btfids/main.c
> +++ b/tools/bpf/resolve_btfids/main.c
> @@ -260,6 +260,11 @@ static struct btf_id *add_symbol(struct rb_root *root, char *name, size_t size)
> return btf_id__add(root, id, false);
> }
>
> +/* Older libelf.h and glibc elf.h might not yet define the ELF compression types. */
> +#ifndef SHF_COMPRESSED
> +#define SHF_COMPRESSED (1 << 11) /* Section with compressed data. */
> +#endif
> +
> /*
> * The data of compressed section should be aligned to 4
> * (for 32bit) or 8 (for 64 bit) bytes. The binutils ld
> --
> 2.25.1
>