Bug 458950
| Summary: | Corrupt eh_frame_hdr in LLVM | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Andrew Haley <aph> | ||||
| Component: | binutils | Assignee: | Nick Clifton <nickc> | ||||
| Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | 9 | CC: | asl, bradles, jakub, jan.kratochvil | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2008-10-30 12:53:49 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: | |||||||
| Bug Depends On: | |||||||
| Bug Blocks: | 461675 | ||||||
| Attachments: |
|
||||||
|
Description
Andrew Haley
2008-08-13 13:28:43 UTC
It is a ld error:
These relocations
Relocation section '.rela.eh_frame' at offset 0x14b0 contains 2 entries:
Offset Info Type Sym. Value Sym. Name + Addend
000000000020 000600000002 R_X86_64_PC32 0000000000000000 .text._ZNK4llvm13Targe + 0
with its target section .text._ZNK4llvm13 which is SHT_GROUP
[ 9] .text._ZNK4llvm13 PROGBITS 0000000000000000 000004c0
000000000000004f 0000000000000000 AXG 0 0 16
get converted to:
000000000020 000000000000 R_X86_64_NONE 0000000000000000
by this code:
../bfd/elf64-x86-64.c
if (sec != NULL && elf_discarded_section (sec))
{
/* For relocs against symbols from removed linkonce sections,
or sections discarded by a linker script, we just want the
section contents zeroed. Avoid any special processing. */
_bfd_clear_contents (howto, input_bfd, contents + rel->r_offset);
rel->r_info = 0;
rel->r_addend = 0;
continue;
}
Created attachment 314238 [details]
FIx.
I will check it more if it should not optimize out such dead FDEs.
Upstream post: http://sourceware.org/ml/binutils/2008-09/msg00124.html *** Bug 461675 has been marked as a duplicate of this bug. *** binutils-2.18.50.0.6-6.fc9 has been submitted as an update for Fedora 9. http://admin.fedoraproject.org/updates/binutils-2.18.50.0.6-6.fc9 binutils-2.18.50.0.6-6.fc9 has been pushed to the Fedora 9 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update binutils'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F9/FEDORA-2008-8235 binutils-2.18.50.0.6-6.fc9 has been pushed to the Fedora 9 stable repository. If problems still persist, please make note of it in this bug report. So I am now running: [bradles@riggins:bradles-diss:1006]$ rpm -qa |grep binutils binutils-2.18.50.0.6-6.fc9.x86_64 And when I link my executable, I still see this: xml -lxml2 -ldl -lstdc++ -o bin/hecios_cmd /usr/bin/ld: error in lib/inet.o(.eh_frame); no .eh_frame_hdr table will be created. Additionally, I profiled my software, and exception handling is now a huge percentage of my runtime, even though I have to catch several frequently occurring exceptions, and then discard the thrown data entirely (i.e. a no op). Not a good thing. Here is my compiler collection: [bradles@riggins:bradles-diss:1008]$ rpm -qa |grep c++ compat-libstdc++-296-2.96-140.i386 libsigc++20-2.2.2-1.fc9.x86_64 compat-libstdc++-33-3.2.3-63.x86_64 libstdc++-devel-4.3.0-8.i386 libstdc++-devel-4.3.0-8.x86_64 gcc-c++-4.3.0-8.x86_64 libstdc++-4.3.0-8.x86_64 compat-gcc-34-c++-3.4.6-9.x86_64 libstdc++-4.3.0-8.i386 compat-libstdc++-33-3.2.3-63.i386 I have tried performing the partial link of libinet.o both with and without --eh-frame-hdr as an argument to the partial link call to ld. Unfortunately we can't do anything about Comment #8 because we can't reproduce it. Please create a test case and attach it to a new bug report. I already added the bug, you guys marked it as a dupe of this bug (check 46175 above). Will you accept a big batch of binary stuff, as I have no idea what caused the bug? Or if you prefer I can provide instructions that will require building my code's prerequisite packages. It's all GPL I think, so shouldn't be any issues. Everything was fine, then I upgraded to FC9, and suddenly the problem appeared. I presume its related to me using prelinking with exceptions, but darn if I know. I tried just creating a few files to see if it would appear, but that did not cause it. If the problem still persists after you have the fix, we need to re-open your bug. We know that the original bug is fixed in binutils-2.18.50.0.6-6.fc9.x86_64, so your bug must be unrelated. With regard to reproducibility, the easier it is for a maintainer to reproduce your bug the more likely it is to get fixed. Anything you can do to narrow the scope of the problem will help us. |