From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28877 invoked by alias); 4 Mar 2011 17:16:19 -0000 Received: (qmail 28869 invoked by uid 22791); 4 Mar 2011 17:16:18 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-ww0-f41.google.com (HELO mail-ww0-f41.google.com) (74.125.82.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 04 Mar 2011 17:16:12 +0000 Received: by wwb29 with SMTP id 29so449591wwb.0 for ; Fri, 04 Mar 2011 09:16:10 -0800 (PST) Received: by 10.216.52.143 with SMTP id e15mr813891wec.44.1299258970083; Fri, 04 Mar 2011 09:16:10 -0800 (PST) Received: from richards-thinkpad (gbibp9ph1--blueice2n1.emea.ibm.com [195.212.29.75]) by mx.google.com with ESMTPS id t5sm1274772wes.9.2011.03.04.09.16.08 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 04 Mar 2011 09:16:09 -0800 (PST) From: Richard Sandiford To: "H.J. Lu" Mail-Followup-To: "H.J. Lu" ,binutils@sourceware.org, patches@linaro.org, richard.sandiford@linaro.org Cc: binutils@sourceware.org, patches@linaro.org Subject: Re: [6/6] Main ARM STT_GNU_IFUNC patch References: Date: Fri, 04 Mar 2011 17:16:00 -0000 In-Reply-To: (H. J. Lu's message of "Fri, 4 Mar 2011 08:53:27 -0800") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2011-03/txt/msg00063.txt.bz2 "H.J. Lu" writes: > On Fri, Mar 4, 2011 at 8:32 AM, Richard Sandiford > wrote: >> This is the main STT_GNU_IFUNC patch. =C2=A0I'll try not to write too mu= ch >> about it because the explanations ought to be in the code. =C2=A0A few >> points though: >> >> - The main question was how to record PLT information for local >> =C2=A0symbools. =C2=A0One way (used by x86 and x86_64) is to have a fake= hash >> =C2=A0table entry. =C2=A0Another (used by PPC) is to put the PLT informa= tion in >> =C2=A0the local symbol information. =C2=A0I tried both ways, but in the = end I >> =C2=A0went for the latter. =C2=A0It seemed strange to have a hash table = entry >> =C2=A0without a symbol name (which is after all the hash key), so I wasn= 't >> =C2=A0happy about having to add !root.root.string tests when using the >> =C2=A0former approach. =C2=A0It also seemed to make things more complica= ted >> =C2=A0overall. >> > > I used fake hash table to handle complex things. You > may want to take a look at all x86 IFUNC linker tests and > adopt them for ARM. It's purely a representational issue. The complexity of the things you can do shouldn't change either way. ARM has its own complexities, such as the ARM vs. Thumb issue, which is why I'd written custom tests. I think they cover all the same things as the ld-ifunc tests do. Richard