From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9544 invoked by alias); 23 Sep 2011 15:00:35 -0000 Received: (qmail 9492 invoked by uid 22791); 23 Sep 2011 15:00:32 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO sourceware.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 23 Sep 2011 15:00:18 +0000 From: "scox at redhat dot com" To: systemtap@sourceware.org Subject: [Bug translator/13222] New: process.plt only supports x86 Date: Fri, 23 Sep 2011 15:00:00 -0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: systemtap X-Bugzilla-Component: translator X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: scox at redhat dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: systemtap at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org X-SW-Source: 2011-q3/txt/msg00382.txt.bz2 http://sourceware.org/bugzilla/show_bug.cgi?id=13222 Bug #: 13222 Summary: process.plt only supports x86 Product: systemtap Version: unspecified Status: NEW Severity: normal Priority: P2 Component: translator AssignedTo: systemtap@sourceware.org ReportedBy: scox@redhat.com Classification: Unclassified PPC plt handling 1. reference to foo@plt 2. load r11 with a .plt memory location that initially points to glink 3. branch -> glink -> __glink_PLTresolve -> _dl_runtime_resolve 4. this resolves so that the .plt memory location now points to foo 5. hereafter a foo@plt reference 6. loads r11 with the .plt memory location that is now the address of foo - there is one entry in .plt and glink for each symbol - the relocations are with respect to the .plt - the @plt code snippet entries are in the text section X86 plt handling 1. reference to foo@plt 2. indirect jump from contents of .got.plt to second instruction in foo@plt 3. push an id and branch _dl_runtime_resolve 4. this resolves so that .got.plt location now points to foo 5. hereafter a foo@plt reference 6. indirect jumps to the .got.plt memory location that is now the address of foo - the relocations are with respect to the .plt - the @plt code snippet entries are in the .plt section - .got.plt (_GLOBAL_OFFSET_TABLE_) somewhat analagous to ppc .plt stap .plt handling iterate_over_plt (currently only supports x86) runs through each entry in the .plt section, uses the relocations to find what symbol an entry is for and does a callback. For ppc this strategy will not work since for ppc the .plt contains only the address to be branched to, the plt code snippets are in the .text section. It would be necessary to scan the elf symbol table for the @plt entries -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug.