From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9117 invoked by alias); 6 Sep 2014 16:22:19 -0000 Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org Received: (qmail 9081 invoked by uid 48); 6 Sep 2014 16:22:10 -0000 From: "cmetcalf at tilera dot com" To: glibc-bugs@sourceware.org Subject: [Bug dynamic-link/17354] New: tile: signed dynamic relocations aren't handled correctly Date: Sat, 06 Sep 2014 16:22:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: glibc X-Bugzilla-Component: dynamic-link X-Bugzilla-Version: 2.19 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: cmetcalf at tilera dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: 2.20 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cf_gcctarget Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-09/txt/msg00033.txt.bz2 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.