Skip to content

Conversation

@yonghong-song
Copy link
Contributor

The kernel libbpf does not need .comment section. If not filtering out in llvm, the section will be filtered out in libbpf. So let us filter it out as early as possible which is in llvm.

The following is an example.

  $ cat t.c
  int test() { return 5; }

Without this change:

  $ llvm-readelf -S t.o
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .strtab           STRTAB          0000000000000000 000110 000047 00      0   0  1
  [ 2] .text             PROGBITS        0000000000000000 000040 000010 00  AX  0   0  8
  [ 3] .comment          PROGBITS        0000000000000000 000050 000072 01  MS  0   0  1
  [ 4] .note.GNU-stack   PROGBITS        0000000000000000 0000c2 000000 00      0   0  1
  [ 5] .llvm_addrsig     LLVM_ADDRSIG    0000000000000000 000110 000000 00   E  6   0  1
  [ 6] .symtab           SYMTAB          0000000000000000 0000c8 000048 18      1   2  8

With this change:

  $ llvm-readelf -S t.o
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .strtab           STRTAB          0000000000000000 000098 00003e 00      0   0  1
  [ 2] .text             PROGBITS        0000000000000000 000040 000010 00  AX  0   0  8
  [ 3] .note.GNU-stack   PROGBITS        0000000000000000 000050 000000 00      0   0  1
  [ 4] .llvm_addrsig     LLVM_ADDRSIG    0000000000000000 000098 000000 00   E  5   0  1
  [ 5] .symtab           SYMTAB          0000000000000000 000050 000048 18      1   2  8

The kernel libbpf does not need .comment section. If not filtering out
in llvm, the section will be filtered out in libbpf. So let us
filter it out as early as possible which is in llvm.

The following is an example.
  $ cat t.c
  int test() { return 5; }

Without this change:
  $ llvm-readelf -S t.o
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .strtab           STRTAB          0000000000000000 000110 000047 00      0   0  1
  [ 2] .text             PROGBITS        0000000000000000 000040 000010 00  AX  0   0  8
  [ 3] .comment          PROGBITS        0000000000000000 000050 000072 01  MS  0   0  1
  [ 4] .note.GNU-stack   PROGBITS        0000000000000000 0000c2 000000 00      0   0  1
  [ 5] .llvm_addrsig     LLVM_ADDRSIG    0000000000000000 000110 000000 00   E  6   0  1
  [ 6] .symtab           SYMTAB          0000000000000000 0000c8 000048 18      1   2  8

With this change:
  $ llvm-readelf -S t.o
  [Nr] Name              Type            Address          Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            0000000000000000 000000 000000 00      0   0  0
  [ 1] .strtab           STRTAB          0000000000000000 000098 00003e 00      0   0  1
  [ 2] .text             PROGBITS        0000000000000000 000040 000010 00  AX  0   0  8
  [ 3] .note.GNU-stack   PROGBITS        0000000000000000 000050 000000 00      0   0  1
  [ 4] .llvm_addrsig     LLVM_ADDRSIG    0000000000000000 000098 000000 00   E  5   0  1
  [ 5] .symtab           SYMTAB          0000000000000000 000050 000048 18      1   2  8
Copy link
Member

@4ast 4ast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice. Can we strip note.GNU-stack too ?

@yonghong-song
Copy link
Contributor Author

Nice. Can we strip note.GNU-stack too ?

Yes. See #159960.
I have a separate pull request since it involves change outside BPF backend.

@yonghong-song yonghong-song merged commit e8e0108 into llvm:main Sep 21, 2025
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants