This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/17354] tile: signed dynamic relocations aren't handled correctly
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Sat, 06 Sep 2014 16:30:54 +0000
- Subject: [Bug dynamic-link/17354] tile: signed dynamic relocations aren't handled correctly
- Auto-submitted: auto-generated
- References: <bug-17354-131 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=17354
--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 8622092d584962801e4248cd4bb4bef6e71827b0 (commit)
from 41488498b6d9440ee66ab033808cce8323bba7ac (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8622092d584962801e4248cd4bb4bef6e71827b0
commit 8622092d584962801e4248cd4bb4bef6e71827b0
Author: Chris Metcalf <cmetcalf@tilera.com>
Date: Fri Sep 5 14:40:23 2014 -0400
[BZ #17354] tile: Fix up corner cases with signed relocations
Some types of relocations technically need to be signed rather than
unsigned: in particular ones that are used with moveli or movei,
or for jump and branch. This is almost never a problem. Jump and
branch opcodes are pretty much uniformly resolved by the static linker
(unless you omit -fpic for a shared library, which is not recommended).
The moveli and movei opcodes that need to be sign-extended generally
are for positive displacements, like the construction of the address of
main() from _start(). However, tst-pie1 ends up with main below _start
(in a different module) and the test failed due to signedness issues in
relocation handling.
This commit treats the value as signed when shifting (to preserve the
high bit) and also sign-extends the value generated from the updated
bundle when comparing with the desired bundle, which we do to make sure
no overflow occurred. As a result, the tst-pie1 test now passes.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
NEWS | 2 +-
sysdeps/tile/dl-machine.h | 41 +++++++++++++++++++++++------------------
3 files changed, 30 insertions(+), 19 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.