public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug dynamic-link/17354] New: tile: signed dynamic relocations aren't handled correctly
@ 2014-09-06 16:22 cmetcalf at tilera dot com
  2014-09-06 16:30 ` [Bug dynamic-link/17354] " cvs-commit at gcc dot gnu.org
  2014-09-06 16:32 ` cmetcalf at tilera dot com
  0 siblings, 2 replies; 3+ messages in thread
From: cmetcalf at tilera dot com @ 2014-09-06 16:22 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=17354

            Bug ID: 17354
           Summary: tile: signed dynamic relocations aren't handled
                    correctly
           Product: glibc
           Version: 2.19
            Status: NEW
          Severity: normal
          Priority: P2
         Component: dynamic-link
          Assignee: unassigned at sourceware dot org
          Reporter: cmetcalf at tilera dot com
            Target: tilegx, tilepro

The tst-pie1 regression test fails on tile.  The issue is that we're not
properly
handling signed relocations.  The HWx_LAST relocations are loaded with
"moveli", 
which sign-extends.  Similarly the HW8 relocations tend to be for "movei"
(sign-extending) and BrOff and JOff_Long are both sign-extending.  A simple way
to demonstrate the failure is to take two simple assembly programs like

.global l1
l1:
j l2

and a corresponding program with "l2: j l1", build them both without -fpic but
as shared objects, and link them against a no-op main().  Trying to run the
resulting program generates a "Relocation too large" failure, even though the
l1 and l2 labels are quite close in memory.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug dynamic-link/17354] tile: signed dynamic relocations aren't handled correctly
  2014-09-06 16:22 [Bug dynamic-link/17354] New: tile: signed dynamic relocations aren't handled correctly cmetcalf at tilera dot com
@ 2014-09-06 16:30 ` cvs-commit at gcc dot gnu.org
  2014-09-06 16:32 ` cmetcalf at tilera dot com
  1 sibling, 0 replies; 3+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2014-09-06 16:30 UTC (permalink / raw)
  To: glibc-bugs

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.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug dynamic-link/17354] tile: signed dynamic relocations aren't handled correctly
  2014-09-06 16:22 [Bug dynamic-link/17354] New: tile: signed dynamic relocations aren't handled correctly cmetcalf at tilera dot com
  2014-09-06 16:30 ` [Bug dynamic-link/17354] " cvs-commit at gcc dot gnu.org
@ 2014-09-06 16:32 ` cmetcalf at tilera dot com
  1 sibling, 0 replies; 3+ messages in thread
From: cmetcalf at tilera dot com @ 2014-09-06 16:32 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=17354

Chris Metcalf <cmetcalf at tilera dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from Chris Metcalf <cmetcalf at tilera dot com> ---
Fixed for 2.20.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-09-06 16:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-06 16:22 [Bug dynamic-link/17354] New: tile: signed dynamic relocations aren't handled correctly cmetcalf at tilera dot com
2014-09-06 16:30 ` [Bug dynamic-link/17354] " cvs-commit at gcc dot gnu.org
2014-09-06 16:32 ` cmetcalf at tilera dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).