为什么gcc要添加.comment和. note.gnu.property部分?

jtoj6r0c  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(228)

Can anyone explain why gcc is adding the .comment and .note.gnu.property sections in the object code, and how can I tell to gcc not to add them, is it possible?
Thanks.

rm5edbpk

rm5edbpk1#

为什么gcc要添加.comment和. note.gnu.property部分
您可以检查.comment区段的内容,例如readelf -x.comment

echo "int foo() { return 42; }" | gcc -xc - -c -o foo.o
readelf -x.comment foo.o

Hex dump of section '.comment':
  0x00000000 00474343 3a202844 65626961 6e203131 .GCC: (Debian 11
  0x00000010 2e322e30 2d313029 2031312e 322e3000 .2.0-10) 11.2.0.

显然,“为什么”是为了更容易理解什么编译器产生了目标文件。
我不相信有一个GCC标志来抑制这个,但是objcopy --remove-section .comment foo.o bar.o会去掉它。
.note.gnu.property可以类似的方式变成removed
下面是它可能包含的内容的discussion

sgtfey8w

sgtfey8w2#

tks makred it,objcopy -O binary -R .note -R .comment -R .note.gnu.property foo,elf格式转换为二进制,大小从129M到4K

相关问题