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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 23, 2021 at 01:20:01AM +0000, Kun-Chuan Hsieh wrote:
> Older versions of libelf cannot recognize the compressed section.

so it's the SHF_COMPRESSED value the build fails on?

maybe we could do just this:

#ifndef SHF_COMPRESSED
 #define SHF_COMPRESSED      (1 << 11)  /* Section with compressed data. */
#endif

jirka

> However, it's only required to fix the compressed section info when
> compiling with CONFIG_DEBUG_INFO_COMPRESSED flag is set.
> 
> Only compile the compressed_section_fix function when necessary will make
> it easier to enable the BTF function. Since the tool resolve_btfids is
> compiled with host toolchain. The host toolchain might be older than the
> cross compile toolchain.
> 
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Kun-Chuan Hsieh <jetswayss@xxxxxxxxx>
> ---
>  tools/bpf/resolve_btfids/main.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/main.c
> index 7409d7860aa6..ad40346c6631 100644
> --- a/tools/bpf/resolve_btfids/main.c
> +++ b/tools/bpf/resolve_btfids/main.c
> @@ -260,6 +260,7 @@ static struct btf_id *add_symbol(struct rb_root *root, char *name, size_t size)
>  	return btf_id__add(root, id, false);
>  }
>  
> +#ifdef CONFIG_DEBUG_INFO_COMPRESSED
>  /*
>   * The data of compressed section should be aligned to 4
>   * (for 32bit) or 8 (for 64 bit) bytes. The binutils ld
> @@ -292,6 +293,7 @@ static int compressed_section_fix(Elf *elf, Elf_Scn *scn, GElf_Shdr *sh)
>  	}
>  	return 0;
>  }
> +#endif
>  
>  static int elf_collect(struct object *obj)
>  {
> @@ -370,8 +372,10 @@ static int elf_collect(struct object *obj)
>  			obj->efile.idlist_addr  = sh.sh_addr;
>  		}
>  
> +#ifdef CONFIG_DEBUG_INFO_COMPRESSED
>  		if (compressed_section_fix(elf, scn, &sh))
>  			return -1;
> +#endif
>  	}
>  
>  	return 0;
> -- 
> 2.25.1
> 




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux