Hi Mark,

Thanks for reply. First you may get libtarget_1.so from 
https://github.com/JetXujing/xujing/blob/main/libtarget_1.so
Second, below are the sections of libtarget_1.so 

# readelf -S libtarget_1.so
There are 44 section headers, starting at offset 0x3626548:

Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .note.gnu.bu[...] NOTE             0000000000000270  00000270
       0000000000000024  0000000000000000   A       0     0     4
  [ 2] .gnu.hash         GNU_HASH         0000000000000298  00000298
       000000000000d0f0  0000000000000000   A       3     0     8
  [ 3] .dynsym           DYNSYM           000000000000d388  0000d388
       0000000000032598  0000000000000018   A       4     1     8
  [28] .rustc            PROGBITS         0000000000000000  006c71f2
       0000000000011e16  0000000000000000           0     0     1
  [29] .gnu.build.a[...] NOTE             00000000006ca838  006d9008
       0000000000000024  0000000000000000           0     0     4
  [30] .debug_aranges    PROGBITS         0000000000000000  006d902c
       00000000000292e0  0000000000000000           0     0     1

As for table 3 and symbol 742, I used gbd to get the following information, but 
cannot map the index to symbol name, if you know how to do so please give some 
hint(Thanks so much!)

I used elfutils-185 version 
p shdr_info[cnt].shdr
$11 = {sh_name = 104, sh_type = 11, sh_flags = 2, sh_addr = 54488, sh_offset = 
54488, sh_size = 207768, sh_link = 4, sh_info = 1, sh_addralign = 8, sh_entsize 
= 24}
AND
p shdr_info[cnt]
$9 = {scn = 0x5555555b1fe8, shdr = {sh_name = 104, sh_type = 11, sh_flags = 2, 
sh_addr = 54488, sh_offset = 54488, sh_size = 207768, sh_link = 4, sh_info = 1, 
sh_addralign = 8,
    sh_entsize = 24}, data = 0x5555555b1fe8, debug_data = 0x0, name = 
0x5555555b1878 ".dynsym", idx = 3, old_sh_link = 4, symtab_idx = 0, version_idx 
= 5, group_idx = 0,
  group_cnt = 0, newscn = 0x5555555b44b8, se = 0x5555555b74e0, newsymidx = 
0x5555555ca470}

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?

Best
Ziyang

-----邮件原件-----
发件人: Mark Wielaard [mailto:m...@klomp.org] 
发送时间: 2023年7月20日 22:58
收件人: chenziyang (C) <chenziya...@huawei.com>; elfutils-devel@sourceware.org
抄送: lvying <lvyi...@huawei.com>; Fangxiuning (Jack, EulerOS) 
<fangxiun...@huawei.com>; xujing (AN) <xujing...@huawei.com>
主题: Re: eu-strip on .rustc section produce error information

Hi Ziyang,

On Thu, 2023-07-20 at 13:14 +0000, chenziyang (C) via Elfutils-devel
wrote:
> Hi elfutils maintainers
> 
> I am running 'rpmbuild -ba sysmaster.spec', and produce following error info:
> eu-strip: Cannot remove symbol [742] from allocated symbol table [3]
> 
> This error is caused by strip_to_debug() function in 
> /usr/bin/find-debuginfo.sh which is triggered by rpm-build 
> [cid:image003.png@01D9BB4F.19E5EE90]
> 
> Steps to Reproduce:
> eu-strip -R .rustc libtarget_1.so
> Actual result:
> eu-strip: Cannot remove symbol [742] from allocated symbol table [3]
> 
> OR
> eu-strip -remove-comment libtarget.so.debug1 libtarget_1.so Actual 
> result: eu-strip: Cannot remove symbol [742] from allocated symbol 
> table [3]

Would you be able to show the sections and symbols for libtarget_1.so.
Specifically what symbol table section 3 is and what 742th symbol in that table 
is? And does libtarget_1.so actually contain a .rustc section?

Thanks,

Mark

Reply via email to