diff mbox series

tools/resolve_btfids: Fix build error with older host toolchain

Message ID 20210220092228.1432280-1-jetswayss@gmail.com
State New
Headers show
Series tools/resolve_btfids: Fix build error with older host toolchain | expand

Commit Message

Kun-Chuan Hsieh Feb. 20, 2021, 9:22 a.m. UTC
Older verions of libelf cannot recognize the compressed section.

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 <stable@vger.kernel.org>

Signed-off-by: Kun-Chuan Hsieh <jetswayss@gmail.com>
---
 tools/bpf/resolve_btfids/main.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Alexei Starovoitov Feb. 22, 2021, 4:59 p.m. UTC | #1
On Sat, Feb 20, 2021 at 1:22 AM Kun-Chuan Hsieh <jetswayss@gmail.com> wrote:
>

> Older verions of libelf cannot recognize the compressed section.


typo above.

Please resend cc-ing bpf@vger, Jiri, Andrii.

> 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 <stable@vger.kernel.org>

>

> Signed-off-by: Kun-Chuan Hsieh <jetswayss@gmail.com>

> ---

>  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

>
diff mbox series

Patch

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;