From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15131 invoked by alias); 16 Mar 2005 14:49:53 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 14210 invoked from network); 16 Mar 2005 14:49:29 -0000 Received: from unknown (HELO mail.codesourcery.com) (65.74.133.9) by sourceware.org with SMTP; 16 Mar 2005 14:49:29 -0000 Received: (qmail 14716 invoked from network); 16 Mar 2005 14:49:28 -0000 Received: from localhost (HELO ?10.1.1.142?) (julian@127.0.0.1) by mail.codesourcery.com with SMTP; 16 Mar 2005 14:49:28 -0000 Message-ID: <42384770.8030104@codesourcery.com> Date: Wed, 16 Mar 2005 16:10:00 -0000 From: Julian Brown User-Agent: Debian Thunderbird 1.0 (X11/20050116) MIME-Version: 1.0 To: Daniel Jacobowitz CC: Richard Earnshaw , binutils@sources.redhat.com, Julian Brown Subject: Re: [PATCH] Fix thumb calls via PLT on ARM/SymbianOS References: <42383FF3.4080604@codesourcery.com> <1110982992.19581.35.camel@pc960.cambridge.arm.com> <20050316144218.GA27174@nevyn.them.org> In-Reply-To: <20050316144218.GA27174@nevyn.them.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2005-03/txt/msg00442.txt.bz2 Daniel Jacobowitz wrote: > On Wed, Mar 16, 2005 at 02:23:12PM +0000, Richard Earnshaw wrote: > >>On Wed, 2005-03-16 at 14:17, Julian Brown wrote: >> >>>Hi, >>> >>>This patch fixes calls made from thumb mode via the PLT on SymbianOS. >>>PLT entries are written in ARM mode, but previously they were being >>>called in thumb mode, with their address incorrectly offset by -4 >>>(PLT_THUMB_STUB_SIZE). >>> >>>Now, the target address has been corrected and the thumb BL instruction >>>is rewritten as BLX to perform the mode switch before attempting to >>>execute the PLT entry. (BLX is an armv5t instruction, but as SymbianOS >>>is only targeted at armv5t+, this should always be OK.) >>> >>>The hardwired "4" for the thumb stub size on non-SymbianOS targets has >>>also been rewritten as PLT_THUMB_STUB_SIZE. >>> >>>OK to apply? >> >>This sounds like a hack. I'd much rather a generic solution were found >>(and which permitted the blx optimization if available). > > > The SymbianOS bits sound generally right to me. The fact that the -4 > bias is currently included is just a bug; that's from the code to > generate a Thumb header on PLT entries, which is already disabled > for SymbianOS. > > OTOH, it may be missing some error checks - what if it's _not_ a BL? > Could we reach here? I assumed not: this is an R_ARM_THM_PC22, alias R_ARM_THM_CALL relocation. Can that sensibly point at anything else? Would it be better to add a --target-arch (or something) flag to binutils at this point? That would tidy up a previous patch of mine, too. I don't know if any other targets have, or need, such an option. Julian