This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR ld/17618: Check PC-relative offset overflow in PLT entry


On Wed, Aug 9, 2017 at 3:08 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Thu, Nov 20, 2014 at 1:37 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>> On Tue, Nov 18, 2014 at 11:11:13AM -0800, H.J. Lu wrote:
>>> Hi,
>>>
>>> I checked in this patch to check PC-relative offset overflow in pushq
>>> instruction in x86-64 PLT entry.
>>>
>>>
>>
>> I checked in this patch to avoid running pr17618.d test on x32 since
>> it needs more than 4GB memory.
>>
>> H.J.
>> ---
>> diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
>> index f959d55..8e69a89 100644
>> --- a/ld/testsuite/ChangeLog
>> +++ b/ld/testsuite/ChangeLog
>> @@ -1,5 +1,9 @@
>>  2014-11-20  H.J. Lu  <hongjiu.lu@intel.com>
>>
>> +       * ld-x86-64/pr17618.d: Don't run on x32.
>> +
>> +2014-11-20  H.J. Lu  <hongjiu.lu@intel.com>
>> +
>>         * ld-x86-64/plt-main1.rd: Updated for x32.
>>         * ld-x86-64/plt-main2.rd: Likewise.
>>         * ld-x86-64/plt-main3.rd: Likewise.
>> diff --git a/ld/testsuite/ld-x86-64/pr17618.d b/ld/testsuite/ld-x86-64/pr17618.d
>> index e640b40..b090aa0 100644
>> --- a/ld/testsuite/ld-x86-64/pr17618.d
>> +++ b/ld/testsuite/ld-x86-64/pr17618.d
>> @@ -1,4 +1,5 @@
>>  #name: PLT PC-relative offset overflow check
>>  #as: --64
>>  #ld: -shared -melf_x86_64
>> +#notarget: x86_64-*-linux*-gnux32
>>  #error: .*PC-relative offset overflow in PLT entry for `bar'
>
> I checked in this patch to run PR ld/17618 test only with 64-bit
> ELF linker.
>

I checked in this patch to check .libs/ld-new for real linker first.


-- 
H.J.
From 1d60fceb22da8ba482a68b2c13c8f55d6463fd3e Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 9 Aug 2017 16:32:30 -0700
Subject: [PATCH] LD_CLASS: Check .libs/ld-new for linker first

When --enable-shared is used, ./ld-new may be a shell script and the
real linker is .libs/ld-new.  We should check .libs/ld-new first.

	* testsuite/config/default.exp (LD_CLASS): Check .libs/ld-new
	for linker first.
---
 ld/ChangeLog                    | 5 +++++
 ld/testsuite/config/default.exp | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/ld/ChangeLog b/ld/ChangeLog
index e4e6bfe5e3..b0191cfcce 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,10 @@
 2017-08-09  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* testsuite/config/default.exp (LD_CLASS): Check .libs/ld-new
+	for linker first.
+
+2017-08-09  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* testsuite/config/default.exp (LD_CLASS): New.  Set to "64bit"
 	for 64-bit ELF linker.
 	* testsuite/ld-x86-64/pr17618.d (#notarget): Removed.
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index 355d98f24a..6aba75fdc5 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -253,7 +253,8 @@ if ![info exists LDFLAGS] then {
 
 # Set LD_CLASS to "64bit" for 64-bit LD.
 if { ![info exists LD_CLASS] } then {
-    set readelf_output [run_host_cmd "$READELF" "-h $LD"]
+    set REAL_LD [findfile $base_dir/.libs/ld-new .libs/ld-new $LD [transform ld]]
+    set readelf_output [run_host_cmd "$READELF" "-h $REAL_LD"]
     if { [regexp {[ \t]+Class:[ \t]+ELF64} $readelf_output] } then {
 	set LD_CLASS "64bit"
     } else {
-- 
2.13.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]