Hi Ziyang, On Sat, Jul 22, 2023 at 10:46:21AM +0000, chenziyang (C) wrote: > Thanks for reply. First you may get libtarget_1.so from > https://github.com/JetXujing/xujing/blob/main/libtarget_1.so
Thanks. So using that trying to remove the .rustc section I do get: eu-strip: Cannot remove symbol [7873] from allocated symbol table [3] Note that this is a warning, not an error. The section is still removed. The issues is that in the original file the .rustc section is: $ eu-readelf -S libtarget_1.so.orig | grep .rustc [28] .rustc PROGBITS 0000000000000000 006c71f2 00011e16 0 0 0 1 And symbol table 3 is: $ eu-readelf -S libtarget_1.so.orig | grep '\[ 3\]' [ 3] .dynsym DYNSYM 000000000000d388 0000d388 00032598 24 A 4 1 8 Symbol 7873 in .dynsym is: $ eu-readelf --symbols=.dynsym libtarget_1.so.orig | grep 7873: 7873: 0000000000000000 73238 OBJECT GLOBAL DEFAULT 28 rust_metadata_target_af70f9bf599b19f0 Note that symbol refers to ndx (section) 28. That is out .rustc section. Since .dynsym is an allocated symbol table it cannot simply remove that symbol. But since it refers to a section that is about to be removed it emits that warning and replaces the ndx (section) with UNDEF: $ eu-readelf --symbols=.dynsym libtarget_1.so.stripped | grep 7873: 7873: 0000000000000000 73238 OBJECT GLOBAL DEFAULT UNDEF rust_metadata_target_af70f9bf599b19f0 > And I found the commit that trigger this error infor: > https://sourceware.org/git/?p=elfutils.git;a=commitdiff;h=7bf4b63a4980788e6c1969cae02f0483e79c069f;hp=4f7b5ba9624489b5a2f714569c29ef865d4dcd6f > Is this error info an expected behavior? Yes. It is an expected warning. Cheers, Mark