Bug 216518

Summary: [i686] Missing FDE for __libc_start_main
Product: [Fedora] Fedora Reporter: Jan Kratochvil <jan.kratochvil>
Component: glibcAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: low Docs Contact:
Priority: medium    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: 2.5.90-10 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-12-01 12:49:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jan Kratochvil 2006-11-20 22:02:55 UTC
Description of problem:
During unwinding debugging I found FDE entries miss for i686 "__libc_start_main"
although they are present on x86_64.

Please do not spend your time on it, I will check the build process myself if
you do not see the problem.
It would be nice if you know the reason without any debugging.

Version-Release number of selected component (if applicable):
glibc-2.3.4-2.25.i686
glibc-2.5.90-6.i686

How reproducible:
Always

Steps to Reproduce:
1. readelf -a --debug-dump=frames /lib/libc.so.6
2. objdump -d /lib/libc.so.6
3. Check that the address of "__libc_start_main" is present in .eh_frame's FDEs
of the section ".eh_frame".
  
Actual results:
glibc: vepro.redhat.usu RawHide-i386: BAD glibc-2.5.90-6.i686 /lib/libc.so.6
00b82d80 <__libc_start_main>:
While first FDE starts:
00000018 00000020 0000001c FDE cie=00000000 pc=00b831a0..00b83274

Expected results:
00000018 00000020 0000001c FDE cie=00000000 pc=00b82d80..[function end]

Additional info:
glibc: vepro.redhat.usu RHEL4-x86_64: OK ??? /lib64/libc.so.6
000000000001c9e0 <__libc_start_main>:
00000098 00000024 0000009c FDE cie=00000000 pc=0001c9e0..0001caba

glibc: vepro.redhat.usu RHEL4-i386: BAD glibc-2.3.4-2.25.i686 /lib/libc.so.6
000151f0 <__libc_start_main>:
00000018 00000020 0000001c FDE cie=00000000 pc=00028c50..00028cef

glibc: vepro.redhat.usu RawHide-x86_64: OK glibc-2.5.90-6.x86_64 /lib64/libc.so.6
000000369c21d830 <__libc_start_main>:
00000098 0000001c 0000009c FDE cie=00000000 pc=369c21d830..369c21d9d5

glibc: vepro.redhat.usu RawHide-i386: BAD glibc-2.5.90-6.i686 /lib/libc.so.6
00b82d80 <__libc_start_main>:
00000018 00000020 0000001c FDE cie=00000000 pc=00b831a0..00b83274

glibc: host0.jankratochvil.net RHEL5-i386: BAD glibc-2.5-5.i686 /lib/libc.so.6
0082fd10 <__libc_start_main>:
starts with:
00000018 00000020 0000001c FDE cie=00000000 pc=00830130..00830204

It is not a blocker for anything, I found it during debugging of libunwind.

Comment 1 Jakub Jelinek 2006-11-21 08:09:25 UTC
Only selected files in libc.so are compiled with -fasynchronous-unwind-tables,
guess I should put that into CFLAGS.  I thought I have done that years ago, but
apparently not :(.  On x86_64 that's the default.

Comment 2 Jakub Jelinek 2006-12-01 12:49:27 UTC
Should be fixed in glibc-2.5.90-10 in rawhide (all arches built with
-fasynchronous-unwind-tables).