Bug 184590
Summary: | TLS GD code relaxed LE crashes at run time | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Alexandre Oliva <aoliva> | ||||||
Component: | binutils | Assignee: | Jakub Jelinek <jakub> | ||||||
Status: | CLOSED INSUFFICIENT_DATA | QA Contact: | |||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | rawhide | CC: | aoliva, dcantrell, drepper, jan.kratochvil, rth, triage | ||||||
Target Milestone: | --- | Keywords: | Reopened | ||||||
Target Release: | --- | ||||||||
Hardware: | powerpc | ||||||||
OS: | Linux | ||||||||
Whiteboard: | bzcl34nup | ||||||||
Fixed In Version: | binutils-2.16.91.0.6-4 | Doc Type: | Bug Fix | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2008-05-07 00:26:18 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: | 184446 | ||||||||
Bug Blocks: | |||||||||
Attachments: |
|
Description
Alexandre Oliva
2006-03-10 01:20:21 UTC
I've just verified that glibc is not at fault, by using code in a dynamic library to determine the address of the TLS variable and then comparing the result with the address computed by the relaxed LE model: the incorrect minus the correct yield 0x8000. So I guess the linker is failing to take the TP bias into account. Created attachment 125917 [details]
Patch that fixes the bug
The problem was that the relaxation code failed to discard the addend of the
relocation in the call to __tls_get_addr, that in the new ABI is +32768. Since
the idea is to reference the two halves of the same address in the two relaxed
instructions, the correct thing to do is to copy the addend from the first to
the second instruction. We already did that for LD to LE, but not in GD to LE,
which sort of explains why this went unnoticed for so long. I'm building this
for FC5, let's see if it makes to the release...
Created attachment 126264 [details] Backport of patch that hit upstream Upstream requested a minor cleanup, which I did before installing it there. It's not worth respinning our binutils just because of it, but you may want to enqueue an update for FC5 with it along with a better patch for bug 184446, that I'll soon attach there. REOPENED status has been deprecated. ASSIGNED with keyword of Reopened is preferred. Based on the date this bug was created, it appears to have been reported against rawhide during the development of a Fedora release that is no longer maintained. In order to refocus our efforts as a project we are flagging all of the open bugs for releases which are no longer maintained. If this bug remains in NEEDINFO thirty (30) days from now, we will automatically close it. If you can reproduce this bug in a maintained Fedora version (7, 8, or rawhide), please change this bug to the respective version and change the status to ASSIGNED. (If you're unable to change the bug's version or status, add a comment to the bug and someone will change it for you.) Thanks for your help, and we apologize again that we haven't handled these issues to this point. The process we're following is outlined here: http://fedoraproject.org/wiki/BugZappers/F9CleanUp We will be following the process here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping to ensure this doesn't happen again. This bug has been in NEEDINFO for more than 30 days since feedback was first requested. As a result we are closing it. If you can reproduce this bug in the future against a maintained Fedora version please feel free to reopen it against that version. The process we're following is outlined here: http://fedoraproject.org/wiki/BugZappers/F9CleanUp |