public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Release 2.22: branch created
@ 2011-09-22  9:17 Tristan Gingold
  2011-09-23 15:57 ` H.J. Lu
                   ` (5 more replies)
  0 siblings, 6 replies; 40+ messages in thread
From: Tristan Gingold @ 2011-09-22  9:17 UTC (permalink / raw)
  To: binutils Development

I have just created the 2_22 branch for binutils, and built a snapshot (which is ok for i686-pc-linux-gnu).

You can download it from:
ftp://sourceware.org/pub/binutils/snapshots/binutils-2.21.53.tar.bz2

The branch is open to fix regressions/bugs, do not hesitate to ask before committing on the branch.

Tristan.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-09-22  9:17 Release 2.22: branch created Tristan Gingold
@ 2011-09-23 15:57 ` H.J. Lu
  2011-09-24 19:53 ` Andreas Schwab
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 40+ messages in thread
From: H.J. Lu @ 2011-09-23 15:57 UTC (permalink / raw)
  To: Tristan Gingold; +Cc: binutils Development

On Thu, Sep 22, 2011 at 2:16 AM, Tristan Gingold <gingold@adacore.com> wrote:
> I have just created the 2_22 branch for binutils, and built a snapshot (which is ok for i686-pc-linux-gnu).
>
> You can download it from:
> ftp://sourceware.org/pub/binutils/snapshots/binutils-2.21.53.tar.bz2
>
> The branch is open to fix regressions/bugs, do not hesitate to ask before committing on the branch.
>

There is one regression:

http://www.sourceware.org/bugzilla/show_bug.cgi?id=13195

-- 
H.J.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-09-22  9:17 Release 2.22: branch created Tristan Gingold
  2011-09-23 15:57 ` H.J. Lu
@ 2011-09-24 19:53 ` Andreas Schwab
  2011-09-25 18:07 ` Dave Korn
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 40+ messages in thread
From: Andreas Schwab @ 2011-09-24 19:53 UTC (permalink / raw)
  To: Tristan Gingold; +Cc: binutils Development, Alan Modra

The daily update should probably be switched to this branch.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-09-22  9:17 Release 2.22: branch created Tristan Gingold
  2011-09-23 15:57 ` H.J. Lu
  2011-09-24 19:53 ` Andreas Schwab
@ 2011-09-25 18:07 ` Dave Korn
  2011-09-26  9:43   ` Tristan Gingold
  2011-10-16 14:49 ` Eric Botcazou
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 40+ messages in thread
From: Dave Korn @ 2011-09-25 18:07 UTC (permalink / raw)
  To: Tristan Gingold; +Cc: binutils Development

On 22/09/2011 10:16, Tristan Gingold wrote:
> I have just created the 2_22 branch for binutils, and built a snapshot
> (which is ok for i686-pc-linux-gnu).
> 
> You can download it from: 
> ftp://sourceware.org/pub/binutils/snapshots/binutils-2.21.53.tar.bz2
> 
> The branch is open to fix regressions/bugs, do not hesitate to ask before
> committing on the branch.
> 
> Tristan.
> 

  I'm planning to commit

    http://sourceware.org/ml/binutils/2011-09/msg00174.html

to mainline within the next 48 hours, it fixes a serious bug in linking
PE-COFF DLLs.  Ok for the branch too please?

    cheers,
      DaveK

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-09-25 18:07 ` Dave Korn
@ 2011-09-26  9:43   ` Tristan Gingold
  2011-10-09 13:17     ` Christopher Faylor
  0 siblings, 1 reply; 40+ messages in thread
From: Tristan Gingold @ 2011-09-26  9:43 UTC (permalink / raw)
  To: Dave Korn; +Cc: binutils Development


On Sep 25, 2011, at 8:07 PM, Dave Korn wrote:

> On 22/09/2011 10:16, Tristan Gingold wrote:
>> I have just created the 2_22 branch for binutils, and built a snapshot
>> (which is ok for i686-pc-linux-gnu).
>> 
>> You can download it from: 
>> ftp://sourceware.org/pub/binutils/snapshots/binutils-2.21.53.tar.bz2
>> 
>> The branch is open to fix regressions/bugs, do not hesitate to ask before
>> committing on the branch.
>> 
>> Tristan.
>> 
> 
>  I'm planning to commit
> 
>    http://sourceware.org/ml/binutils/2011-09/msg00174.html
> 
> to mainline within the next 48 hours, it fixes a serious bug in linking
> PE-COFF DLLs.  Ok for the branch too please?

Sure.

Tristan.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-09-26  9:43   ` Tristan Gingold
@ 2011-10-09 13:17     ` Christopher Faylor
  2011-10-11  2:41       ` Dave Korn
  0 siblings, 1 reply; 40+ messages in thread
From: Christopher Faylor @ 2011-10-09 13:17 UTC (permalink / raw)
  To: binutils Development, Tristan Gingold, Dave Korn

On Mon, Sep 26, 2011 at 11:42:51AM +0200, Tristan Gingold wrote:
>
>On Sep 25, 2011, at 8:07 PM, Dave Korn wrote:
>
>> On 22/09/2011 10:16, Tristan Gingold wrote:
>>> I have just created the 2_22 branch for binutils, and built a snapshot
>>> (which is ok for i686-pc-linux-gnu).
>>> 
>>> You can download it from: 
>>> ftp://sourceware.org/pub/binutils/snapshots/binutils-2.21.53.tar.bz2
>>> 
>>> The branch is open to fix regressions/bugs, do not hesitate to ask before
>>> committing on the branch.
>>> 
>>> Tristan.
>>> 
>> 
>>  I'm planning to commit
>> 
>>    http://sourceware.org/ml/binutils/2011-09/msg00174.html
>> 
>> to mainline within the next 48 hours, it fixes a serious bug in linking
>> PE-COFF DLLs.  Ok for the branch too please?
>
>Sure.

I was hoping to roll a new version of binutils for Cygwin soon but I
don't see this patch in either trunk or branch.  Are there plans to
incorporate it anytime soon?

cgf

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-10-09 13:17     ` Christopher Faylor
@ 2011-10-11  2:41       ` Dave Korn
  0 siblings, 0 replies; 40+ messages in thread
From: Dave Korn @ 2011-10-11  2:41 UTC (permalink / raw)
  To: binutils Development, Tristan Gingold, Dave Korn

[-- Attachment #1: Type: text/plain, Size: 1899 bytes --]

On 09/10/2011 14:17, Christopher Faylor wrote:
> On Mon, Sep 26, 2011 at 11:42:51AM +0200, Tristan Gingold wrote:
>> On Sep 25, 2011, at 8:07 PM, Dave Korn wrote:
>>
>>> On 22/09/2011 10:16, Tristan Gingold wrote:
>>>> I have just created the 2_22 branch for binutils, and built a snapshot
>>>> (which is ok for i686-pc-linux-gnu).
>>>>
>>>> You can download it from: 
>>>> ftp://sourceware.org/pub/binutils/snapshots/binutils-2.21.53.tar.bz2
>>>>
>>>> The branch is open to fix regressions/bugs, do not hesitate to ask before
>>>> committing on the branch.
>>>>
>>>> Tristan.
>>>>
>>>  I'm planning to commit
>>>
>>>    http://sourceware.org/ml/binutils/2011-09/msg00174.html
>>>
>>> to mainline within the next 48 hours, it fixes a serious bug in linking
>>> PE-COFF DLLs.  Ok for the branch too please?
>> Sure.
> 
> I was hoping to roll a new version of binutils for Cygwin soon but I
> don't see this patch in either trunk or branch.  Are there plans to
> incorporate it anytime soon?

  Sorry for the delay, there turned out to be hidden gotchas.  After building
GCC and running the testsuite both before and after rebasing the DLLs, I
determined that the original patch wasn't quite conservative enough.
Generating base relocs needs to follow what the static final link does with
the underlying BFD relocs, and what it turns out is that relocs in .eh_frame
sections against discarded COMDAT sections are discarded (linked to *ABS*
zero), but relocs in .gcc_except_data section get resolved as usual (i.e.
against the kept section), so the original patch wasn't conservative enough.
I just got through running the C++ testsuite with DLLs built against the
attached slight variant of the original patch and I'll look to commit it
tomorrow after a little more testing.  (I'll also post it to the list with a
proper changelog when I do so, this is just advance notice.)

    cheers,
      DaveK


[-- Attachment #2: diff3.diff --]
[-- Type: text/x-c, Size: 3140 bytes --]

? ld/testsuite/ld-plugin/dummy.c
? ld/testsuite/ld-plugin/dummy.s
? ld/testsuite/ld-plugin/func1p.c
? ld/testsuite/ld-plugin/func2.c
? ld/testsuite/ld-plugin/func2i.c
? ld/testsuite/ld-plugin/func3h.c
? ld/testsuite/ld-plugin/lto-10.out
? ld/testsuite/ld-plugin/lto-10a.c
? ld/testsuite/ld-plugin/lto-10b.c
? ld/testsuite/ld-plugin/lto-10r.d
? ld/testsuite/ld-plugin/lto-11.out
? ld/testsuite/ld-plugin/lto-11a.c
? ld/testsuite/ld-plugin/lto-11b.c
? ld/testsuite/ld-plugin/lto-11c.c
? ld/testsuite/ld-plugin/lto-12.out
? ld/testsuite/ld-plugin/lto-12a.c
? ld/testsuite/ld-plugin/lto-12b.c
? ld/testsuite/ld-plugin/lto-12c.c
? ld/testsuite/ld-plugin/lto-13.out
? ld/testsuite/ld-plugin/lto-13a.c
? ld/testsuite/ld-plugin/lto-13b.c
? ld/testsuite/ld-plugin/lto-13c.c
? ld/testsuite/ld-plugin/lto-14.out
? ld/testsuite/ld-plugin/lto-14a.c
? ld/testsuite/ld-plugin/lto-14b.c
? ld/testsuite/ld-plugin/lto-14c.c
? ld/testsuite/ld-plugin/lto-15.out
? ld/testsuite/ld-plugin/lto-15a.c
? ld/testsuite/ld-plugin/lto-15b.c
? ld/testsuite/ld-plugin/lto-1a.c
? ld/testsuite/ld-plugin/lto-1b.c
? ld/testsuite/ld-plugin/lto-2.c
? ld/testsuite/ld-plugin/lto-3.d
? ld/testsuite/ld-plugin/lto-3.out
? ld/testsuite/ld-plugin/lto-3a.c
? ld/testsuite/ld-plugin/lto-3b.c
? ld/testsuite/ld-plugin/lto-3c.c
? ld/testsuite/ld-plugin/lto-3r.d
? ld/testsuite/ld-plugin/lto-4.out
? ld/testsuite/ld-plugin/lto-4a.c
? ld/testsuite/ld-plugin/lto-4b.c
? ld/testsuite/ld-plugin/lto-4c.c
? ld/testsuite/ld-plugin/lto-4r-a.d
? ld/testsuite/ld-plugin/lto-4r-b.d
? ld/testsuite/ld-plugin/lto-4r-c.d
? ld/testsuite/ld-plugin/lto-4r-d.d
? ld/testsuite/ld-plugin/lto-5.d
? ld/testsuite/ld-plugin/lto-5.out
? ld/testsuite/ld-plugin/lto-5a.c
? ld/testsuite/ld-plugin/lto-5b.c
? ld/testsuite/ld-plugin/lto-5r.d
? ld/testsuite/ld-plugin/lto-6.c
? ld/testsuite/ld-plugin/lto-7.out
? ld/testsuite/ld-plugin/lto-7a.c
? ld/testsuite/ld-plugin/lto-7b.c
? ld/testsuite/ld-plugin/lto-7c.c
? ld/testsuite/ld-plugin/lto-7d.c
? ld/testsuite/ld-plugin/lto-8.out
? ld/testsuite/ld-plugin/lto-8a.c
? ld/testsuite/ld-plugin/lto-8b.c
? ld/testsuite/ld-plugin/lto-9.cc
? ld/testsuite/ld-plugin/lto-9.d
? ld/testsuite/ld-plugin/lto.exp
? ld/testsuite/ld-plugin/pr12365a.c
? ld/testsuite/ld-plugin/pr12365b.c
? ld/testsuite/ld-plugin/pr12365c.c
Index: ld/pe-dll.c
===================================================================
RCS file: /cvs/src/src/ld/pe-dll.c,v
retrieving revision 1.138
diff -p -u -r1.138 pe-dll.c
--- ld/pe-dll.c	16 Sep 2011 01:15:19 -0000	1.138
+++ ld/pe-dll.c	11 Oct 2011 01:58:46 -0000
@@ -1395,6 +1395,15 @@ generate_reloc (bfd *abfd, struct bfd_li
 		      else if (!blhe || blhe->type != bfd_link_hash_defined)
 			continue;
 		    }
+		  /* Nor for Dwarf FDE references to discarded sections.  */
+		  else if (bfd_is_abs_section (sym->section->output_section))
+		    {
+		      /* We only ignore relocs from .eh_frame sections, as
+			 they are discarded by the final link rather than
+			 resolved against the kept section.  */
+		      if (!strcmp (s->name, ".eh_frame"))
+			continue;
+		    }
 
 		  reloc_data[total_relocs].vma = sec_vma + relocs[i]->address;
 

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-09-22  9:17 Release 2.22: branch created Tristan Gingold
                   ` (2 preceding siblings ...)
  2011-09-25 18:07 ` Dave Korn
@ 2011-10-16 14:49 ` Eric Botcazou
  2011-10-17  0:57   ` David Miller
                     ` (2 more replies)
  2011-11-09  9:26 ` Release 2.22: Next week Tristan Gingold
  2011-12-18 17:45 ` James Murray
  5 siblings, 3 replies; 40+ messages in thread
From: Eric Botcazou @ 2011-10-16 14:49 UTC (permalink / raw)
  To: Tristan Gingold; +Cc: binutils

> The branch is open to fix regressions/bugs, do not hesitate to ask before
> committing on the branch.

An annoying bug has been identified on the SPARC (PR 13301), whose fix is very 
likely trivial, so it would be nice if it could make it into the release.

-- 
Eric Botcazou

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-10-16 14:49 ` Eric Botcazou
@ 2011-10-17  0:57   ` David Miller
  2011-10-17  1:51   ` David Miller
  2011-10-17  7:22   ` Release 2.22: branch created Tristan Gingold
  2 siblings, 0 replies; 40+ messages in thread
From: David Miller @ 2011-10-17  0:57 UTC (permalink / raw)
  To: ebotcazou; +Cc: gingold, binutils

From: Eric Botcazou <ebotcazou@adacore.com>
Date: Sun, 16 Oct 2011 16:44:22 +0200

>> The branch is open to fix regressions/bugs, do not hesitate to ask before
>> committing on the branch.
> 
> An annoying bug has been identified on the SPARC (PR 13301), whose fix is very 
> likely trivial, so it would be nice if it could make it into the release.

I'll take a look at this soon, thanks Eric.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-10-16 14:49 ` Eric Botcazou
  2011-10-17  0:57   ` David Miller
@ 2011-10-17  1:51   ` David Miller
  2011-10-17  9:33     ` Release 2.22: branch create Eric Botcazou
  2011-10-17  7:22   ` Release 2.22: branch created Tristan Gingold
  2 siblings, 1 reply; 40+ messages in thread
From: David Miller @ 2011-10-17  1:51 UTC (permalink / raw)
  To: ebotcazou; +Cc: gingold, binutils

From: Eric Botcazou <ebotcazou@adacore.com>
Date: Sun, 16 Oct 2011 16:44:22 +0200

>> The branch is open to fix regressions/bugs, do not hesitate to ask before
>> committing on the branch.
> 
> An annoying bug has been identified on the SPARC (PR 13301), whose fix is very 
> likely trivial, so it would be nice if it could make it into the release.

Eric, could you please test this patch?  GOLD had the same exact bug so I fixed
it there too.

bfd/

	PR binutils/13301
	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Always move the
	__tls_get_addr call delay slot instruction forward 4 bytes when
	performing relaxation.

gold/

	PR binutils/13301
	* sparc.cc (Target_sparc::Relocate::relocate_tls): Always move the
	__tls_get_addr call delay slot instruction forward 4 bytes when
	performing relaxation.

ld/testsuite/

	* ld-sparc/tlssunbin32.dd: Update for TLS call relaxation fix
	for PR 13301.
	* ld-sparc/tlssunbin64.dd: Likewise.
	* ld-sparc/tlssunpic32.dd: Likewise.
	* ld-sparc/tlssunpic64.dd: Likewise.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 13242ba..0890fb9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2011-10-16  David S. Miller  <davem@davemloft.net>
+
+	PR binutils/13301
+	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Always move the
+	__tls_get_addr call delay slot instruction forward 4 bytes when
+	performing relaxation.
+
 2011-10-14  Hans-Peter Nilsson  <hp@axis.com>
 
 	* elf32-cris.c (cris_elf_gc_sweep_hook) <R_CRIS_16_GOTPLT>
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index 438b7f5..747c924 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -3711,7 +3711,15 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
 		  continue;
 		}
 
-	      bfd_put_32 (output_bfd, 0x9001c008, contents + rel->r_offset);
+	      /* We cannot just overwrite the delay slot instruction,
+		 as it might be what puts the %o0 argument to
+		 __tls_get_addr into place.  So we have to transpose
+		 the delay slot with the add we patch in.  */
+	      insn = bfd_get_32 (input_bfd, contents + rel->r_offset + 4);
+	      bfd_put_32 (output_bfd, insn,
+			  contents + rel->r_offset);
+	      bfd_put_32 (output_bfd, 0x9001c008,
+			  contents + rel->r_offset + 4);
 	      continue;
 	    }
 
diff --git a/gold/ChangeLog b/gold/ChangeLog
index e6e8a9b..f2aea4b 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,10 @@
+2011-10-16  David S. Miller  <davem@davemloft.net>
+
+	PR binutils/13301
+	* sparc.cc (Target_sparc::Relocate::relocate_tls): Always move the
+	__tls_get_addr call delay slot instruction forward 4 bytes when
+	performing relaxation.
+
 2011-10-12  Cary Coutant  <ccoutant@google.com>
 
 	* gold/output.cc (Output_file::open_base_file): Handle case where
diff --git a/gold/sparc.cc b/gold/sparc.cc
index 1d2cbad..a28df7e 100644
--- a/gold/sparc.cc
+++ b/gold/sparc.cc
@@ -3101,7 +3101,14 @@ Target_sparc<size, big_endian>::Relocate::relocate_tls(
 		      wv += 1;
 		      this->ignore_gd_add_ = true;
 		    }
-
+		  else
+		    {
+		      // Even if the delay slot isn't the TLS_GD_ADD
+		      // instruction, we still have to handle the case
+		      // where it sets up %o0 in some other way.
+		      elfcpp::Swap<32, true>::writeval(wv, val);
+		      wv += 1;
+		    }
 		  // call __tls_get_addr --> add %g7, %o0, %o0
 		  elfcpp::Swap<32, true>::writeval(wv, 0x9001c008);
 		  break;
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 69df1ad..a4f79ae 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2011-10-16  David S. Miller  <davem@davemloft.net>
+
+	* ld-sparc/tlssunbin32.dd: Update for TLS call relaxation fix
+	for PR 13301.
+	* ld-sparc/tlssunbin64.dd: Likewise.
+	* ld-sparc/tlssunpic32.dd: Likewise.
+	* ld-sparc/tlssunpic64.dd: Likewise.
+
 2011-10-14  Hans-Peter Nilsson  <hp@axis.com>
 
 	* ld-cris/pic-gc-72.d: Adjust for dropping unused undefined
diff --git a/ld/testsuite/ld-sparc/tlssunbin32.dd b/ld/testsuite/ld-sparc/tlssunbin32.dd
index 37c1d04..c31d190 100644
--- a/ld/testsuite/ld-sparc/tlssunbin32.dd
+++ b/ld/testsuite/ld-sparc/tlssunbin32.dd
@@ -27,8 +27,8 @@ Disassembly of section .text:
  +11034:	01 00 00 00 	nop *
  +11038:	d0 05 c0 12 	ld  \[ %l7 \+ %l2 \], %o0
  +1103c:	01 00 00 00 	nop *
- +11040:	90 01 c0 08 	add  %g7, %o0, %o0
- +11044:	01 00 00 00 	nop *
+ +11040:	01 00 00 00 	nop *
+ +11044:	90 01 c0 08 	add  %g7, %o0, %o0
  +11048:	01 00 00 00 	nop *
  +1104c:	01 00 00 00 	nop *
  +11050:	01 00 00 00 	nop *
@@ -36,8 +36,8 @@ Disassembly of section .text:
  +11058:	11 00 00 00 	sethi  %hi\(0\), %o0
  +1105c:	92 02 20 08 	add  %o0, 8, %o1	! 8 <.*>
  +11060:	d0 05 c0 09 	ld  \[ %l7 \+ %o1 \], %o0
- +11064:	90 01 c0 08 	add  %g7, %o0, %o0
- +11068:	01 00 00 00 	nop *
+ +11064:	01 00 00 00 	nop *
+ +11068:	90 01 c0 08 	add  %g7, %o0, %o0
  +1106c:	01 00 00 00 	nop *
  +11070:	01 00 00 00 	nop *
  +11074:	01 00 00 00 	nop *
diff --git a/ld/testsuite/ld-sparc/tlssunbin64.dd b/ld/testsuite/ld-sparc/tlssunbin64.dd
index 0585ae6..cd7db1c 100644
--- a/ld/testsuite/ld-sparc/tlssunbin64.dd
+++ b/ld/testsuite/ld-sparc/tlssunbin64.dd
@@ -27,8 +27,8 @@ Disassembly of section .text:
  +101034:	01 00 00 00 	nop *
  +101038:	d0 5d c0 12 	ldx  \[ %l7 \+ %l2 \], %o0
  +10103c:	01 00 00 00 	nop *
- +101040:	90 01 c0 08 	add  %g7, %o0, %o0
- +101044:	01 00 00 00 	nop *
+ +101040:	01 00 00 00 	nop *
+ +101044:	90 01 c0 08 	add  %g7, %o0, %o0
  +101048:	01 00 00 00 	nop *
  +10104c:	01 00 00 00 	nop *
  +101050:	01 00 00 00 	nop *
@@ -36,8 +36,8 @@ Disassembly of section .text:
  +101058:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10105c:	92 02 20 10 	add  %o0, 0x10, %o1	! 10 <.*>
  +101060:	d0 5d c0 09 	ldx  \[ %l7 \+ %o1 \], %o0
- +101064:	90 01 c0 08 	add  %g7, %o0, %o0
- +101068:	01 00 00 00 	nop *
+ +101064:	01 00 00 00 	nop *
+ +101068:	90 01 c0 08 	add  %g7, %o0, %o0
  +10106c:	01 00 00 00 	nop *
  +101070:	01 00 00 00 	nop *
  +101074:	01 00 00 00 	nop *
diff --git a/ld/testsuite/ld-sparc/tlssunpic32.dd b/ld/testsuite/ld-sparc/tlssunpic32.dd
index c34d514..5589771 100644
--- a/ld/testsuite/ld-sparc/tlssunpic32.dd
+++ b/ld/testsuite/ld-sparc/tlssunpic32.dd
@@ -37,8 +37,8 @@ Disassembly of section .text:
  +1058:	11 00 00 00 	sethi  %hi\(0\), %o0
  +105c:	92 02 20 3c 	add  %o0, 0x3c, %o1	! 3c <.*>
  +1060:	d0 05 c0 09 	ld  \[ %l7 \+ %o1 \], %o0
- +1064:	90 01 c0 08 	add  %g7, %o0, %o0
- +1068:	01 00 00 00 	nop *
+ +1064:	01 00 00 00 	nop *
+ +1068:	90 01 c0 08 	add  %g7, %o0, %o0
  +106c:	01 00 00 00 	nop *
  +1070:	01 00 00 00 	nop *
  +1074:	01 00 00 00 	nop *
@@ -55,8 +55,8 @@ Disassembly of section .text:
  +10a0:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10a4:	90 02 20 0c 	add  %o0, 0xc, %o0	! c <.*>
  +10a8:	d0 05 c0 08 	ld  \[ %l7 \+ %o0 \], %o0
- +10ac:	90 01 c0 08 	add  %g7, %o0, %o0
- +10b0:	01 00 00 00 	nop *
+ +10ac:	01 00 00 00 	nop *
+ +10b0:	90 01 c0 08 	add  %g7, %o0, %o0
  +10b4:	01 00 00 00 	nop *
  +10b8:	01 00 00 00 	nop *
  +10bc:	01 00 00 00 	nop *
@@ -73,8 +73,8 @@ Disassembly of section .text:
  +10e8:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10ec:	90 02 20 48 	add  %o0, 0x48, %o0	! 48 <.*>
  +10f0:	d0 05 c0 08 	ld  \[ %l7 \+ %o0 \], %o0
- +10f4:	90 01 c0 08 	add  %g7, %o0, %o0
- +10f8:	01 00 00 00 	nop *
+ +10f4:	01 00 00 00 	nop *
+ +10f8:	90 01 c0 08 	add  %g7, %o0, %o0
  +10fc:	01 00 00 00 	nop *
  +1100:	01 00 00 00 	nop *
  +1104:	01 00 00 00 	nop *
@@ -91,8 +91,8 @@ Disassembly of section .text:
  +1130:	11 00 00 00 	sethi  %hi\(0\), %o0
  +1134:	90 02 20 24 	add  %o0, 0x24, %o0	! 24 <.*>
  +1138:	d0 05 c0 08 	ld  \[ %l7 \+ %o0 \], %o0
- +113c:	90 01 c0 08 	add  %g7, %o0, %o0
- +1140:	01 00 00 00 	nop *
+ +113c:	01 00 00 00 	nop *
+ +1140:	90 01 c0 08 	add  %g7, %o0, %o0
  +1144:	01 00 00 00 	nop *
  +1148:	01 00 00 00 	nop *
  +114c:	01 00 00 00 	nop *
diff --git a/ld/testsuite/ld-sparc/tlssunpic64.dd b/ld/testsuite/ld-sparc/tlssunpic64.dd
index 0b41b68..5e94858 100644
--- a/ld/testsuite/ld-sparc/tlssunpic64.dd
+++ b/ld/testsuite/ld-sparc/tlssunpic64.dd
@@ -37,8 +37,8 @@ Disassembly of section .text:
  +1058:	11 00 00 00 	sethi  %hi\(0\), %o0
  +105c:	92 02 20 78 	add  %o0, 0x78, %o1	! 78 <.*>
  +1060:	d0 5d c0 09 	ldx  \[ %l7 \+ %o1 \], %o0
- +1064:	90 01 c0 08 	add  %g7, %o0, %o0
- +1068:	01 00 00 00 	nop *
+ +1064:	01 00 00 00 	nop *
+ +1068:	90 01 c0 08 	add  %g7, %o0, %o0
  +106c:	01 00 00 00 	nop *
  +1070:	01 00 00 00 	nop *
  +1074:	01 00 00 00 	nop *
@@ -55,8 +55,8 @@ Disassembly of section .text:
  +10a0:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10a4:	90 02 20 18 	add  %o0, 0x18, %o0	! 18 <.*>
  +10a8:	d0 5d c0 08 	ldx  \[ %l7 \+ %o0 \], %o0
- +10ac:	90 01 c0 08 	add  %g7, %o0, %o0
- +10b0:	01 00 00 00 	nop *
+ +10ac:	01 00 00 00 	nop *
+ +10b0:	90 01 c0 08 	add  %g7, %o0, %o0
  +10b4:	01 00 00 00 	nop *
  +10b8:	01 00 00 00 	nop *
  +10bc:	01 00 00 00 	nop *
@@ -73,8 +73,8 @@ Disassembly of section .text:
  +10e8:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10ec:	90 02 20 90 	add  %o0, 0x90, %o0	! 90 <.*>
  +10f0:	d0 5d c0 08 	ldx  \[ %l7 \+ %o0 \], %o0
- +10f4:	90 01 c0 08 	add  %g7, %o0, %o0
- +10f8:	01 00 00 00 	nop *
+ +10f4:	01 00 00 00 	nop *
+ +10f8:	90 01 c0 08 	add  %g7, %o0, %o0
  +10fc:	01 00 00 00 	nop *
  +1100:	01 00 00 00 	nop *
  +1104:	01 00 00 00 	nop *
@@ -91,8 +91,8 @@ Disassembly of section .text:
  +1130:	11 00 00 00 	sethi  %hi\(0\), %o0
  +1134:	90 02 20 48 	add  %o0, 0x48, %o0	! 48 <.*>
  +1138:	d0 5d c0 08 	ldx  \[ %l7 \+ %o0 \], %o0
- +113c:	90 01 c0 08 	add  %g7, %o0, %o0
- +1140:	01 00 00 00 	nop *
+ +113c:	01 00 00 00 	nop *
+ +1140:	90 01 c0 08 	add  %g7, %o0, %o0
  +1144:	01 00 00 00 	nop *
  +1148:	01 00 00 00 	nop *
  +114c:	01 00 00 00 	nop *

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch created
  2011-10-16 14:49 ` Eric Botcazou
  2011-10-17  0:57   ` David Miller
  2011-10-17  1:51   ` David Miller
@ 2011-10-17  7:22   ` Tristan Gingold
  2 siblings, 0 replies; 40+ messages in thread
From: Tristan Gingold @ 2011-10-17  7:22 UTC (permalink / raw)
  To: Eric Botcazou; +Cc: binutils


On Oct 16, 2011, at 4:44 PM, Eric Botcazou wrote:

>> The branch is open to fix regressions/bugs, do not hesitate to ask before
>> committing on the branch.
> 
> An annoying bug has been identified on the SPARC (PR 13301), whose fix is very 
> likely trivial, so it would be nice if it could make it into the release.

Ok.

> 
> -- 
> Eric Botcazou

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch create
  2011-10-17  1:51   ` David Miller
@ 2011-10-17  9:33     ` Eric Botcazou
  2011-10-17 20:45       ` David Miller
  2011-10-18 20:47       ` David Miller
  0 siblings, 2 replies; 40+ messages in thread
From: Eric Botcazou @ 2011-10-17  9:33 UTC (permalink / raw)
  To: David Miller; +Cc: binutils, gingold

> Eric, could you please test this patch?  GOLD had the same exact bug so I
> fixed it there too.
>
> bfd/
>
> 	PR binutils/13301
> 	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Always move the
> 	__tls_get_addr call delay slot instruction forward 4 bytes when
> 	performing relaxation.

Not sufficient it seems, you also need to move the potential relocation of the 
insn in the delay slot.  The example I have is:

   0x00014188 <+232>:   add  %g7, %o0, %o0
   0x0001418c <+236>:   sethi  %hi(0), %l0
   0x00014190 <+240>:   ld  [ %o0 ], %g1

before the change and:

   0x00014188 <+232>:   sethi  %hi(0), %l0
   0x0001418c <+236>:   add  %g0, %g0, %o0
   0x00014190 <+240>:   ld  [ %o0 ], %g1

after, because of a R_SPARC_TLS_GD_HI22 relocation attached to the insn.

-- 
Eric Botcazou

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch create
  2011-10-17  9:33     ` Release 2.22: branch create Eric Botcazou
@ 2011-10-17 20:45       ` David Miller
  2011-10-18 20:47       ` David Miller
  1 sibling, 0 replies; 40+ messages in thread
From: David Miller @ 2011-10-17 20:45 UTC (permalink / raw)
  To: ebotcazou; +Cc: binutils, gingold

From: Eric Botcazou <ebotcazou@adacore.com>
Date: Mon, 17 Oct 2011 11:29:18 +0200

>> Eric, could you please test this patch?  GOLD had the same exact bug so I
>> fixed it there too.
>>
>> bfd/
>>
>> 	PR binutils/13301
>> 	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Always move the
>> 	__tls_get_addr call delay slot instruction forward 4 bytes when
>> 	performing relaxation.
> 
> Not sufficient it seems, you also need to move the potential relocation of the 
> insn in the delay slot.  The example I have is:
> 
>    0x00014188 <+232>:   add  %g7, %o0, %o0
>    0x0001418c <+236>:   sethi  %hi(0), %l0
>    0x00014190 <+240>:   ld  [ %o0 ], %g1
> 
> before the change and:
> 
>    0x00014188 <+232>:   sethi  %hi(0), %l0
>    0x0001418c <+236>:   add  %g0, %g0, %o0
>    0x00014190 <+240>:   ld  [ %o0 ], %g1
> 
> after, because of a R_SPARC_TLS_GD_HI22 relocation attached to the insn.

Thanks for testing Eric, I'll fix this up.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch create
  2011-10-17  9:33     ` Release 2.22: branch create Eric Botcazou
  2011-10-17 20:45       ` David Miller
@ 2011-10-18 20:47       ` David Miller
  2011-10-18 22:21         ` Ian Lance Taylor
  2011-10-18 22:52         ` Eric Botcazou
  1 sibling, 2 replies; 40+ messages in thread
From: David Miller @ 2011-10-18 20:47 UTC (permalink / raw)
  To: ebotcazou; +Cc: binutils, gingold

From: Eric Botcazou <ebotcazou@adacore.com>
Date: Mon, 17 Oct 2011 11:29:18 +0200

> Not sufficient it seems, you also need to move the potential relocation of the 
> insn in the delay slot.  The example I have is:
> 
>    0x00014188 <+232>:   add  %g7, %o0, %o0
>    0x0001418c <+236>:   sethi  %hi(0), %l0
>    0x00014190 <+240>:   ld  [ %o0 ], %g1
> 
> before the change and:
> 
>    0x00014188 <+232>:   sethi  %hi(0), %l0
>    0x0001418c <+236>:   add  %g0, %g0, %o0
>    0x00014190 <+240>:   ld  [ %o0 ], %g1
> 
> after, because of a R_SPARC_TLS_GD_HI22 relocation attached to the insn.

Sorry for taking so long, here is something that should work better.

bfd/

	PR binutils/13301
	* elfxx-sparc.c (sparc_elf_find_reloc_at_ofs): New function.
	(_bfd_sparc_elf_relocate_section): Always move the __tls_get_addr
	call delay slot instruction forward 4 bytes when performing
	relaxation.

gold/

	PR binutils/13301
	* sparc.cc (Target_sparc::Relocate::reloc_adjust_addr_): New
	member to track relocation locations that have moved during TLS
	reloc optimizations.
	(Target_sparc::Relocate::Relocate): Initialize to NULL.
	(Target_sparc::Relocate::relocate): Adjust view down by 4
	bytes if it matches reloc_adjust_addr_.
	(Target_sparc::Relocate::relocate_tls): Always move the
	__tls_get_addr call delay slot instruction forward 4 bytes when
	performing relaxation.

ld/testsuite/

	* ld-sparc/tlssunbin32.dd: Update for TLS call relaxation fix
	for PR 13301.
	* ld-sparc/tlssunbin64.dd: Likewise.
	* ld-sparc/tlssunpic32.dd: Likewise.
	* ld-sparc/tlssunpic64.dd: Likewise.

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 13242ba..3e6b908 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2011-10-16  David S. Miller  <davem@davemloft.net>
+
+	PR binutils/13301
+	* elfxx-sparc.c (sparc_elf_find_reloc_at_ofs): New function.
+	(_bfd_sparc_elf_relocate_section): Always move the __tls_get_addr
+	call delay slot instruction forward 4 bytes when performing
+	relaxation.
+
 2011-10-14  Hans-Peter Nilsson  <hp@axis.com>
 
 	* elf32-cris.c (cris_elf_gc_sweep_hook) <R_CRIS_16_GOTPLT>
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index 438b7f5..9a15124 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -1830,6 +1830,20 @@ _bfd_sparc_elf_gc_mark_hook (asection *sec,
   return _bfd_elf_gc_mark_hook (sec, info, rel, h, sym);
 }
 
+static Elf_Internal_Rela *
+sparc_elf_find_reloc_at_ofs (Elf_Internal_Rela *rel,
+			     Elf_Internal_Rela *relend,
+			     bfd_vma offset)
+{
+  while (rel < relend)
+    {
+      if (rel->r_offset == offset)
+	return rel;
+      rel++;
+    }
+  return NULL;
+}
+
 /* Update the got entry reference counts for the section being removed.  */
 bfd_boolean
 _bfd_sparc_elf_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
@@ -3676,6 +3690,7 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
 	  if (! info->shared
 	      || (r_type == R_SPARC_TLS_GD_CALL && tls_type == GOT_TLS_IE))
 	    {
+	      Elf_Internal_Rela *rel2;
 	      bfd_vma insn;
 
 	      if (!info->shared && (h == NULL || h->dynindx == -1))
@@ -3711,7 +3726,26 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
 		  continue;
 		}
 
-	      bfd_put_32 (output_bfd, 0x9001c008, contents + rel->r_offset);
+	      /* We cannot just overwrite the delay slot instruction,
+		 as it might be what puts the %o0 argument to
+		 __tls_get_addr into place.  So we have to transpose
+		 the delay slot with the add we patch in.  */
+	      insn = bfd_get_32 (input_bfd, contents + rel->r_offset + 4);
+	      bfd_put_32 (output_bfd, insn,
+			  contents + rel->r_offset);
+	      bfd_put_32 (output_bfd, 0x9001c008,
+			  contents + rel->r_offset + 4);
+
+	      rel2 = rel;
+	      while ((rel2 = sparc_elf_find_reloc_at_ofs (rel2 + 1, relend,
+							  rel->r_offset + 4))
+		     != NULL)
+		{
+		  /* If the instruction we moved has a relocation attached to
+		     it, adjust the offset so that it will apply to the correct
+		     instruction.  */
+		  rel2->r_offset -= 4;
+		}
 	      continue;
 	    }
 
diff --git a/gold/ChangeLog b/gold/ChangeLog
index e6e8a9b..fffd22c 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,16 @@
+2011-10-16  David S. Miller  <davem@davemloft.net>
+
+	PR binutils/13301
+	* sparc.cc (Target_sparc::Relocate::reloc_adjust_addr_): New
+	member to track relocation locations that have moved during TLS
+	reloc optimizations.
+	(Target_sparc::Relocate::Relocate): Initialize to NULL.
+	(Target_sparc::Relocate::relocate): Adjust view down by 4
+	bytes if it matches reloc_adjust_addr_.
+	(Target_sparc::Relocate::relocate_tls): Always move the
+	__tls_get_addr call delay slot instruction forward 4 bytes when
+	performing relaxation.
+
 2011-10-12  Cary Coutant  <ccoutant@google.com>
 
 	* gold/output.cc (Output_file::open_base_file): Handle case where
diff --git a/gold/sparc.cc b/gold/sparc.cc
index 1d2cbad..12e1dee 100644
--- a/gold/sparc.cc
+++ b/gold/sparc.cc
@@ -265,7 +265,7 @@ class Target_sparc : public Sized_target<size, big_endian>
   {
    public:
     Relocate()
-      : ignore_gd_add_(false)
+      : ignore_gd_add_(false), reloc_adjust_addr_(NULL)
     { }
 
     ~Relocate()
@@ -302,6 +302,9 @@ class Target_sparc : public Sized_target<size, big_endian>
 
     // Ignore the next relocation which should be R_SPARC_TLS_GD_ADD
     bool ignore_gd_add_;
+
+    // If we hit a reloc at this view address, adjust it back by 4 bytes.
+    unsigned char *reloc_adjust_addr_;
   };
 
   // A class which returns the size required for a relocation type,
@@ -2622,6 +2625,8 @@ Target_sparc<size, big_endian>::Relocate::relocate(
 	  return false;
 	}
     }
+  if (this->reloc_adjust_addr_ == view)
+    view -= 4;
 
   typedef Sparc_relocate_functions<size, big_endian> Reloc;
 
@@ -3101,7 +3106,15 @@ Target_sparc<size, big_endian>::Relocate::relocate_tls(
 		      wv += 1;
 		      this->ignore_gd_add_ = true;
 		    }
-
+		  else
+		    {
+		      // Even if the delay slot isn't the TLS_GD_ADD
+		      // instruction, we still have to handle the case
+		      // where it sets up %o0 in some other way.
+		      elfcpp::Swap<32, true>::writeval(wv, val);
+		      wv += 1;
+		      this->reloc_adjust_addr_ = view + 4;
+		    }
 		  // call __tls_get_addr --> add %g7, %o0, %o0
 		  elfcpp::Swap<32, true>::writeval(wv, 0x9001c008);
 		  break;
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 69df1ad..a4f79ae 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2011-10-16  David S. Miller  <davem@davemloft.net>
+
+	* ld-sparc/tlssunbin32.dd: Update for TLS call relaxation fix
+	for PR 13301.
+	* ld-sparc/tlssunbin64.dd: Likewise.
+	* ld-sparc/tlssunpic32.dd: Likewise.
+	* ld-sparc/tlssunpic64.dd: Likewise.
+
 2011-10-14  Hans-Peter Nilsson  <hp@axis.com>
 
 	* ld-cris/pic-gc-72.d: Adjust for dropping unused undefined
diff --git a/ld/testsuite/ld-sparc/tlssunbin32.dd b/ld/testsuite/ld-sparc/tlssunbin32.dd
index 37c1d04..c31d190 100644
--- a/ld/testsuite/ld-sparc/tlssunbin32.dd
+++ b/ld/testsuite/ld-sparc/tlssunbin32.dd
@@ -27,8 +27,8 @@ Disassembly of section .text:
  +11034:	01 00 00 00 	nop *
  +11038:	d0 05 c0 12 	ld  \[ %l7 \+ %l2 \], %o0
  +1103c:	01 00 00 00 	nop *
- +11040:	90 01 c0 08 	add  %g7, %o0, %o0
- +11044:	01 00 00 00 	nop *
+ +11040:	01 00 00 00 	nop *
+ +11044:	90 01 c0 08 	add  %g7, %o0, %o0
  +11048:	01 00 00 00 	nop *
  +1104c:	01 00 00 00 	nop *
  +11050:	01 00 00 00 	nop *
@@ -36,8 +36,8 @@ Disassembly of section .text:
  +11058:	11 00 00 00 	sethi  %hi\(0\), %o0
  +1105c:	92 02 20 08 	add  %o0, 8, %o1	! 8 <.*>
  +11060:	d0 05 c0 09 	ld  \[ %l7 \+ %o1 \], %o0
- +11064:	90 01 c0 08 	add  %g7, %o0, %o0
- +11068:	01 00 00 00 	nop *
+ +11064:	01 00 00 00 	nop *
+ +11068:	90 01 c0 08 	add  %g7, %o0, %o0
  +1106c:	01 00 00 00 	nop *
  +11070:	01 00 00 00 	nop *
  +11074:	01 00 00 00 	nop *
diff --git a/ld/testsuite/ld-sparc/tlssunbin64.dd b/ld/testsuite/ld-sparc/tlssunbin64.dd
index 0585ae6..cd7db1c 100644
--- a/ld/testsuite/ld-sparc/tlssunbin64.dd
+++ b/ld/testsuite/ld-sparc/tlssunbin64.dd
@@ -27,8 +27,8 @@ Disassembly of section .text:
  +101034:	01 00 00 00 	nop *
  +101038:	d0 5d c0 12 	ldx  \[ %l7 \+ %l2 \], %o0
  +10103c:	01 00 00 00 	nop *
- +101040:	90 01 c0 08 	add  %g7, %o0, %o0
- +101044:	01 00 00 00 	nop *
+ +101040:	01 00 00 00 	nop *
+ +101044:	90 01 c0 08 	add  %g7, %o0, %o0
  +101048:	01 00 00 00 	nop *
  +10104c:	01 00 00 00 	nop *
  +101050:	01 00 00 00 	nop *
@@ -36,8 +36,8 @@ Disassembly of section .text:
  +101058:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10105c:	92 02 20 10 	add  %o0, 0x10, %o1	! 10 <.*>
  +101060:	d0 5d c0 09 	ldx  \[ %l7 \+ %o1 \], %o0
- +101064:	90 01 c0 08 	add  %g7, %o0, %o0
- +101068:	01 00 00 00 	nop *
+ +101064:	01 00 00 00 	nop *
+ +101068:	90 01 c0 08 	add  %g7, %o0, %o0
  +10106c:	01 00 00 00 	nop *
  +101070:	01 00 00 00 	nop *
  +101074:	01 00 00 00 	nop *
diff --git a/ld/testsuite/ld-sparc/tlssunpic32.dd b/ld/testsuite/ld-sparc/tlssunpic32.dd
index c34d514..5589771 100644
--- a/ld/testsuite/ld-sparc/tlssunpic32.dd
+++ b/ld/testsuite/ld-sparc/tlssunpic32.dd
@@ -37,8 +37,8 @@ Disassembly of section .text:
  +1058:	11 00 00 00 	sethi  %hi\(0\), %o0
  +105c:	92 02 20 3c 	add  %o0, 0x3c, %o1	! 3c <.*>
  +1060:	d0 05 c0 09 	ld  \[ %l7 \+ %o1 \], %o0
- +1064:	90 01 c0 08 	add  %g7, %o0, %o0
- +1068:	01 00 00 00 	nop *
+ +1064:	01 00 00 00 	nop *
+ +1068:	90 01 c0 08 	add  %g7, %o0, %o0
  +106c:	01 00 00 00 	nop *
  +1070:	01 00 00 00 	nop *
  +1074:	01 00 00 00 	nop *
@@ -55,8 +55,8 @@ Disassembly of section .text:
  +10a0:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10a4:	90 02 20 0c 	add  %o0, 0xc, %o0	! c <.*>
  +10a8:	d0 05 c0 08 	ld  \[ %l7 \+ %o0 \], %o0
- +10ac:	90 01 c0 08 	add  %g7, %o0, %o0
- +10b0:	01 00 00 00 	nop *
+ +10ac:	01 00 00 00 	nop *
+ +10b0:	90 01 c0 08 	add  %g7, %o0, %o0
  +10b4:	01 00 00 00 	nop *
  +10b8:	01 00 00 00 	nop *
  +10bc:	01 00 00 00 	nop *
@@ -73,8 +73,8 @@ Disassembly of section .text:
  +10e8:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10ec:	90 02 20 48 	add  %o0, 0x48, %o0	! 48 <.*>
  +10f0:	d0 05 c0 08 	ld  \[ %l7 \+ %o0 \], %o0
- +10f4:	90 01 c0 08 	add  %g7, %o0, %o0
- +10f8:	01 00 00 00 	nop *
+ +10f4:	01 00 00 00 	nop *
+ +10f8:	90 01 c0 08 	add  %g7, %o0, %o0
  +10fc:	01 00 00 00 	nop *
  +1100:	01 00 00 00 	nop *
  +1104:	01 00 00 00 	nop *
@@ -91,8 +91,8 @@ Disassembly of section .text:
  +1130:	11 00 00 00 	sethi  %hi\(0\), %o0
  +1134:	90 02 20 24 	add  %o0, 0x24, %o0	! 24 <.*>
  +1138:	d0 05 c0 08 	ld  \[ %l7 \+ %o0 \], %o0
- +113c:	90 01 c0 08 	add  %g7, %o0, %o0
- +1140:	01 00 00 00 	nop *
+ +113c:	01 00 00 00 	nop *
+ +1140:	90 01 c0 08 	add  %g7, %o0, %o0
  +1144:	01 00 00 00 	nop *
  +1148:	01 00 00 00 	nop *
  +114c:	01 00 00 00 	nop *
diff --git a/ld/testsuite/ld-sparc/tlssunpic64.dd b/ld/testsuite/ld-sparc/tlssunpic64.dd
index 0b41b68..5e94858 100644
--- a/ld/testsuite/ld-sparc/tlssunpic64.dd
+++ b/ld/testsuite/ld-sparc/tlssunpic64.dd
@@ -37,8 +37,8 @@ Disassembly of section .text:
  +1058:	11 00 00 00 	sethi  %hi\(0\), %o0
  +105c:	92 02 20 78 	add  %o0, 0x78, %o1	! 78 <.*>
  +1060:	d0 5d c0 09 	ldx  \[ %l7 \+ %o1 \], %o0
- +1064:	90 01 c0 08 	add  %g7, %o0, %o0
- +1068:	01 00 00 00 	nop *
+ +1064:	01 00 00 00 	nop *
+ +1068:	90 01 c0 08 	add  %g7, %o0, %o0
  +106c:	01 00 00 00 	nop *
  +1070:	01 00 00 00 	nop *
  +1074:	01 00 00 00 	nop *
@@ -55,8 +55,8 @@ Disassembly of section .text:
  +10a0:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10a4:	90 02 20 18 	add  %o0, 0x18, %o0	! 18 <.*>
  +10a8:	d0 5d c0 08 	ldx  \[ %l7 \+ %o0 \], %o0
- +10ac:	90 01 c0 08 	add  %g7, %o0, %o0
- +10b0:	01 00 00 00 	nop *
+ +10ac:	01 00 00 00 	nop *
+ +10b0:	90 01 c0 08 	add  %g7, %o0, %o0
  +10b4:	01 00 00 00 	nop *
  +10b8:	01 00 00 00 	nop *
  +10bc:	01 00 00 00 	nop *
@@ -73,8 +73,8 @@ Disassembly of section .text:
  +10e8:	11 00 00 00 	sethi  %hi\(0\), %o0
  +10ec:	90 02 20 90 	add  %o0, 0x90, %o0	! 90 <.*>
  +10f0:	d0 5d c0 08 	ldx  \[ %l7 \+ %o0 \], %o0
- +10f4:	90 01 c0 08 	add  %g7, %o0, %o0
- +10f8:	01 00 00 00 	nop *
+ +10f4:	01 00 00 00 	nop *
+ +10f8:	90 01 c0 08 	add  %g7, %o0, %o0
  +10fc:	01 00 00 00 	nop *
  +1100:	01 00 00 00 	nop *
  +1104:	01 00 00 00 	nop *
@@ -91,8 +91,8 @@ Disassembly of section .text:
  +1130:	11 00 00 00 	sethi  %hi\(0\), %o0
  +1134:	90 02 20 48 	add  %o0, 0x48, %o0	! 48 <.*>
  +1138:	d0 5d c0 08 	ldx  \[ %l7 \+ %o0 \], %o0
- +113c:	90 01 c0 08 	add  %g7, %o0, %o0
- +1140:	01 00 00 00 	nop *
+ +113c:	01 00 00 00 	nop *
+ +1140:	90 01 c0 08 	add  %g7, %o0, %o0
  +1144:	01 00 00 00 	nop *
  +1148:	01 00 00 00 	nop *
  +114c:	01 00 00 00 	nop *

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch create
  2011-10-18 20:47       ` David Miller
@ 2011-10-18 22:21         ` Ian Lance Taylor
  2011-10-18 22:52         ` Eric Botcazou
  1 sibling, 0 replies; 40+ messages in thread
From: Ian Lance Taylor @ 2011-10-18 22:21 UTC (permalink / raw)
  To: David Miller; +Cc: ebotcazou, binutils, gingold

On Tue, Oct 18, 2011 at 1:46 PM, David Miller <davem@davemloft.net> wrote:
>
> gold/
>
>        PR binutils/13301
>        * sparc.cc (Target_sparc::Relocate::reloc_adjust_addr_): New
>        member to track relocation locations that have moved during TLS
>        reloc optimizations.
>        (Target_sparc::Relocate::Relocate): Initialize to NULL.
>        (Target_sparc::Relocate::relocate): Adjust view down by 4
>        bytes if it matches reloc_adjust_addr_.
>        (Target_sparc::Relocate::relocate_tls): Always move the
>        __tls_get_addr call delay slot instruction forward 4 bytes when
>        performing relaxation.

This part of the patch looks fine.

Thanks.

Ian

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch create
  2011-10-18 20:47       ` David Miller
  2011-10-18 22:21         ` Ian Lance Taylor
@ 2011-10-18 22:52         ` Eric Botcazou
  2011-10-18 23:22           ` David Miller
  1 sibling, 1 reply; 40+ messages in thread
From: Eric Botcazou @ 2011-10-18 22:52 UTC (permalink / raw)
  To: David Miller; +Cc: binutils, gingold

> Sorry for taking so long, here is something that should work better.
>
> bfd/
>
> 	PR binutils/13301
> 	* elfxx-sparc.c (sparc_elf_find_reloc_at_ofs): New function.
> 	(_bfd_sparc_elf_relocate_section): Always move the __tls_get_addr
> 	call delay slot instruction forward 4 bytes when performing
> 	relaxation.
>
> gold/
>
> 	PR binutils/13301
> 	* sparc.cc (Target_sparc::Relocate::reloc_adjust_addr_): New
> 	member to track relocation locations that have moved during TLS
> 	reloc optimizations.
> 	(Target_sparc::Relocate::Relocate): Initialize to NULL.
> 	(Target_sparc::Relocate::relocate): Adjust view down by 4
> 	bytes if it matches reloc_adjust_addr_.
> 	(Target_sparc::Relocate::relocate_tls): Always move the
> 	__tls_get_addr call delay slot instruction forward 4 bytes when
> 	performing relaxation.

Yes, the MPFR testsuite is all clean with it:

[tversion] GMP: header 4.2.4, library 4.2.4
[tversion] MPFR tuning parameters from src/sparc64/mparam.h
PASS: tversion
====================
All 160 tests passed
(1 test was not run)

for both linkers.  Thanks for fixing this!

-- 
Eric Botcazou

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: branch create
  2011-10-18 22:52         ` Eric Botcazou
@ 2011-10-18 23:22           ` David Miller
  0 siblings, 0 replies; 40+ messages in thread
From: David Miller @ 2011-10-18 23:22 UTC (permalink / raw)
  To: ebotcazou; +Cc: binutils, gingold

From: Eric Botcazou <ebotcazou@adacore.com>
Date: Wed, 19 Oct 2011 00:47:46 +0200

> Yes, the MPFR testsuite is all clean with it:
> 
> [tversion] GMP: header 4.2.4, library 4.2.4
> [tversion] MPFR tuning parameters from src/sparc64/mparam.h
> PASS: tversion
> ====================
> All 160 tests passed
> (1 test was not run)
> 
> for both linkers.  Thanks for fixing this!

Thanks for testing, I'll commit the fix in a few moments.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Release 2.22: Next week ...
  2011-09-22  9:17 Release 2.22: branch created Tristan Gingold
                   ` (3 preceding siblings ...)
  2011-10-16 14:49 ` Eric Botcazou
@ 2011-11-09  9:26 ` Tristan Gingold
  2011-11-17 14:51   ` Tristan Gingold
  2011-12-18 17:45 ` James Murray
  5 siblings, 1 reply; 40+ messages in thread
From: Tristan Gingold @ 2011-11-09  9:26 UTC (permalink / raw)
  To: binutils Development

Hi,

I plan to make the 2.22 release next week.
There are still a few pending back ports: micromips and 'V2 of get symbol linker plugin interface' come to my mind.

As usual, speak up if you think I missed something.

Tristan.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-11-09  9:26 ` Release 2.22: Next week Tristan Gingold
@ 2011-11-17 14:51   ` Tristan Gingold
  2011-11-17 15:10     ` Matthew Gretton-Dann
  0 siblings, 1 reply; 40+ messages in thread
From: Tristan Gingold @ 2011-11-17 14:51 UTC (permalink / raw)
  To: binutils Development


On Nov 9, 2011, at 10:25 AM, Tristan Gingold wrote:

> Hi,
> 
> I plan to make the 2.22 release next week.
> There are still a few pending back ports: micromips and 'V2 of get symbol linker plugin interface' come to my mind.
> 
> As usual, speak up if you think I missed something.

I have run the testsuite for most of the targets.  I think there aren't blocking regressions for a 22.0, although I think it would be nice to clean-up arm-eabi and mips*-* for the 22.1

Tristan.


alpha-linux: OK
arc-elf: OK
arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Long
arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 2
arm-linux-gnueabi: OK
avr: OK
bfin-elf: OK
cr16-elf: OK
cris-elf: OK
crx-elf: OK
d10v-elf: OK
d30v-elf: OK
dlx-elf: OK
fr30-elf: OK
frv-elf: OK
h8300-elf: FAIL: Check bad group
h8300-elf: FAIL: difference between forward references
hppa-hp-hpux10: OK
hppa-linux-gnu: FAIL: --gc-sections with __start_
hppa64-hp-hpux11.23: OK
i370-linux: FAIL: -shared --entry foo -u foo archive
i370-linux: FAIL: -shared --entry foo archive
i370-linux: FAIL: Build shared library for next test
i370-linux: FAIL: Weak symbols in dynamic objects 1 (main test)
i370-linux: FAIL: Weak symbols in dynamic objects 1 (support)
i370-linux: FAIL: bad byte directive
i370-linux: FAIL: ld link shared library
i370-linux: FAIL: ld-elf/compress1c
i370-linux: FAIL: ld-elf/dynamic1
i370-linux: FAIL: ld-elf/dynsym1
i370-linux: FAIL: ld-elf/hash
i370-linux: FAIL: ld-elf/local1
i370-linux: FAIL: ld-elf/textaddr1
i370-linux: FAIL: ld-elf/textaddr2
i370-linux: FAIL: ld-elf/textaddr3
i370-linux: FAIL: ld-elf/textaddr4
i370-linux: FAIL: ld-elf/textaddr5
i370-linux: FAIL: ld-elf/textaddr6
i370-linux: FAIL: ld-elf/unknown2
i370-linux: FAIL: read-only .eh_frame section
i370-linux: FAIL: read-only .gcc_except_table section
i686-pc-cygwin: OK
i686-pc-linux-gnu: OK
ia64-linux: OK
ip2k-elf: OK
iq2000-elf: OK
lm32-elf: OK
m32c-elf: OK
m32r-elf: OK
m68hc11-elf: OK
m68k-elf: OK
mcore-elf: OK
mep-elf: OK
microblaze-elf: OK
mingw32-pe: OK
mips-ecoff: FAIL: .set arch=FOO
mips-ecoff: FAIL: Loongson delay slot tests
mips-ecoff: FAIL: Loongson-3A tests
mips-ecoff: FAIL: Loongson-3A tests
mips-ecoff: FAIL: MCU for MIPS32r2 (mips32r2)
mips-ecoff: FAIL: MCU for MIPS32r2 (mips64r2)
mips-ecoff: FAIL: MIPS -mgp32 -mfp32
mips-ecoff: FAIL: MIPS -mgp32 -mfp64
mips-ecoff: FAIL: MIPS -mgp64 -mfp32
mips-ecoff: FAIL: MIPS -mgp64 -mfp64
mips-ecoff: FAIL: MIPS DSP ASE Rev2 for MIPS32
mips-ecoff: FAIL: MIPS DSP ASE for MIPS32
mips-ecoff: FAIL: MIPS DSP ASE for MIPS64
mips-ecoff: FAIL: MIPS MT ASE for MIPS32
mips-ecoff: FAIL: MIPS VR4111
mips-ecoff: FAIL: MIPS VR4120
mips-ecoff: FAIL: MIPS VR4130 workarounds
mips-ecoff: FAIL: MIPS VR5400
mips-ecoff: FAIL: MIPS VR5500
mips-ecoff: FAIL: MIPS align maximum
mips-ecoff: FAIL: MIPS jal mask 1.1 (mips3)
mips-ecoff: FAIL: MIPS jal mask 1.1 (mips4)
mips-ecoff: FAIL: MIPS jal mask 1.1 (mips5)
mips-ecoff: FAIL: MIPS jal mask 1.1 (mips64)
mips-ecoff: FAIL: MIPS jal mask 1.1 (mips64r2)
mips-ecoff: FAIL: MIPS jal mask 1.1 (octeon)
mips-ecoff: FAIL: MIPS jal mask 1.1 (r4000)
mips-ecoff: FAIL: MIPS jal mask 1.1 (sb1)
mips-ecoff: FAIL: MIPS jal mask 1.1 (vr5400)
mips-ecoff: FAIL: MIPS jal mask 1.1 (xlr)
mips-ecoff: FAIL: MIPS jal mask 1.2 (mips3)
mips-ecoff: FAIL: MIPS jal mask 1.2 (mips4)
mips-ecoff: FAIL: MIPS jal mask 1.2 (mips5)
mips-ecoff: FAIL: MIPS jal mask 1.2 (mips64)
mips-ecoff: FAIL: MIPS jal mask 1.2 (mips64r2)
mips-ecoff: FAIL: MIPS jal mask 1.2 (octeon)
mips-ecoff: FAIL: MIPS jal mask 1.2 (r4000)
mips-ecoff: FAIL: MIPS jal mask 1.2 (sb1)
mips-ecoff: FAIL: MIPS jal mask 1.2 (vr5400)
mips-ecoff: FAIL: MIPS jal mask 1.2 (xlr)
mips-ecoff: FAIL: MIPS l.d (mips3)
mips-ecoff: FAIL: MIPS l.d (mips4)
mips-ecoff: FAIL: MIPS l.d (mips5)
mips-ecoff: FAIL: MIPS l.d (mips64)
mips-ecoff: FAIL: MIPS l.d (mips64r2)
mips-ecoff: FAIL: MIPS l.d (octeon)
mips-ecoff: FAIL: MIPS l.d (r4000)
mips-ecoff: FAIL: MIPS l.d (sb1)
mips-ecoff: FAIL: MIPS l.d (vr5400)
mips-ecoff: FAIL: MIPS l.d (xlr)
mips-ecoff: FAIL: MIPS l.d forward (mips3)
mips-ecoff: FAIL: MIPS l.d forward (mips4)
mips-ecoff: FAIL: MIPS l.d forward (mips5)
mips-ecoff: FAIL: MIPS l.d forward (mips64)
mips-ecoff: FAIL: MIPS l.d forward (mips64r2)
mips-ecoff: FAIL: MIPS l.d forward (octeon)
mips-ecoff: FAIL: MIPS l.d forward (r4000)
mips-ecoff: FAIL: MIPS l.d forward (sb1)
mips-ecoff: FAIL: MIPS l.d forward (vr5400)
mips-ecoff: FAIL: MIPS l.d forward (xlr)
mips-ecoff: FAIL: MIPS lb (mips1)
mips-ecoff: FAIL: MIPS lb (r3000)
mips-ecoff: FAIL: MIPS lb (r3900)
mips-ecoff: FAIL: MIPS ld (mips3)
mips-ecoff: FAIL: MIPS ld (mips4)
mips-ecoff: FAIL: MIPS ld (mips5)
mips-ecoff: FAIL: MIPS ld (mips64)
mips-ecoff: FAIL: MIPS ld (mips64r2)
mips-ecoff: FAIL: MIPS ld (octeon)
mips-ecoff: FAIL: MIPS ld (r4000)
mips-ecoff: FAIL: MIPS ld (sb1)
mips-ecoff: FAIL: MIPS ld (vr5400)
mips-ecoff: FAIL: MIPS ld (xlr)
mips-ecoff: FAIL: MIPS ld forward (mips3)
mips-ecoff: FAIL: MIPS ld forward (mips4)
mips-ecoff: FAIL: MIPS ld forward (mips5)
mips-ecoff: FAIL: MIPS ld forward (mips64)
mips-ecoff: FAIL: MIPS ld forward (mips64r2)
mips-ecoff: FAIL: MIPS ld forward (octeon)
mips-ecoff: FAIL: MIPS ld forward (r4000)
mips-ecoff: FAIL: MIPS ld forward (sb1)
mips-ecoff: FAIL: MIPS ld forward (vr5400)
mips-ecoff: FAIL: MIPS ld forward (xlr)
mips-ecoff: FAIL: MIPS ld-st-la (EABI64)
mips-ecoff: FAIL: MIPS ld-st-la bad constants (ABI o32)
mips-ecoff: FAIL: MIPS ld-st-la bad constants (ABI o32, mips3)
mips-ecoff: FAIL: MIPS ld-st-la bad constants (ABI o32, mips3, shared)
mips-ecoff: FAIL: MIPS ld-st-la bad constants (ABI o32, shared)
mips-ecoff: FAIL: MIPS ld-st-la constants (ABI o32)
mips-ecoff: FAIL: MIPS ld-st-la constants (ABI o32, mips3)
mips-ecoff: FAIL: MIPS ld-st-la constants (ABI o32, mips3, shared)
mips-ecoff: FAIL: MIPS ld-st-la constants (ABI o32, shared)
mips-ecoff: FAIL: MIPS ldc1 (mips3)
mips-ecoff: FAIL: MIPS ldc1 (mips4)
mips-ecoff: FAIL: MIPS ldc1 (mips5)
mips-ecoff: FAIL: MIPS ldc1 (mips64)
mips-ecoff: FAIL: MIPS ldc1 (mips64r2)
mips-ecoff: FAIL: MIPS ldc1 (octeon)
mips-ecoff: FAIL: MIPS ldc1 (r4000)
mips-ecoff: FAIL: MIPS ldc1 (sb1)
mips-ecoff: FAIL: MIPS ldc1 (vr5400)
mips-ecoff: FAIL: MIPS ldc1 (xlr)
mips-ecoff: FAIL: MIPS ldc1 forward (mips3)
mips-ecoff: FAIL: MIPS ldc1 forward (mips4)
mips-ecoff: FAIL: MIPS ldc1 forward (mips5)
mips-ecoff: FAIL: MIPS ldc1 forward (mips64)
mips-ecoff: FAIL: MIPS ldc1 forward (mips64r2)
mips-ecoff: FAIL: MIPS ldc1 forward (octeon)
mips-ecoff: FAIL: MIPS ldc1 forward (r4000)
mips-ecoff: FAIL: MIPS ldc1 forward (sb1)
mips-ecoff: FAIL: MIPS ldc1 forward (vr5400)
mips-ecoff: FAIL: MIPS ldc1 forward (xlr)
mips-ecoff: FAIL: MIPS mips32r2-ill-fp64 (mips64r2)
mips-ecoff: FAIL: MIPS mips32r2-ill-fp64 (octeon)
mips-ecoff: FAIL: MIPS octeon instructions (octeon)
mips-ecoff: FAIL: MIPS octeon-pref mfix-cn63xxp1 (octeon)
mips-ecoff: FAIL: MIPS odd float
mips-ecoff: FAIL: MIPS relax (mips2)
mips-ecoff: FAIL: MIPS relax (mips3)
mips-ecoff: FAIL: MIPS relax (mips32)
mips-ecoff: FAIL: MIPS relax (mips32r2)
mips-ecoff: FAIL: MIPS relax (mips4)
mips-ecoff: FAIL: MIPS relax (mips5)
mips-ecoff: FAIL: MIPS relax (mips64)
mips-ecoff: FAIL: MIPS relax (mips64r2)
mips-ecoff: FAIL: MIPS relax (octeon)
mips-ecoff: FAIL: MIPS relax (r4000)
mips-ecoff: FAIL: MIPS relax (sb1)
mips-ecoff: FAIL: MIPS relax (vr5400)
mips-ecoff: FAIL: MIPS relax (xlr)
mips-ecoff: FAIL: MIPS relax with .set at (mips2)
mips-ecoff: FAIL: MIPS relax with .set at (mips3)
mips-ecoff: FAIL: MIPS relax with .set at (mips32)
mips-ecoff: FAIL: MIPS relax with .set at (mips32r2)
mips-ecoff: FAIL: MIPS relax with .set at (mips4)
mips-ecoff: FAIL: MIPS relax with .set at (mips5)
mips-ecoff: FAIL: MIPS relax with .set at (mips64)
mips-ecoff: FAIL: MIPS relax with .set at (mips64r2)
mips-ecoff: FAIL: MIPS relax with .set at (octeon)
mips-ecoff: FAIL: MIPS relax with .set at (r4000)
mips-ecoff: FAIL: MIPS relax with .set at (sb1)
mips-ecoff: FAIL: MIPS relax with .set at (vr5400)
mips-ecoff: FAIL: MIPS relax with .set at (xlr)
mips-ecoff: FAIL: MIPS s.d (mips3)
mips-ecoff: FAIL: MIPS s.d (mips4)
mips-ecoff: FAIL: MIPS s.d (mips5)
mips-ecoff: FAIL: MIPS s.d (mips64)
mips-ecoff: FAIL: MIPS s.d (mips64r2)
mips-ecoff: FAIL: MIPS s.d (octeon)
mips-ecoff: FAIL: MIPS s.d (r4000)
mips-ecoff: FAIL: MIPS s.d (sb1)
mips-ecoff: FAIL: MIPS s.d (vr5400)
mips-ecoff: FAIL: MIPS s.d (xlr)
mips-ecoff: FAIL: MIPS s.d forward (mips3)
mips-ecoff: FAIL: MIPS s.d forward (mips4)
mips-ecoff: FAIL: MIPS s.d forward (mips5)
mips-ecoff: FAIL: MIPS s.d forward (mips64)
mips-ecoff: FAIL: MIPS s.d forward (mips64r2)
mips-ecoff: FAIL: MIPS s.d forward (octeon)
mips-ecoff: FAIL: MIPS s.d forward (r4000)
mips-ecoff: FAIL: MIPS s.d forward (sb1)
mips-ecoff: FAIL: MIPS s.d forward (vr5400)
mips-ecoff: FAIL: MIPS s.d forward (xlr)
mips-ecoff: FAIL: MIPS sd (mips3)
mips-ecoff: FAIL: MIPS sd (mips4)
mips-ecoff: FAIL: MIPS sd (mips5)
mips-ecoff: FAIL: MIPS sd (mips64)
mips-ecoff: FAIL: MIPS sd (mips64r2)
mips-ecoff: FAIL: MIPS sd (octeon)
mips-ecoff: FAIL: MIPS sd (r4000)
mips-ecoff: FAIL: MIPS sd (sb1)
mips-ecoff: FAIL: MIPS sd (vr5400)
mips-ecoff: FAIL: MIPS sd (xlr)
mips-ecoff: FAIL: MIPS sd forward (mips3)
mips-ecoff: FAIL: MIPS sd forward (mips4)
mips-ecoff: FAIL: MIPS sd forward (mips5)
mips-ecoff: FAIL: MIPS sd forward (mips64)
mips-ecoff: FAIL: MIPS sd forward (mips64r2)
mips-ecoff: FAIL: MIPS sd forward (octeon)
mips-ecoff: FAIL: MIPS sd forward (r4000)
mips-ecoff: FAIL: MIPS sd forward (sb1)
mips-ecoff: FAIL: MIPS sd forward (vr5400)
mips-ecoff: FAIL: MIPS sd forward (xlr)
mips-ecoff: FAIL: MIPS sdc1 (mips3)
mips-ecoff: FAIL: MIPS sdc1 (mips4)
mips-ecoff: FAIL: MIPS sdc1 (mips5)
mips-ecoff: FAIL: MIPS sdc1 (mips64)
mips-ecoff: FAIL: MIPS sdc1 (mips64r2)
mips-ecoff: FAIL: MIPS sdc1 (octeon)
mips-ecoff: FAIL: MIPS sdc1 (r4000)
mips-ecoff: FAIL: MIPS sdc1 (sb1)
mips-ecoff: FAIL: MIPS sdc1 (vr5400)
mips-ecoff: FAIL: MIPS sdc1 (xlr)
mips-ecoff: FAIL: MIPS sdc1 forward (mips3)
mips-ecoff: FAIL: MIPS sdc1 forward (mips4)
mips-ecoff: FAIL: MIPS sdc1 forward (mips5)
mips-ecoff: FAIL: MIPS sdc1 forward (mips64)
mips-ecoff: FAIL: MIPS sdc1 forward (mips64r2)
mips-ecoff: FAIL: MIPS sdc1 forward (octeon)
mips-ecoff: FAIL: MIPS sdc1 forward (r4000)
mips-ecoff: FAIL: MIPS sdc1 forward (sb1)
mips-ecoff: FAIL: MIPS sdc1 forward (vr5400)
mips-ecoff: FAIL: MIPS sdc1 forward (xlr)
mips-ecoff: FAIL: MIPS1 branch relaxation with swapping
mips-ecoff: FAIL: MIPS2 branch likely relaxation with swapping
mips-ecoff: FAIL: MIPS2 branch relaxation with swapping
mips-ecoff: FAIL: MIPS32 odd single-precision float registers (mips32)
mips-ecoff: FAIL: MIPS32 odd single-precision float registers (mips32r2)
mips-ecoff: FAIL: MIPS32 odd single-precision float registers (mips64)
mips-ecoff: FAIL: MIPS32 odd single-precision float registers (mips64r2)
mips-ecoff: FAIL: MIPS32 odd single-precision float registers (octeon)
mips-ecoff: FAIL: MIPS32 odd single-precision float registers (sb1)
mips-ecoff: FAIL: MIPS32 odd single-precision float registers (xlr)
mips-ecoff: FAIL: ST Microelectronics Loongson-2E tests
mips-ecoff: FAIL: ST Microelectronics Loongson-2F tests
mips-ecoff: FAIL: ST Microelectronics Loongson-2F workarounds of Jump Instruction issue
mips-ecoff: FAIL: ST Microelectronics Loongson-2F workarounds of nop issue
mips-ecoff: FAIL: SmartMIPS
mips-ecoff: FAIL: assembly line numbers
mips-ecoff: FAIL: gas/mips/align2
mips-ecoff: FAIL: gas/mips/align2-el
mips-ecoff: FAIL: gas/mips/call-nonpic-1
mips-ecoff: FAIL: gas/mips/macro-warn-1
mips-ecoff: FAIL: gas/mips/macro-warn-2
mips-ecoff: FAIL: gas/mips/mips16-vis-1
mips-ecoff: FAIL: gas/mips/pr12915
mips-ecoff: FAIL: gas/mips/reginfo-1a
mips-ecoff: FAIL: gas/mips/reginfo-1b
mips-ecoff: FAIL: gas/mips/vxworks1
mips-ecoff: FAIL: gas/mips/vxworks1-el
mips-ecoff: FAIL: gas/mips/vxworks1-xgot
mips-ecoff: FAIL: gas/mips/vxworks1-xgot-el
mips-ecoff: FAIL: ld-scripts/defined5
mips-ecoff: FAIL: noreorder test
mips-elf: FAIL: --localize-hidden test 1
mips-elf: FAIL: Global calls from mips16
mips-elf: FAIL: MIPS DWARF-2 location information with branch swapping (2) (micromips)
mips-elf: FAIL: MIPS eh-frame 3
mips-elf: FAIL: MIPS eh-frame 4
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-00
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-01
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-02
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-03
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-04
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-05
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-10
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-11
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-12
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-13
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-14
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-15
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-20
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-21
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-22
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-23
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-24
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-25
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-30
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-31
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-32
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-33
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-34
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-35
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-40
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-41
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-42
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-43
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-44
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-45
mips-elf: FAIL: ld-mips-elf/attr-gnu-4-51
mips-linux: FAIL: --gc-sections with __start_
mips-linux: FAIL: MIPS DWARF-2 location information with branch swapping (2) (micromips)
mips64-elf: FAIL: --localize-hidden test 1
mips64-elf: FAIL: Global calls from mips16
mips64-elf: FAIL: MIPS DWARF-2 location information with branch swapping (2) (micromips)
mips64-elf: FAIL: MIPS eh-frame 3
mips64-elf: FAIL: MIPS eh-frame 4
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-00
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-01
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-02
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-03
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-04
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-05
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-10
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-11
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-12
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-13
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-14
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-15
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-20
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-21
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-22
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-23
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-24
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-25
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-30
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-31
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-32
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-33
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-34
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-35
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-40
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-41
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-42
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-43
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-44
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-45
mips64-elf: FAIL: ld-mips-elf/attr-gnu-4-51
mmix: FAIL: gas/mmix/fb-2
mmix: FAIL: ld-mmix/bpo-10
mmix: FAIL: ld-mmix/bpo-11
mmix: FAIL: ld-mmix/bpo-9
mmix: FAIL: ld-mmix/sec-7m
mn10200-elf: FAIL: difference between forward references
mn10300-elf: OK
moxie-elf: OK
msp430-elf: OK
pdp11-dec-aout: OK
pj-elf: OK
powerpc-elf: OK
powerpc64-elf: OK
rs6000-ibm-aix6: OK
rx-elf: FAIL: --set-section-flags test 1 (sections)
rx-elf: FAIL: --sort-section alignment
rx-elf: FAIL: --sort-section name
rx-elf: FAIL: ALIGNOF
rx-elf: FAIL: MEMORY
rx-elf: FAIL: PHDRS
rx-elf: FAIL: SORT_BY_ALIGNMENT
rx-elf: FAIL: SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT())
rx-elf: FAIL: SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT()) --sort-section alignment
rx-elf: FAIL: SORT_BY_ALIGNMENT(SORT_BY_ALIGNMENT()) --sort-section name
rx-elf: FAIL: SORT_BY_ALIGNMENT(SORT_BY_NAME())
rx-elf: FAIL: SORT_BY_ALIGNMENT(SORT_BY_NAME()) --sort-section alignment
rx-elf: FAIL: SORT_BY_ALIGNMENT(SORT_BY_NAME()) --sort-section name
rx-elf: FAIL: SORT_BY_NAME(SORT_BY_ALIGNMENT())
rx-elf: FAIL: SORT_BY_NAME(SORT_BY_ALIGNMENT()) --sort-section alignment
rx-elf: FAIL: SORT_BY_NAME(SORT_BY_ALIGNMENT()) --sort-section alignment
rx-elf: FAIL: SORT_BY_NAME(SORT_BY_NAME())
rx-elf: FAIL: SORT_BY_NAME(SORT_BY_NAME()) --sort-section alignment
rx-elf: FAIL: SORT_BY_NAME(SORT_BY_NAME()) --sort-section name
rx-elf: FAIL: align1
rx-elf: FAIL: check sections 2
rx-elf: FAIL: copy with setting section flags 3
rx-elf: FAIL: gas/rx/abs
rx-elf: FAIL: gas/rx/adc
rx-elf: FAIL: gas/rx/add
rx-elf: FAIL: gas/rx/and
rx-elf: FAIL: gas/rx/bclr
rx-elf: FAIL: gas/rx/bcnd
rx-elf: FAIL: gas/rx/bmcnd
rx-elf: FAIL: gas/rx/bnot
rx-elf: FAIL: gas/rx/bra
rx-elf: FAIL: gas/rx/brk
rx-elf: FAIL: gas/rx/bset
rx-elf: FAIL: gas/rx/bsr
rx-elf: FAIL: gas/rx/btst
rx-elf: FAIL: gas/rx/clrpsw
rx-elf: FAIL: gas/rx/cmp
rx-elf: FAIL: gas/rx/dbt
rx-elf: FAIL: gas/rx/div
rx-elf: FAIL: gas/rx/divu
rx-elf: FAIL: gas/rx/emul
rx-elf: FAIL: gas/rx/emulu
rx-elf: FAIL: gas/rx/fadd
rx-elf: FAIL: gas/rx/fcmp
rx-elf: FAIL: gas/rx/fdiv
rx-elf: FAIL: gas/rx/fmul
rx-elf: FAIL: gas/rx/fsub
rx-elf: FAIL: gas/rx/ftoi
rx-elf: FAIL: gas/rx/gprel
rx-elf: FAIL: gas/rx/int
rx-elf: FAIL: gas/rx/itof
rx-elf: FAIL: gas/rx/jmp
rx-elf: FAIL: gas/rx/jsr
rx-elf: FAIL: gas/rx/machi
rx-elf: FAIL: gas/rx/maclo
rx-elf: FAIL: gas/rx/max
rx-elf: FAIL: gas/rx/min
rx-elf: FAIL: gas/rx/mov
rx-elf: FAIL: gas/rx/movu
rx-elf: FAIL: gas/rx/mul
rx-elf: FAIL: gas/rx/mulhi
rx-elf: FAIL: gas/rx/mullo
rx-elf: FAIL: gas/rx/mvfachi
rx-elf: FAIL: gas/rx/mvfaclo
rx-elf: FAIL: gas/rx/mvfacmi
rx-elf: FAIL: gas/rx/mvfc
rx-elf: FAIL: gas/rx/mvfcp
rx-elf: FAIL: gas/rx/mvtachi
rx-elf: FAIL: gas/rx/mvtaclo
rx-elf: FAIL: gas/rx/mvtc
rx-elf: FAIL: gas/rx/mvtcp
rx-elf: FAIL: gas/rx/neg
rx-elf: FAIL: gas/rx/nop
rx-elf: FAIL: gas/rx/not
rx-elf: FAIL: gas/rx/opecp
rx-elf: FAIL: gas/rx/or
rx-elf: FAIL: gas/rx/pop
rx-elf: FAIL: gas/rx/popc
rx-elf: FAIL: gas/rx/popm
rx-elf: FAIL: gas/rx/push
rx-elf: FAIL: gas/rx/pushc
rx-elf: FAIL: gas/rx/pushm
rx-elf: FAIL: gas/rx/r-bcc
rx-elf: FAIL: gas/rx/r-bra
rx-elf: FAIL: gas/rx/racw
rx-elf: FAIL: gas/rx/revl
rx-elf: FAIL: gas/rx/revw
rx-elf: FAIL: gas/rx/rmpa
rx-elf: FAIL: gas/rx/rolc
rx-elf: FAIL: gas/rx/rorc
rx-elf: FAIL: gas/rx/rotl
rx-elf: FAIL: gas/rx/rotr
rx-elf: FAIL: gas/rx/round
rx-elf: FAIL: gas/rx/rte
rx-elf: FAIL: gas/rx/rtfi
rx-elf: FAIL: gas/rx/rts
rx-elf: FAIL: gas/rx/rtsd
rx-elf: FAIL: gas/rx/sat
rx-elf: FAIL: gas/rx/satr
rx-elf: FAIL: gas/rx/sbb
rx-elf: FAIL: gas/rx/sccnd
rx-elf: FAIL: gas/rx/scmpu
rx-elf: FAIL: gas/rx/setpsw
rx-elf: FAIL: gas/rx/shar
rx-elf: FAIL: gas/rx/shll
rx-elf: FAIL: gas/rx/shlr
rx-elf: FAIL: gas/rx/smovb
rx-elf: FAIL: gas/rx/smovf
rx-elf: FAIL: gas/rx/smovu
rx-elf: FAIL: gas/rx/sstr
rx-elf: FAIL: gas/rx/stnz
rx-elf: FAIL: gas/rx/stz
rx-elf: FAIL: gas/rx/sub
rx-elf: FAIL: gas/rx/suntil
rx-elf: FAIL: gas/rx/swhile
rx-elf: FAIL: gas/rx/tst
rx-elf: FAIL: gas/rx/wait
rx-elf: FAIL: gas/rx/xchg
rx-elf: FAIL: gas/rx/xor
rx-elf: FAIL: include-1
rx-elf: FAIL: ld-discard/extern
rx-elf: FAIL: ld-discard/start
rx-elf: FAIL: ld-discard/static
rx-elf: FAIL: ld-elf/merge
rx-elf: FAIL: ld-elf/merge2
rx-elf: FAIL: ld-elf/note-2
rx-elf: FAIL: ld-elf/orphan
rx-elf: FAIL: ld-elf/orphan-region
rx-elf: FAIL: ld-elf/orphan2
rx-elf: FAIL: ld-scripts/align2a
rx-elf: FAIL: ld-scripts/align2b
rx-elf: FAIL: ld-scripts/default-script1
rx-elf: FAIL: ld-scripts/default-script2
rx-elf: FAIL: ld-scripts/default-script3
rx-elf: FAIL: ld-scripts/default-script4
rx-elf: FAIL: ld-scripts/empty-aligned
rx-elf: FAIL: ld-scripts/provide-1
rx-elf: FAIL: ld-scripts/size-1
rx-elf: FAIL: ld-scripts/size-2
rx-elf: FAIL: objcopy --reverse-bytes
rx-elf: FAIL: objdump -h
rx-elf: FAIL: objdump -r
rx-elf: FAIL: objdump -s
rx-elf: FAIL: readelf -S
rx-elf: FAIL: readelf -p: missing: .*test_string.*
rx-elf: FAIL: readelf -r
rx-elf: FAIL: relocatable with script
rx-elf: FAIL: rgn-over1 (map check)
rx-elf: FAIL: rgn-over2 (map check)
rx-elf: FAIL: rgn-over3 (map check)
rx-elf: FAIL: rgn-over4 (map check)
rx-elf: FAIL: rgn-over5 (map check)
rx-elf: FAIL: rgn-over6 (map check)
rx-elf: FAIL: rgn-over7 (map check)
rx-elf: FAIL: script
rx-elf: FAIL: size -A
rx-elf: FAIL: weak symbols
rx-elf: FAIL: weak undefined symbols
s390-linux: OK
score-elf: FAIL: gas/score/branch_32
score-elf: FAIL: gas/score/branch_32-lt
score-elf: FAIL: ld-elf/orphan4
sh4-elf: OK
sh64-elf: OK
sparc-elf: OK
sparc64-elf: OK
spu-elf: OK
tic4x-coff: FAIL: .strings tests
tic4x-coff: FAIL: bad byte directive
tic4x-coff: FAIL: include-1
tic4x-coff: FAIL: ld-scripts/data
tic4x-coff: FAIL: ld-scripts/size-1
tic4x-coff: FAIL: objcopy (simple copy)
tic54x-coff: FAIL: -l: test
tic54x-coff: FAIL: -l: test (preparation)
tic54x-coff: FAIL: APP with macro then NO_APP
tic54x-coff: FAIL: APP with macro then NO_APP then more code
tic54x-coff: FAIL: APP with macro without NO_APP
tic54x-coff: FAIL: bad byte directive
tic54x-coff: FAIL: c54x cons tests
tic54x-coff: FAIL: c54x cons tests, w/extended addressing
tic54x-coff: FAIL: c54x field directive
tic54x-coff: FAIL: c54x set/equ directive
tic54x-coff: FAIL: c54x subsyms
tic54x-coff: FAIL: include-1
tic54x-coff: FAIL: included file with .if 0 wrapped in APP/NO_APP, no final NO_APP, macro in main file
tic54x-coff: FAIL: ld-scripts/data
tic54x-coff: FAIL: ld-scripts/default-script1
tic54x-coff: FAIL: ld-scripts/default-script2
tic54x-coff: FAIL: ld-scripts/default-script3
tic54x-coff: FAIL: ld-scripts/default-script4
tic54x-coff: FAIL: ld-scripts/empty-address-1
tic54x-coff: FAIL: ld-scripts/empty-address-2a
tic54x-coff: FAIL: ld-scripts/empty-address-2b
tic54x-coff: FAIL: ld-scripts/provide-1
tic54x-coff: FAIL: ld-scripts/provide-2
tic54x-coff: FAIL: ld-scripts/size-1
tic6x-elf: FAIL: Build shared library for next test
tic6x-elf: FAIL: Link eh-group.o to eh-group
tilegx-elf: OK
tilepro-elf: FAIL: readelf -S
tx39-elf: OK
v850-elf: OK
vax-netbsdelf: OK
x86_64-pc-linux-gnu: OK
x86_64-w64-mingw32: OK
xstormy16-elf: OK
xtensa-elf: OK
z80-coff: OK
z8k-coff: OK

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-11-17 14:51   ` Tristan Gingold
@ 2011-11-17 15:10     ` Matthew Gretton-Dann
  2011-11-17 15:20       ` Tristan Gingold
  0 siblings, 1 reply; 40+ messages in thread
From: Matthew Gretton-Dann @ 2011-11-17 15:10 UTC (permalink / raw)
  To: Tristan Gingold; +Cc: binutils Development

On 17/11/11 14:50, Tristan Gingold wrote:
> On Nov 9, 2011, at 10:25 AM, Tristan Gingold wrote:
>
>> Hi,
>>
>> I plan to make the 2.22 release next week.
>> There are still a few pending back ports: micromips and 'V2 of get symbol linker plugin interface' come to my mind.
>>
>> As usual, speak up if you think I missed something.
>
> I have run the testsuite for most of the targets.  I think there aren't blocking regressions for a 22.0, although I think it would be nice to clean-up arm-eabi and mips*-* for the 22.1

> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Long
> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 2

I thought I had fixed these with:
	http://sourceware.org/ml/binutils/2011-11/msg00072.html

Which was committed:
	http://sourceware.org/ml/binutils-cvs/2011-11/msg00042.html

When I run the tests myself targetting arm-none-eabi they pass, as they 
also (I am assuming) in your arm-linux-gnueabi run (you didn't highlight 
them there).

Do you mind sending me the appropriate part of ld.log from the testrun 
and I will try to see if I can reproduce the failure?

Thanks,

Matt

-- 
Matthew Gretton-Dann
Principal Engineer, PD Software - Tools, ARM Ltd

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-11-17 15:10     ` Matthew Gretton-Dann
@ 2011-11-17 15:20       ` Tristan Gingold
  2011-11-17 17:34         ` Matthew Gretton-Dann
  2011-11-18  7:48         ` Doug Kwan (關振德)
  0 siblings, 2 replies; 40+ messages in thread
From: Tristan Gingold @ 2011-11-17 15:20 UTC (permalink / raw)
  To: Matthew Gretton-Dann; +Cc: binutils Development


On Nov 17, 2011, at 4:10 PM, Matthew Gretton-Dann wrote:

> On 17/11/11 14:50, Tristan Gingold wrote:
>> On Nov 9, 2011, at 10:25 AM, Tristan Gingold wrote:
>> 
>>> Hi,
>>> 
>>> I plan to make the 2.22 release next week.
>>> There are still a few pending back ports: micromips and 'V2 of get symbol linker plugin interface' come to my mind.
>>> 
>>> As usual, speak up if you think I missed something.
>> 
>> I have run the testsuite for most of the targets.  I think there aren't blocking regressions for a 22.0, although I think it would be nice to clean-up arm-eabi and mips*-* for the 22.1
> 
>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Long
>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 2
> 
> I thought I had fixed these with:
> 	http://sourceware.org/ml/binutils/2011-11/msg00072.html
> 
> Which was committed:
> 	http://sourceware.org/ml/binutils-cvs/2011-11/msg00042.html
> 
> When I run the tests myself targetting arm-none-eabi they pass, as they also (I am assuming) in your arm-linux-gnueabi run (you didn't highlight them there).

Yes, I was surprised too.

> Do you mind sending me the appropriate part of ld.log from the testrun and I will try to see if I can reproduce the failure?

Sure:

/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s
Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s 2>&1}  /dev/null ld.tmp (timeout = 300)
/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o
Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o 2>&1}  /dev/null ld.tmp (timeout = 300)
Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1 >dump.out 2>ld.stderr}  /dev/null  (timeout = 300)
/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1
regexp_diff match failure
regexp "^    9000:      e7fe            b.n     9000 <dest>$"
line   "    9000:       f7ff bffe       b.w     9000 <dest>"
FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1

Tell me if you need more.

Tristan.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-11-17 15:20       ` Tristan Gingold
@ 2011-11-17 17:34         ` Matthew Gretton-Dann
  2011-11-18 11:03           ` Tristan Gingold
  2011-11-18  7:48         ` Doug Kwan (關振德)
  1 sibling, 1 reply; 40+ messages in thread
From: Matthew Gretton-Dann @ 2011-11-17 17:34 UTC (permalink / raw)
  To: Tristan Gingold; +Cc: binutils Development

On 17/11/11 15:19, Tristan Gingold wrote:
>
> On Nov 17, 2011, at 4:10 PM, Matthew Gretton-Dann wrote:
>
>> On 17/11/11 14:50, Tristan Gingold wrote:
>>> On Nov 9, 2011, at 10:25 AM, Tristan Gingold wrote:
>>>
>>>> Hi,
>>>>
>>>> I plan to make the 2.22 release next week.
>>>> There are still a few pending back ports: micromips and 'V2 of get symbol linker plugin interface' come to my mind.
>>>>
>>>> As usual, speak up if you think I missed something.
>>>
>>> I have run the testsuite for most of the targets.  I think there aren't blocking regressions for a 22.0, although I think it would be nice to clean-up arm-eabi and mips*-* for the 22.1
>>
>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Long
>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 2
>>
>> I thought I had fixed these with:
>> 	http://sourceware.org/ml/binutils/2011-11/msg00072.html
>>
>> Which was committed:
>> 	http://sourceware.org/ml/binutils-cvs/2011-11/msg00042.html
>>
>> When I run the tests myself targetting arm-none-eabi they pass, as they also (I am assuming) in your arm-linux-gnueabi run (you didn't highlight them there).
>
> Yes, I was surprised too.
>
>> Do you mind sending me the appropriate part of ld.log from the testrun and I will try to see if I can reproduce the failure?
>
> Sure:
>
> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s
> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s 2>&1}  /dev/null ld.tmp (timeout = 300)
> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o
> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o 2>&1}  /dev/null ld.tmp (timeout = 300)
> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1>dump.out 2>ld.stderr}  /dev/null  (timeout = 300)
> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1
> regexp_diff match failure
> regexp "^    9000:      e7fe            b.n     9000<dest>$"
> line   "    9000:       f7ff bffe       b.w     9000<dest>"
> FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1

So this looks like the failure mode I fixed.

> Tell me if you need more.

I still can't reproduce this - can you send me you configure 
command-line and the host you are running on please?

I don't think this is a reason to hold the release up - the failure is 
not a failure in the linker, but rather the test not keeping up with a 
(correct) change in the assembler's output.

Thanks,

Matt


-- 
Matthew Gretton-Dann
Principal Engineer, PD Software - Tools, ARM Ltd

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-11-17 15:20       ` Tristan Gingold
  2011-11-17 17:34         ` Matthew Gretton-Dann
@ 2011-11-18  7:48         ` Doug Kwan (關振德)
  2011-11-21  9:43           ` Tristan Gingold
  1 sibling, 1 reply; 40+ messages in thread
From: Doug Kwan (關振德) @ 2011-11-18  7:48 UTC (permalink / raw)
  To: Tristan Gingold; +Cc: Matthew Gretton-Dann, binutils Development

Tristan,

If you don't mind, can I also backport these gold's ARM fixes for test
regression?

http://sourceware.org/ml/binutils-cvs/2011-11/msg00047.html
http://sourceware.org/ml/binutils-cvs/2011-11/msg00041.html
http://sourceware.org/ml/binutils-cvs/2011-11/msg00043.html

-Doug

On Thu, Nov 17, 2011 at 7:19 AM, Tristan Gingold <gingold@adacore.com> wrote:
>
> On Nov 17, 2011, at 4:10 PM, Matthew Gretton-Dann wrote:
>
>> On 17/11/11 14:50, Tristan Gingold wrote:
>>> On Nov 9, 2011, at 10:25 AM, Tristan Gingold wrote:
>>>
>>>> Hi,
>>>>
>>>> I plan to make the 2.22 release next week.
>>>> There are still a few pending back ports: micromips and 'V2 of get symbol linker plugin interface' come to my mind.
>>>>
>>>> As usual, speak up if you think I missed something.
>>>
>>> I have run the testsuite for most of the targets.  I think there aren't blocking regressions for a 22.0, although I think it would be nice to clean-up arm-eabi and mips*-* for the 22.1
>>
>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Long
>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 2
>>
>> I thought I had fixed these with:
>>       http://sourceware.org/ml/binutils/2011-11/msg00072.html
>>
>> Which was committed:
>>       http://sourceware.org/ml/binutils-cvs/2011-11/msg00042.html
>>
>> When I run the tests myself targetting arm-none-eabi they pass, as they also (I am assuming) in your arm-linux-gnueabi run (you didn't highlight them there).
>
> Yes, I was surprised too.
>
>> Do you mind sending me the appropriate part of ld.log from the testrun and I will try to see if I can reproduce the failure?
>
> Sure:
>
> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s
> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s 2>&1}  /dev/null ld.tmp (timeout = 300)
> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o
> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o 2>&1}  /dev/null ld.tmp (timeout = 300)
> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1 >dump.out 2>ld.stderr}  /dev/null  (timeout = 300)
> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1
> regexp_diff match failure
> regexp "^    9000:      e7fe            b.n     9000 <dest>$"
> line   "    9000:       f7ff bffe       b.w     9000 <dest>"
> FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
>
> Tell me if you need more.
>
> Tristan.
>
>

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-11-17 17:34         ` Matthew Gretton-Dann
@ 2011-11-18 11:03           ` Tristan Gingold
  0 siblings, 0 replies; 40+ messages in thread
From: Tristan Gingold @ 2011-11-18 11:03 UTC (permalink / raw)
  To: Matthew Gretton-Dann; +Cc: binutils Development


On Nov 17, 2011, at 6:34 PM, Matthew Gretton-Dann wrote:

> On 17/11/11 15:19, Tristan Gingold wrote:
>> 
>> On Nov 17, 2011, at 4:10 PM, Matthew Gretton-Dann wrote:
>> 
>>> On 17/11/11 14:50, Tristan Gingold wrote:
>>>> On Nov 9, 2011, at 10:25 AM, Tristan Gingold wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I plan to make the 2.22 release next week.
>>>>> There are still a few pending back ports: micromips and 'V2 of get symbol linker plugin interface' come to my mind.
>>>>> 
>>>>> As usual, speak up if you think I missed something.
>>>> 
>>>> I have run the testsuite for most of the targets.  I think there aren't blocking regressions for a 22.0, although I think it would be nice to clean-up arm-eabi and mips*-* for the 22.1
>>> 
>>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Long
>>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
>>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 2
>>> 
>>> I thought I had fixed these with:
>>> 	http://sourceware.org/ml/binutils/2011-11/msg00072.html
>>> 
>>> Which was committed:
>>> 	http://sourceware.org/ml/binutils-cvs/2011-11/msg00042.html
>>> 
>>> When I run the tests myself targetting arm-none-eabi they pass, as they also (I am assuming) in your arm-linux-gnueabi run (you didn't highlight them there).
>> 
>> Yes, I was surprised too.
>> 
>>> Do you mind sending me the appropriate part of ld.log from the testrun and I will try to see if I can reproduce the failure?
>> 
>> Sure:
>> 
>> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s
>> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s 2>&1}  /dev/null ld.tmp (timeout = 300)
>> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o
>> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o 2>&1}  /dev/null ld.tmp (timeout = 300)
>> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1>dump.out 2>ld.stderr}  /dev/null  (timeout = 300)
>> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1
>> regexp_diff match failure
>> regexp "^    9000:      e7fe            b.n     9000<dest>$"
>> line   "    9000:       f7ff bffe       b.w     9000<dest>"
>> FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
> 
> So this looks like the failure mode I fixed.
> 
>> Tell me if you need more.
> 
> I still can't reproduce this - can you send me you configure command-line and the host you are running on please?

/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld $ head config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.64.  Invocation command line was

  $ /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/configure --cache-file=./config.cache --with-gnu-as --with-gnu-ld --with-system-zlib --prefix=/tmp/binutils-2.21.90-sc/inst-arm-eabi --program-transform-name=s&^&arm-eabi-& --disable-option-checking --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-eabi --srcdir=../../binutils-2.21.90/ld

> 
> I don't think this is a reason to hold the release up - the failure is not a failure in the linker, but rather the test not keeping up with a (correct) change in the assembler's output.

Ok.

thank you for the investigation work.

Tristan.

> 
> Thanks,
> 
> Matt
> 
> 
> -- 
> Matthew Gretton-Dann
> Principal Engineer, PD Software - Tools, ARM Ltd
> 

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-11-18  7:48         ` Doug Kwan (關振德)
@ 2011-11-21  9:43           ` Tristan Gingold
  0 siblings, 0 replies; 40+ messages in thread
From: Tristan Gingold @ 2011-11-21  9:43 UTC (permalink / raw)
  To: Doug Kwan (關振德)
  Cc: Matthew Gretton-Dann, binutils Development


On Nov 18, 2011, at 8:47 AM, Doug Kwan (關振德) wrote:

> Tristan,
> 
> If you don't mind, can I also backport these gold's ARM fixes for test
> regression?
> 
> http://sourceware.org/ml/binutils-cvs/2011-11/msg00047.html
> http://sourceware.org/ml/binutils-cvs/2011-11/msg00041.html
> http://sourceware.org/ml/binutils-cvs/2011-11/msg00043.html

Done.

> 
> -Doug
> 
> On Thu, Nov 17, 2011 at 7:19 AM, Tristan Gingold <gingold@adacore.com> wrote:
>> 
>> On Nov 17, 2011, at 4:10 PM, Matthew Gretton-Dann wrote:
>> 
>>> On 17/11/11 14:50, Tristan Gingold wrote:
>>>> On Nov 9, 2011, at 10:25 AM, Tristan Gingold wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I plan to make the 2.22 release next week.
>>>>> There are still a few pending back ports: micromips and 'V2 of get symbol linker plugin interface' come to my mind.
>>>>> 
>>>>> As usual, speak up if you think I missed something.
>>>> 
>>>> I have run the testsuite for most of the targets.  I think there aren't blocking regressions for a 22.0, although I think it would be nice to clean-up arm-eabi and mips*-* for the 22.1
>>> 
>>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Long
>>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
>>>> arm-eabi: FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 2
>>> 
>>> I thought I had fixed these with:
>>>       http://sourceware.org/ml/binutils/2011-11/msg00072.html
>>> 
>>> Which was committed:
>>>       http://sourceware.org/ml/binutils-cvs/2011-11/msg00042.html
>>> 
>>> When I run the tests myself targetting arm-none-eabi they pass, as they also (I am assuming) in your arm-linux-gnueabi run (you didn't highlight them there).
>> 
>> Yes, I was surprised too.
>> 
>>> Do you mind sending me the appropriate part of ld.log from the testrun and I will try to see if I can reproduce the failure?
>> 
>> Sure:
>> 
>> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s
>> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../gas/as-new    -o tmpdir/jump-reloc-veneers.o -march=armv7-a -mthumb /tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm/jump-reloc-veneers.s 2>&1}  /dev/null ld.tmp (timeout = 300)
>> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o
>> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/ld-new   -o tmpdir/jump-reloc-veneers-short1 -L/tmp/binutils-2.21.90-sc/binutils-2.21.90/ld/testsuite/ld-arm --no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000 tmpdir/jump-reloc-veneers.o 2>&1}  /dev/null ld.tmp (timeout = 300)
>> Executing on host: sh -c {/tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1 >dump.out 2>ld.stderr}  /dev/null  (timeout = 300)
>> /tmp/binutils-2.21.90-sc/objs-arm-eabi/ld/../binutils/objdump -d tmpdir/jump-reloc-veneers-short1
>> regexp_diff match failure
>> regexp "^    9000:      e7fe            b.n     9000 <dest>$"
>> line   "    9000:       f7ff bffe       b.w     9000 <dest>"
>> FAIL: R_ARM_THM_JUMP24 Relocation veneers: Short 1
>> 
>> Tell me if you need more.
>> 
>> Tristan.
>> 
>> 

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-09-22  9:17 Release 2.22: branch created Tristan Gingold
                   ` (4 preceding siblings ...)
  2011-11-09  9:26 ` Release 2.22: Next week Tristan Gingold
@ 2011-12-18 17:45 ` James Murray
  2011-12-19  9:35   ` Tristan Gingold
  5 siblings, 1 reply; 40+ messages in thread
From: James Murray @ 2011-12-18 17:45 UTC (permalink / raw)
  To: binutils

On 17/11/11 14:50, Tristan Gingold wrote: 

References: <ADFB3A72-FDFA-4402-A6D5-CADEA94D0ED2@adacore.com>
<1747C46F-9EE9-4FE6-B84C-09DC53F21DE0@adacore.com>
<2E7397C5-D6E3-4DEC-812E-156DEBA441A8@adacore.com>

> I have run the testsuite for most of the targets. 
> m68hc11-elf: OK

Seems ok, but what about the sub-targets? They fail the test-suite.
m68hc11-elf  PASS
m68hc12-elf - 10 gas failures
m6811-elf - 5 gas failures
m6812-elf - 15 gas failures

Does this matter? Should the tests only be run with the 'main' target?

I believe the following patch resolves the 10 gas failures on
m68hc12-elf, the hc11 tests were being run without a target specified,
so will only work if the target is built as m68hc11. When they then run
as hc12 they do not spit out the expected error as those operands/modess
are valid on hc12.

###########################
diff -Nuar -x '.#*' -x CVS src/gas/testsuite/gas/m68hc11/m68hc11.exp
binutils-20111216/gas/testsuite/gas/m68hc11/m68hc11.exp
--- src/gas/testsuite/gas/m68hc11/m68hc11.exp 2004-08-01
20:59:51.000000000 +0100
+++ binutils-20111216/gas/testsuite/gas/m68hc11/m68hc11.exp 2011-12-17
02:07:50.000000000 +0000
@@ -78,28 +82,29 @@
     gas_m68hc11_message "Warning" $options $line $expect
}

+#add machine option as default is now m9s12x
# ------------------
# 68HC11 error tests
-gas_m68hc11_error "" "puld\n" "Opcode .puld. is not recognized"
-gas_m68hc11_error "" "ldab\n" "Invalid operand for .ldab."
-gas_m68hc11_error "" "ldab 256,x\n" "Operand out of 8-bit range:.*256"
-gas_m68hc11_error "" "ldab 257,y\n" "Operand out of 8-bit range:.*257"
-gas_m68hc11_error "" "ldab -1,y\n" "Operand out of 8-bit range:.*-1"
-gas_m68hc11_error "" "ldab bar,y\nbar=300" "value of 300 too large for
field of 1 byte"
-gas_m68hc11_error "" "jmp \#23\n" "Immediate operand is not allowed"
-gas_m68hc11_error "" "ldab \[d,pc\]\n" "Indirect indexed addressing is
not valid for 68HC11"
-gas_m68hc11_error "" "ldab ,t\n" "Spurious .,. or bad indirect
register"
-gas_m68hc11_error "" "ldab 1,t\n" "Garbage at end of instruction:.*,t"
-gas_m68hc11_error "" "ldab 1,,x\n" "Garbage at end of instruction:.*,x"
-gas_m68hc11_error "" "ldab 1,+x\n" "Pre-increment mode is not valid"
-gas_m68hc11_error "" "ldab 1,-x\n" "Pre-increment mode is not valid"
-gas_m68hc11_error "" "ldab 1,x+\n" "Post-increment mode is not valid"
-gas_m68hc11_error "" "ldab 1,x-\n" "Post-decrement mode is not valid"
-gas_m68hc11_error "" "ldd \#65536\n" "Operand out of 16-bit range"
-gas_m68hc11_error "--short-branchs" "bne 200\n" \
+gas_m68hc11_error "-m68hc11" "puld\n" "Opcode .puld. is not recognized"
+gas_m68hc11_error "-m68hc11" "ldab\n" "Invalid operand for .ldab."
+gas_m68hc11_error "-m68hc11" "ldab 256,x\n" "Operand out of 8-bit
range:.*256"
+gas_m68hc11_error "-m68hc11" "ldab 257,y\n" "Operand out of 8-bit
range:.*257"
+gas_m68hc11_error "-m68hc11" "ldab -1,y\n" "Operand out of 8-bit
range:.*-1"
+gas_m68hc11_error "-m68hc11" "ldab bar,y\nbar=300" "value of 300 too
large for field of 1 byte"
+gas_m68hc11_error "-m68hc11" "jmp \#23\n" "Immediate operand is not
allowed"
+gas_m68hc11_error "-m68hc11" "ldab \[d,pc\]\n" "Indirect indexed
addressing is not valid for 68HC11"
+gas_m68hc11_error "-m68hc11" "ldab ,t\n" "Spurious .,. or bad indirect
register"
+gas_m68hc11_error "-m68hc11" "ldab 1,t\n" "Garbage at end of
instruction:.*,t"
+gas_m68hc11_error "-m68hc11" "ldab 1,,x\n" "Garbage at end of
instruction:.*,x"
+gas_m68hc11_error "-m68hc11" "ldab 1,+x\n" "Pre-increment mode is not
valid"
+gas_m68hc11_error "-m68hc11" "ldab 1,-x\n" "Pre-increment mode is not
valid"
+gas_m68hc11_error "-m68hc11" "ldab 1,x+\n" "Post-increment mode is not
valid"
+gas_m68hc11_error "-m68hc11" "ldab 1,x-\n" "Post-decrement mode is not
valid"
+gas_m68hc11_error "-m68hc11" "ldd \#65536\n" "Operand out of 16-bit
range"
+gas_m68hc11_error "-m68hc11 --short-branchs" "bne 200\n" \
     "Operand out of range for a relative branch"
-gas_m68hc11_error "" "bar\n" "Opcode .bar. is not recognized."
-gas_m68hc11_error "--print-insn-syntax" "bne\n" \
+gas_m68hc11_error "-m68hc11" "bar\n" "Opcode .bar. is not recognized."
+gas_m68hc11_error "-m68hc11 --print-insn-syntax" "bne\n" \
     "Instruction formats for .bne..*"

# ------------------
###########################

However, resolving those then exposes 10 test failures in ld. I have not
yet investigated those.

My reason for asking is that I have some work to submit on the m68hc11
target and don't want to be rejected on these testsuite failures.
(My previous attempt at submission in Feb/Mar did expose some genuine
regressions which I have since corrected.)

regards

James Murray

PS. I hope the References works ok, I find it tricky to reply with
correct headers when I receive only the digest and the online version
doesn't display the Message-id. Any tips?

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-12-18 17:45 ` James Murray
@ 2011-12-19  9:35   ` Tristan Gingold
  2011-12-19 19:45     ` James Murray
  0 siblings, 1 reply; 40+ messages in thread
From: Tristan Gingold @ 2011-12-19  9:35 UTC (permalink / raw)
  To: James Murray; +Cc: binutils


On Dec 18, 2011, at 6:45 PM, James Murray wrote:

> On 17/11/11 14:50, Tristan Gingold wrote: 
> 
> References: <ADFB3A72-FDFA-4402-A6D5-CADEA94D0ED2@adacore.com>
> <1747C46F-9EE9-4FE6-B84C-09DC53F21DE0@adacore.com>
> <2E7397C5-D6E3-4DEC-812E-156DEBA441A8@adacore.com>
> 
>> I have run the testsuite for most of the targets. 
>> m68hc11-elf: OK
> 
> Seems ok, but what about the sub-targets? They fail the test-suite.
> m68hc11-elf  PASS
> m68hc12-elf - 10 gas failures
> m6811-elf - 5 gas failures
> m6812-elf - 15 gas failures

Clearly there are targets and sub targets that I don't test.

> Does this matter? Should the tests only be run with the 'main' target?

It is of course better to test as many targets as you can when submitting patches.

> I believe the following patch resolves the 10 gas failures on
> m68hc12-elf, the hc11 tests were being run without a target specified,
> so will only work if the target is built as m68hc11. When they then run
> as hc12 they do not spit out the expected error as those operands/modess
> are valid on hc12.

I don't know the m6811/12 targets, so I can't comment quickly.

These targets look to be almost unmaintained for a while so fell free to take the lead!

> ###########################
> diff -Nuar -x '.#*' -x CVS src/gas/testsuite/gas/m68hc11/m68hc11.exp
> binutils-20111216/gas/testsuite/gas/m68hc11/m68hc11.exp
> --- src/gas/testsuite/gas/m68hc11/m68hc11.exp 2004-08-01
> 20:59:51.000000000 +0100
> +++ binutils-20111216/gas/testsuite/gas/m68hc11/m68hc11.exp 2011-12-17
> 02:07:50.000000000 +0000
[..]
> # ------------------
> ###########################
> 
> However, resolving those then exposes 10 test failures in ld. I have not
> yet investigated those.
> 
> My reason for asking is that I have some work to submit on the m68hc11
> target and don't want to be rejected on these testsuite failures.
> (My previous attempt at submission in Feb/Mar did expose some genuine
> regressions which I have since corrected.)

The maintainer will take the decision.

> regards
> 
> James Murray
> 
> PS. I hope the References works ok, I find it tricky to reply with
> correct headers when I receive only the digest and the online version
> doesn't display the Message-id. Any tips?

Disable to digest option ?  Use the archive web page ?

Tristan.


^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ...
  2011-12-19  9:35   ` Tristan Gingold
@ 2011-12-19 19:45     ` James Murray
  2011-12-20 13:51       ` Release 2.22: Next week ... (m68hc11 testsuite) James Murray
  0 siblings, 1 reply; 40+ messages in thread
From: James Murray @ 2011-12-19 19:45 UTC (permalink / raw)
  To: binutils

On Mon, 2011-12-19 at 10:35 +0100, Tristan Gingold wrote: 
> On Dec 18, 2011, at 6:45 PM, James Murray wrote:
> 
> > On 17/11/11 14:50, Tristan Gingold wrote: 
> > 
> > References: <ADFB3A72-FDFA-4402-A6D5-CADEA94D0ED2@adacore.com>
> > <1747C46F-9EE9-4FE6-B84C-09DC53F21DE0@adacore.com>
> > <2E7397C5-D6E3-4DEC-812E-156DEBA441A8@adacore.com>
> > 
> >> I have run the testsuite for most of the targets. 
> >> m68hc11-elf: OK
> > 
> > Seems ok, but what about the sub-targets? They fail the test-suite.
> > m68hc11-elf  PASS
> > m68hc12-elf - 10 gas failures
> > m6811-elf - 5 gas failures
> > m6812-elf - 15 gas failures
> 
> Clearly there are targets and sub targets that I don't test.
> 
> > Does this matter? Should the tests only be run with the 'main' target?
> 
> It is of course better to test as many targets as you can when submitting patches.
> 

OK, what I've learned is that the tests fail if gcc is available for
that sub-target, otherwise the failing ld tests are skipped and the
target passes. (Hence for me m68hc11 passed and m9s12x failed.)

The ten FAILS are:
FAIL: Check --gc-section
FAIL: Check --gc-section/-q
FAIL: plugin claimfile lost symbol
FAIL: plugin claimfile replace symbol
FAIL: plugin claimfile resolve symbol
FAIL: plugin claimfile replace file
FAIL: plugin ignore lib
FAIL: plugin claimfile replace lib
FAIL: NOCROSSREFS 3
FAIL: S-records

Nine of them are fixed by target conditionally adding
-fomit_frame_pointer to the cflags/CFLAGS

However, I'm stuck on the S-records test, it reports:

m9s12x-elf-gcc -B/usr/src/jsm/build/binout-9s12x/ld/tmpdir/gas/
-I/usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec -g
-O2 -fomit-frame-pointer
-c /usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec/sr2.c -o tmpdir/sr2.o
Executing on host: sh -c {m9s12x-elf-gcc
-B/usr/src/jsm/build/binout-9s12x/ld/tmpdir/gas/
-I/usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec -g
-O2 -fomit-frame-pointer
-c /usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec/sr2.c -o tmpdir/sr2.o 2>&1}  /dev/null ld.tmp (timeout = 300)
spawn [open ...]
/usr/src/jsm/build/binout-9s12x/ld/ld-new   -o tmpdir/sr1
--traditional-format -G 0 --defsym __stack_chk_fail=0 --defsym
_start=0xc000 tmpdir/sr1.o tmpdir/sr2.o
Executing on host: sh -c {/usr/src/jsm/build/binout-9s12x/ld/ld-new   -o
tmpdir/sr1 --traditional-format -G 0 --defsym __stack_chk_fail=0
--defsym _start=0xc000 tmpdir/sr1.o tmpdir/sr2.o 2>&1}  /dev/null ld.tmp
(timeout = 300)
spawn [open ...]
/usr/src/jsm/build/binout-9s12x/ld/ld-new   -o tmpdir/sr2.sr
--traditional-format -G 0 --defsym __stack_chk_fail=0 --defsym
_start=0xc000 --oformat srec tmpdir/sr1.o tmpdir/sr2.o
Executing on host: sh -c {/usr/src/jsm/build/binout-9s12x/ld/ld-new   -o
tmpdir/sr2.sr --traditional-format -G 0 --defsym __stack_chk_fail=0
--defsym _start=0xc000 --oformat srec tmpdir/sr1.o tmpdir/sr2.o
2>&1}  /dev/null ld.tmp (timeout = 300)
spawn [open ...]
/usr/src/jsm/build/binout-9s12x/ld/ld-new: can not size stub section:
Invalid operation
/usr/src/jsm/build/binout-9s12x/ld/ld-new: can not size stub section:
Invalid operation
FAIL: S-records

(I've cleaned up a warning about _start not being defined for that
target.)

> 
> The maintainer will take the decision.
> 

Unfortunately, it seems that I'm currently the closest thing to a
maintainer of the m68hc11 target. If anyone else is out there I'd be
keen to work with them.

regards

James Murray 

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ... (m68hc11 testsuite)
  2011-12-19 19:45     ` James Murray
@ 2011-12-20 13:51       ` James Murray
  2011-12-20 13:56         ` Tristan Gingold
  0 siblings, 1 reply; 40+ messages in thread
From: James Murray @ 2011-12-20 13:51 UTC (permalink / raw)
  To: binutils

Previously I wrote:
> However, I'm stuck on the S-records test, it reports:
>
> m9s12x-elf-gcc -B/usr/src/jsm/build/binout-9s12x/ld/tmpdir/gas/
> -I/usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec -g
> -O2 -fomit-frame-pointer
>
-c /usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec/sr2.c >=
 -o tmpdir/sr2.o
> Executing on host: sh -c {m9s12x-elf-gcc
> -B/usr/src/jsm/build/binout-9s12x/ld/tmpdir/gas/
> -I/usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec -g
> -O2 -fomit-frame-pointer
>
-c /usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec/sr2.c >=
 -o tmpdir/sr2.o 2>&1}  /dev/null ld.tmp (timeout = 300)
> spawn [open ...]
> /usr/src/jsm/build/binout-9s12x/ld/ld-new   -o tmpdir/sr1
> --traditional-format -G 0 --defsym __stack_chk_fail=3D3D0 --defsym
> _start=0xc000 tmpdir/sr1.o tmpdir/sr2.o
> Executing on host: sh -c {/usr/src/jsm/build/binout-9s12x/ld/ld-new
> -o tmpdir/sr1 --traditional-format -G 0 --defsym __stack_chk_fail=0
> --defsym _start=0xc000 tmpdir/sr1.o tmpdir/sr2.o 2>&1}  /dev/null
ld.tmp
> (timeout = 300)
> spawn [open ...]
> /usr/src/jsm/build/binout-9s12x/ld/ld-new   -o tmpdir/sr2.sr
> --traditional-format -G 0 --defsym __stack_chk_fail=0 --defsym
> _start=0xc000 --oformat srec tmpdir/sr1.o tmpdir/sr2.o
> Executing on host: sh -c {/usr/src/jsm/build/binout-9s12x/ld/ld-new
-o
> tmpdir/sr2.sr --traditional-format -G 0 --defsym __stack_chk_fail=0
> --defsym _start=0xc000 --oformat srec tmpdir/sr1.o tmpdir/sr2.o
> 2>&1}  /dev/null ld.tmp (timeout = 300)
> spawn [open ...]
> /usr/src/jsm/build/binout-9s12x/ld/ld-new: can not size stub section:
> Invalid operation
> /usr/src/jsm/build/binout-9s12x/ld/ld-new: can not size stub section:
> Invalid operation
> FAIL: S-records

The error is being generated here in ld/emultempl/m68hc1xelf.em
--------------------------
static void
m68hc11_elf_${EMULATION_NAME}_before_allocation (void)
{
  lang_memory_region_type* region;
  int ret;

  gld${EMULATION_NAME}_before_allocation ();

  /* If generating a relocatable output file, then we don't
     have to generate the trampolines.  */
  if (link_info.relocatable)
    return;

  ret = elf32_m68hc11_setup_section_lists (link_info.output_bfd,
&link_info);
  if (ret != 0 && no_trampoline == 0)
    {
      if (ret < 0)
{
  einfo ("%X%P: can not size stub section: %E\n");
  return;
}
--------------------------
ret has the value -1

Any ideas on whether this is a real problem or if the test is never
going to work on m68hc11
It looks as though this might have never worked?

regards

James Murray

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ... (m68hc11 testsuite)
  2011-12-20 13:51       ` Release 2.22: Next week ... (m68hc11 testsuite) James Murray
@ 2011-12-20 13:56         ` Tristan Gingold
  2011-12-20 14:49           ` James Murray
  0 siblings, 1 reply; 40+ messages in thread
From: Tristan Gingold @ 2011-12-20 13:56 UTC (permalink / raw)
  To: James Murray; +Cc: binutils


On Dec 20, 2011, at 2:51 PM, James Murray wrote:

> Previously I wrote:
>> However, I'm stuck on the S-records test, it reports:
>> 
>> m9s12x-elf-gcc -B/usr/src/jsm/build/binout-9s12x/ld/tmpdir/gas/
>> -I/usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec -g
>> -O2 -fomit-frame-pointer
>> 
> -c /usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec/sr2.c >=
> -o tmpdir/sr2.o
>> Executing on host: sh -c {m9s12x-elf-gcc
>> -B/usr/src/jsm/build/binout-9s12x/ld/tmpdir/gas/
>> -I/usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec -g
>> -O2 -fomit-frame-pointer
>> 
> -c /usr/src/jsm/binutils-cvs/binutils-20111216/ld/testsuite/ld-srec/sr2.c >=
> -o tmpdir/sr2.o 2>&1}  /dev/null ld.tmp (timeout = 300)
>> spawn [open ...]
>> /usr/src/jsm/build/binout-9s12x/ld/ld-new   -o tmpdir/sr1
>> --traditional-format -G 0 --defsym __stack_chk_fail=3D3D0 --defsym
>> _start=0xc000 tmpdir/sr1.o tmpdir/sr2.o
>> Executing on host: sh -c {/usr/src/jsm/build/binout-9s12x/ld/ld-new
>> -o tmpdir/sr1 --traditional-format -G 0 --defsym __stack_chk_fail=0
>> --defsym _start=0xc000 tmpdir/sr1.o tmpdir/sr2.o 2>&1}  /dev/null
> ld.tmp
>> (timeout = 300)
>> spawn [open ...]
>> /usr/src/jsm/build/binout-9s12x/ld/ld-new   -o tmpdir/sr2.sr
>> --traditional-format -G 0 --defsym __stack_chk_fail=0 --defsym
>> _start=0xc000 --oformat srec tmpdir/sr1.o tmpdir/sr2.o
>> Executing on host: sh -c {/usr/src/jsm/build/binout-9s12x/ld/ld-new
> -o
>> tmpdir/sr2.sr --traditional-format -G 0 --defsym __stack_chk_fail=0
>> --defsym _start=0xc000 --oformat srec tmpdir/sr1.o tmpdir/sr2.o
>> 2>&1}  /dev/null ld.tmp (timeout = 300)
>> spawn [open ...]
>> /usr/src/jsm/build/binout-9s12x/ld/ld-new: can not size stub section:
>> Invalid operation
>> /usr/src/jsm/build/binout-9s12x/ld/ld-new: can not size stub section:
>> Invalid operation
>> FAIL: S-records
> 
> The error is being generated here in ld/emultempl/m68hc1xelf.em
> --------------------------
> static void
> m68hc11_elf_${EMULATION_NAME}_before_allocation (void)
> {
>  lang_memory_region_type* region;
>  int ret;
> 
>  gld${EMULATION_NAME}_before_allocation ();
> 
>  /* If generating a relocatable output file, then we don't
>     have to generate the trampolines.  */
>  if (link_info.relocatable)
>    return;
> 
>  ret = elf32_m68hc11_setup_section_lists (link_info.output_bfd,
> &link_info);
>  if (ret != 0 && no_trampoline == 0)
>    {
>      if (ret < 0)
> {
>  einfo ("%X%P: can not size stub section: %E\n");
>  return;
> }
> --------------------------
> ret has the value -1
> 
> Any ideas on whether this is a real problem or if the test is never
> going to work on m68hc11
> It looks as though this might have never worked?

AFAIK, generating directly srec from the elf linker is broken on many targets.  I would consider them as XFAIL.

Tristan.

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ... (m68hc11 testsuite)
  2011-12-20 13:56         ` Tristan Gingold
@ 2011-12-20 14:49           ` James Murray
  2011-12-29 15:46             ` James Murray
  0 siblings, 1 reply; 40+ messages in thread
From: James Murray @ 2011-12-20 14:49 UTC (permalink / raw)
  To: binutils

On Tue, 2011-12-20 at 14:55 +0100, Tristan Gingold wrote:
> On Dec 20, 2011, at 2:51 PM, James Murray wrote:

> > Any ideas on whether this is a real problem or if the test is never
> > going to work on m68hc11

> AFAIK, generating directly srec from the elf linker is broken on many targets.  I would consider them as XFAIL.
> 

Thanks, done. Assuming I have the right tools/config for "make check"
I'm now seeing a pass.

regards

James

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ... (m68hc11 testsuite)
  2011-12-20 14:49           ` James Murray
@ 2011-12-29 15:46             ` James Murray
  2011-12-30  2:13               ` James Murray
  0 siblings, 1 reply; 40+ messages in thread
From: James Murray @ 2011-12-29 15:46 UTC (permalink / raw)
  To: binutils

On Tue, 2011-12-20 at 14:49 +0000, James Murray wrote:
> On Tue, 2011-12-20 at 14:55 +0100, Tristan Gingold wrote:
> > On Dec 20, 2011, at 2:51 PM, James Murray wrote:
>=20
> > > Any ideas on whether this is a real problem or if the test is never
> > > going to work on m68hc11

I've been working my way through the tests and feel like I'm getting a
better handle on things.

However, it appears that the ld testsuite is effectively skipped for the
main target. All the test files start similar to this:
#source: far-hc11.s
#as: -m68hc11
#ld: -m m68hc11elf
#objdump: -d --prefix-addresses -r
#target: m6811-*-* m6812-*-*

That means that when you build for the default target of m68hc11 they
are all ignored.

That's a big problem as it seems there's a long-standing critical bug
that they would have exposed.

The hc11/hc12 platform frequently use banked memory.
Later chips (hcs12, s12x) have built in call/rtc commands to do this,
but the earlier 11,12 chips had custom hardware and need specific
trampoline code to correctly jump there. This essential trampoline code
is not being emitted. I checked in my code, virgin CVS and back to 2.18.
All the same, missing.

At a glance, the trampoline generation code exists in BFD, but appears
to be broken somehow. This is rather beyond the scope of what I was
hoping to work on and dates back to the initial work that Stephane
Carrez contributed.

Also, regarding the build targets, I'm not fully sure what purpose it
serves to build for different sub-targets. It (now) makes more sense to
build for just the one target and specify the sub-target at runtime. I
don't plan on changing that presently though.

thoughts?

regards

James Murray

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ... (m68hc11 testsuite)
  2011-12-29 15:46             ` James Murray
@ 2011-12-30  2:13               ` James Murray
  2012-01-02 23:04                 ` James Murray
  2012-02-09 12:53                 ` m68hc11 trampolines Alan Modra
  0 siblings, 2 replies; 40+ messages in thread
From: James Murray @ 2011-12-30  2:13 UTC (permalink / raw)
  To: binutils

On Thu, 2011-12-29 at 15:45 +0000, James Murray wrote:
> That's a big problem as it seems there's a long-standing critical bug
> that they would have exposed.
> 
>  This essential trampoline code
> is not being emitted.

After extensive investigation I found that the broke between 2.16 and
2.17

Specifically this patch to elflink.c committed on 2006-08-15 ~19.30
----------------------------------------------------------
--- src-old/bfd/elflink.c 2011-12-30 01:32:04.000000000 +0000
+++ src-old2/bfd/elflink.c 2011-12-30 01:35:01.000000000 +0000
@@ -4058,13 +4058,13 @@
 	    isym->st_other = (STV_HIDDEN
 			      | (isym->st_other & ~ELF_ST_VISIBILITY (-1)));
 
-	  if (isym->st_other != 0 && !dynamic)
+	  if (ELF_ST_VISIBILITY (isym->st_other) != 0 && !dynamic)
 	    {
 	      unsigned char hvis, symvis, other, nvis;
 
-	      /* Take the balance of OTHER from the definition.  */
-	      other = (definition ? isym->st_other : h->other);
-	      other &= ~ ELF_ST_VISIBILITY (-1);
+	      /* Only merge the visibility. Leave the remainder of the
+		 st_other field to elf_backend_merge_symbol_attribute.  */
+	      other = h->other & ~ELF_ST_VISIBILITY (-1);
 
 	      /* Combine visibilities, using the most constraining one.  */
 	      hvis   = ELF_ST_VISIBILITY (h->other);
----------------------------------------------------------

The accompanying bfd ChangeLog entry says:
----------------------------------------------------------
 2006-08-15  Thiemo Seufer  <ths@mips.com>
             Nigel Stephens  <nigel@mips.com>

	* elf32-mips.c, elf64-mips.c, elfn32-mips.c
	(elf_backend_merge_symbol_attribute): Define.
	* elflink.c (elf_link_add_object_symbols): Merge only the ELF
	visibility flags.
	* elfxx-mips.c (_bfd_mips_elf_merge_symbol_attribute): New function.
----------------------------------------------------------

What does this mean and what needs doing to get the m68hc11 trampoline
code back?

regards

James Murray

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: Release 2.22: Next week ... (m68hc11 testsuite)
  2011-12-30  2:13               ` James Murray
@ 2012-01-02 23:04                 ` James Murray
  2012-02-09 12:53                 ` m68hc11 trampolines Alan Modra
  1 sibling, 0 replies; 40+ messages in thread
From: James Murray @ 2012-01-02 23:04 UTC (permalink / raw)
  To: binutils

Another m68hc11 testsuite question.

The one remaining testsuite fail I see looks like it might be related to
"PR 6848"

When built for target m6811, the following gas test fails:
(It is skipped for the normal target name m68hc11.)
---------------------------------
../as-new   -o
dump.o /usr/src/jsm/binutils-cvs/test/src/gas/testsuite/gas/elf/redef.s
Executing on host: sh -c {../as-new   -o
dump.o /usr/src/jsm/binutils-cvs/test/src/gas/testsuite/gas/elf/redef.s
2>&1}  /dev/null gas.out (timeout = 300)
spawn [open ...]
/usr/src/jsm/binutils-cvs/test/src/gas/testsuite/gas/elf/redef.s:
Assembler messages:
/usr/src/jsm/binutils-cvs/test/src/gas/testsuite/gas/elf/redef.s:4:
Error: redefined symbol cannot be used on reloc
/usr/src/jsm/binutils-cvs/test/src/gas/testsuite/gas/elf/redef.s:
Assembler messages:
/usr/src/jsm/binutils-cvs/test/src/gas/testsuite/gas/elf/redef.s:4:
Error: redefined symbol cannot be used on reloc
/usr/src/jsm/binutils-cvs/test/binout/gas/testsuite/../../binutils/objdump  -t dump.o
Executing on host: sh -c
{/usr/src/jsm/binutils-cvs/test/binout/gas/testsuite/../../binutils/objdump  -t dump.o >dump.out 2>gas.stderr}  /dev/null  (timeout = 300)
spawn [open ...]
/usr/src/jsm/binutils-cvs/test/binout/gas/testsuite/../../binutils/objdump: 'dump.o': No such file
FAIL: .equ redefinitions (ELF)

---------------------------------

Is this an expected failure or does it indicate a problem with the
target that needs fixing?

I'm hoping to have a revised 9s12x/xgate patch ready soon, Sean Keys has
been peer-reviewing the output and giving feedback. I've added the
missing opcodes he identified, cleaned up some other issues, added new
tests and believe I've resolved the trampoline generation problem too.

regards

James Murray

^ permalink raw reply	[flat|nested] 40+ messages in thread

* m68hc11 trampolines
  2011-12-30  2:13               ` James Murray
  2012-01-02 23:04                 ` James Murray
@ 2012-02-09 12:53                 ` Alan Modra
  2012-02-13  2:32                   ` Alan Modra
  1 sibling, 1 reply; 40+ messages in thread
From: Alan Modra @ 2012-02-09 12:53 UTC (permalink / raw)
  To: James Murray; +Cc: binutils

On Fri, Dec 30, 2011 at 02:12:54AM +0000, James Murray wrote:
> What does this mean and what needs doing to get the m68hc11 trampoline
> code back?

Try this.

Index: bfd/elf32-m68hc11.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68hc11.c,v
retrieving revision 1.40
diff -u -p -r1.40 elf32-m68hc11.c
--- bfd/elf32-m68hc11.c	25 Aug 2010 14:53:42 -0000	1.40
+++ bfd/elf32-m68hc11.c	9 Feb 2012 12:26:12 -0000
@@ -1302,6 +1302,7 @@ static const struct bfd_elf_special_sect
 #define elf_backend_final_write_processing	0
 #define elf_backend_can_gc_sections		1
 #define elf_backend_special_sections  elf32_m68hc11_special_sections
+#define elf_backend_merge_symbol_attribute elf32_m68hc11_merge_symbol_attribute
 
 #define bfd_elf32_bfd_link_hash_table_create \
                                 m68hc11_elf_bfd_link_hash_table_create
Index: bfd/elf32-m68hc12.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68hc12.c,v
retrieving revision 1.30
diff -u -p -r1.30 elf32-m68hc12.c
--- bfd/elf32-m68hc12.c	25 Aug 2010 14:53:42 -0000	1.30
+++ bfd/elf32-m68hc12.c	9 Feb 2012 12:26:12 -0000
@@ -581,6 +581,7 @@ static const struct bfd_elf_special_sect
 #define elf_backend_special_sections elf32_m68hc12_special_sections
 #define elf_backend_post_process_headers     elf32_m68hc11_post_process_headers
 #define elf_backend_add_symbol_hook  elf32_m68hc11_add_symbol_hook
+#define elf_backend_merge_symbol_attribute elf32_m68hc11_merge_symbol_attribute
 
 #define bfd_elf32_bfd_link_hash_table_create \
                                 m68hc12_elf_bfd_link_hash_table_create
Index: bfd/elf32-m68hc1x.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68hc1x.c,v
retrieving revision 1.40
diff -u -p -r1.40 elf32-m68hc1x.c
--- bfd/elf32-m68hc1x.c	2 Jun 2011 13:43:14 -0000	1.40
+++ bfd/elf32-m68hc1x.c	9 Feb 2012 12:26:13 -0000
@@ -214,6 +214,20 @@ elf32_m68hc11_add_symbol_hook (bfd *abfd
   return TRUE;
 }
 
+/* Merge non-visibility st_other attributes, STO_M68HC12_FAR and
+   STO_M68HC12_INTERRUPT.  */
+
+void
+elf32_m68hc11_merge_symbol_attribute (struct elf_link_hash_entry *h,
+				      const Elf_Internal_Sym *isym,
+				      bfd_boolean definition,
+				      bfd_boolean dynamic ATTRIBUTE_UNUSED)
+{
+  if (definition)
+    h->other = ((isym->st_other & ~ELF_ST_VISIBILITY (-1))
+		| ELF_ST_VISIBILITY (h->other));
+}
+
 /* External entry points for sizing and building linker stubs.  */
 
 /* Set up various things so that we can make a list of input sections
Index: bfd/elf32-m68hc1x.h
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68hc1x.h,v
retrieving revision 1.11
diff -u -p -r1.11 elf32-m68hc1x.h
--- bfd/elf32-m68hc1x.h	4 Feb 2010 09:16:39 -0000	1.11
+++ bfd/elf32-m68hc1x.h	9 Feb 2012 12:26:13 -0000
@@ -176,6 +176,10 @@ bfd_boolean elf32_m68hc11_add_symbol_hoo
    flagword *flagsp, asection **secp,
    bfd_vma *valp);
 
+void elf32_m68hc11_merge_symbol_attribute
+  (struct elf_link_hash_entry *, const Elf_Internal_Sym *,
+   bfd_boolean, bfd_boolean);
+
 /* Tweak the OSABI field of the elf header.  */
 
 extern void elf32_m68hc11_post_process_headers (bfd*, struct bfd_link_info*);


-- 
Alan Modra
Australia Development Lab, IBM

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: m68hc11 trampolines
  2012-02-09 12:53                 ` m68hc11 trampolines Alan Modra
@ 2012-02-13  2:32                   ` Alan Modra
  2012-02-14 23:08                     ` James Murray
  0 siblings, 1 reply; 40+ messages in thread
From: Alan Modra @ 2012-02-13  2:32 UTC (permalink / raw)
  To: James Murray, binutils

On Thu, Feb 09, 2012 at 11:23:01PM +1030, Alan Modra wrote:
> On Fri, Dec 30, 2011 at 02:12:54AM +0000, James Murray wrote:
> > What does this mean and what needs doing to get the m68hc11 trampoline
> > code back?
> 
> Try this.

Now committed.

bfd/
	* elf32-m68hc1x.c (elf32_m68hc11_merge_symbol_attribute): New function.
	* elf32-m68hc1x.h (elf32_m68hc11_merge_symbol_attribute): Declare.
	* elf32-m68hc11.c (elf_backend_merge_symbol_attribute): Define.
	* elf32-m68hc12.c (elf_backend_merge_symbol_attribute): Define.

gas/testsuite/
	* gas/all/gas.exp (redef2): xfail m6811 and m6812.
	* gas/elf/elf.exp: Use is_elf_format.
	* gas/symver/symver.exp: Likewise.
	* gas/m68hc11/m68hc11.exp: Simplify target test.
	Add -m68hc11 to error tests that pass for hc12.

ld/testsuite/
	* ld-m68hc11/m68hc11.exp: Run for m68hc11-*-* and m68hc12-*-*.
	* ld-m68hc11/adj-brset.d: Remove redundant #target line.  Add
	-m m68hc11elf to ld invocation.
	* ld-m68hc11/adj-jump.d: Likewise.
	* ld-m68hc11/bug-1403.d: Likewise.
	* ld-m68hc11/bug-1417.d: Likewise.
	* ld-m68hc11/bug-3331.d: Likewise.
	* ld-m68hc11/relax-direct.d: Likewise.
	* ld-m68hc11/relax-group.d: Likewise.
	* ld-m68hc11/far-hc11.d: Remove redundant #target line.  Adjust for
	changed addresses.
	* ld-m68hc11/far-hc12.d: Remove redundant #target line.
	* ld-m68hc11/link-hcs12.d: Likewise, and adjust for header changes.

Index: bfd/elf32-m68hc1x.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68hc1x.c,v
retrieving revision 1.40
diff -u -p -r1.40 elf32-m68hc1x.c
--- bfd/elf32-m68hc1x.c	2 Jun 2011 13:43:14 -0000	1.40
+++ bfd/elf32-m68hc1x.c	10 Feb 2012 03:32:25 -0000
@@ -1,6 +1,6 @@
 /* Motorola 68HC11/HC12-specific support for 32-bit ELF
    Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-   2009, 2010, 2011  Free Software Foundation, Inc.
+   2009, 2010, 2011, 2012 Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -214,6 +214,20 @@ elf32_m68hc11_add_symbol_hook (bfd *abfd
   return TRUE;
 }
 
+/* Merge non-visibility st_other attributes, STO_M68HC12_FAR and
+   STO_M68HC12_INTERRUPT.  */
+
+void
+elf32_m68hc11_merge_symbol_attribute (struct elf_link_hash_entry *h,
+				      const Elf_Internal_Sym *isym,
+				      bfd_boolean definition,
+				      bfd_boolean dynamic ATTRIBUTE_UNUSED)
+{
+  if (definition)
+    h->other = ((isym->st_other & ~ELF_ST_VISIBILITY (-1))
+		| ELF_ST_VISIBILITY (h->other));
+}
+
 /* External entry points for sizing and building linker stubs.  */
 
 /* Set up various things so that we can make a list of input sections
Index: bfd/elf32-m68hc1x.h
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68hc1x.h,v
retrieving revision 1.11
diff -u -p -r1.11 elf32-m68hc1x.h
--- bfd/elf32-m68hc1x.h	4 Feb 2010 09:16:39 -0000	1.11
+++ bfd/elf32-m68hc1x.h	10 Feb 2012 03:32:25 -0000
@@ -1,5 +1,5 @@
 /* Motorola 68HC11/68HC12-specific support for 32-bit ELF
-   Copyright 2003, 2004, 2005, 2006, 2007, 2009, 2010
+   Copyright 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2012
    Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
 
@@ -176,6 +176,10 @@ bfd_boolean elf32_m68hc11_add_symbol_hoo
    flagword *flagsp, asection **secp,
    bfd_vma *valp);
 
+void elf32_m68hc11_merge_symbol_attribute
+  (struct elf_link_hash_entry *, const Elf_Internal_Sym *,
+   bfd_boolean, bfd_boolean);
+
 /* Tweak the OSABI field of the elf header.  */
 
 extern void elf32_m68hc11_post_process_headers (bfd*, struct bfd_link_info*);
Index: bfd/elf32-m68hc11.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68hc11.c,v
retrieving revision 1.40
diff -u -p -r1.40 elf32-m68hc11.c
--- bfd/elf32-m68hc11.c	25 Aug 2010 14:53:42 -0000	1.40
+++ bfd/elf32-m68hc11.c	10 Feb 2012 03:32:24 -0000
@@ -1,5 +1,5 @@
 /* Motorola 68HC11-specific support for 32-bit ELF
-   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2010
+   Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2012
    Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
    (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com))
@@ -1302,6 +1302,7 @@ static const struct bfd_elf_special_sect
 #define elf_backend_final_write_processing	0
 #define elf_backend_can_gc_sections		1
 #define elf_backend_special_sections  elf32_m68hc11_special_sections
+#define elf_backend_merge_symbol_attribute elf32_m68hc11_merge_symbol_attribute
 
 #define bfd_elf32_bfd_link_hash_table_create \
                                 m68hc11_elf_bfd_link_hash_table_create
Index: bfd/elf32-m68hc12.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m68hc12.c,v
retrieving revision 1.30
diff -u -p -r1.30 elf32-m68hc12.c
--- bfd/elf32-m68hc12.c	25 Aug 2010 14:53:42 -0000	1.30
+++ bfd/elf32-m68hc12.c	10 Feb 2012 03:32:24 -0000
@@ -1,5 +1,5 @@
 /* Motorola 68HC12-specific support for 32-bit ELF
-   Copyright 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007
+   Copyright 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2012
    Free Software Foundation, Inc.
    Contributed by Stephane Carrez (stcarrez@nerim.fr)
    (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com))
@@ -581,6 +581,7 @@ static const struct bfd_elf_special_sect
 #define elf_backend_special_sections elf32_m68hc12_special_sections
 #define elf_backend_post_process_headers     elf32_m68hc11_post_process_headers
 #define elf_backend_add_symbol_hook  elf32_m68hc11_add_symbol_hook
+#define elf_backend_merge_symbol_attribute elf32_m68hc11_merge_symbol_attribute
 
 #define bfd_elf32_bfd_link_hash_table_create \
                                 m68hc12_elf_bfd_link_hash_table_create
Index: gas/testsuite/gas/all/gas.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/all/gas.exp,v
retrieving revision 1.74
diff -u -p -r1.74 gas.exp
--- gas/testsuite/gas/all/gas.exp	14 May 2011 00:52:07 -0000	1.74
+++ gas/testsuite/gas/all/gas.exp	10 Feb 2012 06:27:48 -0000
@@ -132,9 +132,11 @@ case $target_triplet in {
 	run_dump_test redef
 	# These targets fail redef2 because they disallow redefined
 	# symbols on relocs.
-	setup_xfail "m68hc*-*-*" "rx-*-*" "vax*-*-*" "z8k-*-*"
+	setup_xfail "m68hc1*-*-*" "m6811-*-*" "m6812-*-*"
+	setup_xfail "rx-*-*" "vax*-*-*" "z8k-*-*"
 	run_dump_test redef2
-	setup_xfail "m68hc*-*-*" "rx-*-*" "vax*-*-*" "z8k-*-*"
+	setup_xfail "m68hc1*-*-*" "m6811-*-*" "m6812-*-*"
+	setup_xfail "rx-*-*" "vax*-*-*" "z8k-*-*"
 	# rs6000-aix disallows redefinition via .comm.
 	setup_xfail "*-*-aix*"
 	# SOM uses a different syntax for .comm
Index: gas/testsuite/gas/elf/elf.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/elf/elf.exp,v
retrieving revision 1.78
diff -u -p -r1.78 elf.exp
--- gas/testsuite/gas/elf/elf.exp	4 Aug 2011 20:20:11 -0000	1.78
+++ gas/testsuite/gas/elf/elf.exp	10 Feb 2012 06:27:52 -0000
@@ -37,19 +37,7 @@ proc run_elf_list_test { name suffix opt
 }
 
 # We're testing bits in obj-elf -- don't run on anything else.
-if { ([istarget "*-*-*elf*"]
-      || [istarget "*-*-linux*"]
-      || [istarget "*-*-gnu*"]
-      || [istarget "m6811-*"]
-      || [istarget "m6812-*"]
-      || [istarget "sparc*-*-solaris*"]
-      || [istarget "mips*-*-irix6*"]
-      || [istarget "arm*-*-eabi"])
-     && ![istarget *-*-linux*aout*]
-     && ![istarget *-*-linux*coff*]
-     && ![istarget *-*-linux*oldld*]
-     && ![istarget sh64*-*-linux*]
-} then {
+if { [is_elf_format] } then {
     set target_machine ""
     if {[istarget "mips*-*-*"]} then {
 	set target_machine -mips
Index: gas/testsuite/gas/m68hc11/m68hc11.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/m68hc11/m68hc11.exp,v
retrieving revision 1.7
diff -u -p -r1.7 m68hc11.exp
--- gas/testsuite/gas/m68hc11/m68hc11.exp	1 Aug 2004 19:59:51 -0000	1.7
+++ gas/testsuite/gas/m68hc11/m68hc11.exp	10 Feb 2012 06:27:52 -0000
@@ -1,14 +1,10 @@
 #
 # Some generic m68HC11 tests
 #
-if ![istarget "m68hc11-*-*"] then {
-    if ![istarget "m6811-*-*"] then {
-	if ![istarget "m68hc12-*-*"] then {
-	    if ![istarget "m6812-*-*"] then {
-		return
-	    }
-	}
-    }
+if { ![istarget "m68hc1*-*-*"]
+     && ![istarget "m6811-*-*"]
+     && ![istarget "m6812-*-*"] } then {
+    return
 }
 
 # Simple test for --print-opcodes (list of supported opcodes)
@@ -80,21 +76,21 @@ proc gas_m68hc11_warning { options line 
 
 # ------------------
 # 68HC11 error tests
-gas_m68hc11_error "" "puld\n" "Opcode .puld. is not recognized"
+gas_m68hc11_error "-m68hc11" "puld\n" "Opcode .puld. is not recognized"
 gas_m68hc11_error "" "ldab\n" "Invalid operand for .ldab."
-gas_m68hc11_error "" "ldab 256,x\n" "Operand out of 8-bit range:.*256"
-gas_m68hc11_error "" "ldab 257,y\n" "Operand out of 8-bit range:.*257"
-gas_m68hc11_error "" "ldab -1,y\n" "Operand out of 8-bit range:.*-1"
-gas_m68hc11_error "" "ldab bar,y\nbar=300" "value of 300 too large for field of 1 byte"
+gas_m68hc11_error "-m68hc11" "ldab 256,x\n" "Operand out of 8-bit range:.*256"
+gas_m68hc11_error "-m68hc11" "ldab 257,y\n" "Operand out of 8-bit range:.*257"
+gas_m68hc11_error "-m68hc11" "ldab -1,y\n" "Operand out of 8-bit range:.*-1"
+gas_m68hc11_error "-m68hc11" "ldab bar,y\nbar=300" "value of 300 too large for field of 1 byte"
 gas_m68hc11_error "" "jmp \#23\n" "Immediate operand is not allowed"
-gas_m68hc11_error "" "ldab \[d,pc\]\n" "Indirect indexed addressing is not valid for 68HC11"
+gas_m68hc11_error "-m68hc11" "ldab \[d,pc\]\n" "Indirect indexed addressing is not valid for 68HC11"
 gas_m68hc11_error "" "ldab ,t\n" "Spurious .,. or bad indirect register"
 gas_m68hc11_error "" "ldab 1,t\n" "Garbage at end of instruction:.*,t"
 gas_m68hc11_error "" "ldab 1,,x\n" "Garbage at end of instruction:.*,x"
-gas_m68hc11_error "" "ldab 1,+x\n" "Pre-increment mode is not valid"
-gas_m68hc11_error "" "ldab 1,-x\n" "Pre-increment mode is not valid"
-gas_m68hc11_error "" "ldab 1,x+\n" "Post-increment mode is not valid"
-gas_m68hc11_error "" "ldab 1,x-\n" "Post-decrement mode is not valid"
+gas_m68hc11_error "-m68hc11" "ldab 1,+x\n" "Pre-increment mode is not valid"
+gas_m68hc11_error "-m68hc11" "ldab 1,-x\n" "Pre-increment mode is not valid"
+gas_m68hc11_error "-m68hc11" "ldab 1,x+\n" "Post-increment mode is not valid"
+gas_m68hc11_error "-m68hc11" "ldab 1,x-\n" "Post-decrement mode is not valid"
 gas_m68hc11_error "" "ldd \#65536\n" "Operand out of 16-bit range"
 gas_m68hc11_error "--short-branchs" "bne 200\n" \
     "Operand out of range for a relative branch"
Index: gas/testsuite/gas/symver/symver.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/symver/symver.exp,v
retrieving revision 1.6
diff -u -p -r1.6 symver.exp
--- gas/testsuite/gas/symver/symver.exp	20 Nov 2010 15:36:33 -0000	1.6
+++ gas/testsuite/gas/symver/symver.exp	10 Feb 2012 06:27:53 -0000
@@ -15,13 +15,7 @@ proc run_error_test { name opts } {
 }
 
 # symver is only supported by ELF targets.
-if { ([istarget "*-*-elf*"]		
-      || [istarget "m6811-*"]
-      || [istarget "m6812-*"]
-      || [istarget "*-*-linux*"]
-      || [istarget "*-*-gnu*"])
-     && ![istarget *-*-linux*aout*]
-     && ![istarget *-*-linux*oldld*] } then {
+if { [is_elf_format] } then {
 
     if {[istarget "ia64-*"]} then {
       return
Index: ld/testsuite/ld-m68hc11/m68hc11.exp
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/m68hc11.exp,v
retrieving revision 1.4
diff -u -p -r1.4 m68hc11.exp
--- ld/testsuite/ld-m68hc11/m68hc11.exp	2 Sep 2009 07:25:40 -0000	1.4
+++ ld/testsuite/ld-m68hc11/m68hc11.exp	10 Feb 2012 03:33:11 -0000
@@ -22,7 +22,8 @@
 
 # Test 68HC11 relaxing.  This tests the assembler as well as the linker.
 
-if { ![istarget m6811-*-*] && ![istarget m6812-*-*] } {
+if { ![istarget m6811-*-*] && ![istarget m6812-*-*]
+     && ![istarget m68hc11-*-*] && ![istarget m68hc12-*-*] } {
     return
 }
 
Index: ld/testsuite/ld-m68hc11/adj-brset.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/adj-brset.d,v
retrieving revision 1.1
diff -u -p -r1.1 adj-brset.d
--- ld/testsuite/ld-m68hc11/adj-brset.d	14 Oct 2002 21:20:16 -0000	1.1
+++ ld/testsuite/ld-m68hc11/adj-brset.d	10 Feb 2012 03:33:11 -0000
@@ -1,8 +1,7 @@
 #source: adj-brset.s
 #as: -m68hc11
-#ld: --relax
+#ld: -m m68hc11elf --relax
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*: +file format elf32\-m68hc11
 
Index: ld/testsuite/ld-m68hc11/adj-jump.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/adj-jump.d,v
retrieving revision 1.1
diff -u -p -r1.1 adj-jump.d
--- ld/testsuite/ld-m68hc11/adj-jump.d	14 Oct 2002 21:20:16 -0000	1.1
+++ ld/testsuite/ld-m68hc11/adj-jump.d	10 Feb 2012 03:33:11 -0000
@@ -1,8 +1,7 @@
 #source: adj-jump.s
 #as: -m68hc11
-#ld: --relax
+#ld: -m m68hc11elf --relax
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*: +file format elf32\-m68hc11
 
Index: ld/testsuite/ld-m68hc11/bug-1403.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/bug-1403.d,v
retrieving revision 1.1
diff -u -p -r1.1 bug-1403.d
--- ld/testsuite/ld-m68hc11/bug-1403.d	14 Oct 2002 21:20:16 -0000	1.1
+++ ld/testsuite/ld-m68hc11/bug-1403.d	10 Feb 2012 03:33:11 -0000
@@ -1,8 +1,7 @@
 #source: bug-1403.s
 #as: -m68hc11
-#ld: --relax
+#ld: -m m68hc11elf --relax
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*: +file format elf32-m68hc11
 
Index: ld/testsuite/ld-m68hc11/bug-1417.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/bug-1417.d,v
retrieving revision 1.2
diff -u -p -r1.2 bug-1417.d
--- ld/testsuite/ld-m68hc11/bug-1417.d	4 Apr 2003 21:17:59 -0000	1.2
+++ ld/testsuite/ld-m68hc11/bug-1417.d	10 Feb 2012 03:33:11 -0000
@@ -1,8 +1,7 @@
 #source: bug-1417.s
 #as: -m68hc11
-#ld: --relax
+#ld: -m m68hc11elf --relax
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*: +file format elf32-m68hc11
 
Index: ld/testsuite/ld-m68hc11/bug-3331.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/bug-3331.d,v
retrieving revision 1.1
diff -u -p -r1.1 bug-3331.d
--- ld/testsuite/ld-m68hc11/bug-3331.d	26 Apr 2003 11:53:36 -0000	1.1
+++ ld/testsuite/ld-m68hc11/bug-3331.d	10 Feb 2012 03:33:11 -0000
@@ -1,8 +1,7 @@
 #source: bug-3331.s
 #as: -m68hc11
-#ld: --relax
+#ld: -m m68hc11elf --relax
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*: +file format elf32-m68hc11
 
Index: ld/testsuite/ld-m68hc11/far-hc11.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/far-hc11.d,v
retrieving revision 1.1
diff -u -p -r1.1 far-hc11.d
--- ld/testsuite/ld-m68hc11/far-hc11.d	21 Apr 2003 13:30:14 -0000	1.1
+++ ld/testsuite/ld-m68hc11/far-hc11.d	10 Feb 2012 03:33:11 -0000
@@ -2,31 +2,30 @@
 #as: -m68hc11
 #ld: -m m68hc11elf
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*:     file format elf32-m68hc11
 
 Disassembly of section .text:
 0+8000 <tramp._far_foo> pshb
 0+8001 <tramp._far_foo\+0x1> ldab	\#0
-0+8003 <tramp._far_foo\+0x3> ldy	\#0+6c <_far_foo>
+0+8003 <tramp._far_foo\+0x3> ldy	\#0+8072 <_far_foo>
 0+8007 <tramp._far_foo\+0x7> jmp	0+8056 <__far_trampoline>
 0+800a <tramp._far_bar> pshb
 0+800b <tramp._far_bar\+0x1> ldab	\#0
-0+800d <tramp._far_bar\+0x3> ldy	\#0+64 <stack>
+0+800d <tramp._far_bar\+0x3> ldy	\#0+806a .*
 0+8011 <tramp._far_bar\+0x7> jmp	0+8056 <__far_trampoline>
 0+8014 <_start> lds	\#0+64 <stack>
-0+8017 <_start\+0x3> ldx	\#0+abcd <__data_image\+0x2b63>
+0+8017 <_start\+0x3> ldx	\#0+abcd .*
 0+801a <_start\+0x6> pshx
-0+801b <_start\+0x7> ldd	\#0+1234 <__data_section_start\+0x134>
-0+801e <_start\+0xa> ldx	\#0+5678 <__data_section_start\+0x4578>
+0+801b <_start\+0x7> ldd	\#0+1234 .*
+0+801e <_start\+0xa> ldx	\#0+5678 .*
 0+8021 <_start\+0xd> jsr	0+800a <tramp._far_bar>
-0+8024 <_start\+0x10> cpx	\#0+1234 <__data_section_start\+0x134>
+0+8024 <_start\+0x10> cpx	\#0+1234 .*
 0+8027 <_start\+0x13> bne	0+804e <fail>
-0+8029 <_start\+0x15> cpd	\#0+5678 <__data_section_start\+0x4578>
+0+8029 <_start\+0x15> cpd	\#0+5678 .*
 0+802d <_start\+0x19> bne	0+804e <fail>
 0+802f <_start\+0x1b> pulx
-0+8030 <_start\+0x1c> cpx	\#0+abcd <__data_image\+0x2b63>
+0+8030 <_start\+0x1c> cpx	\#0+abcd .*
 0+8033 <_start\+0x1f> bne	0+804e <fail>
 0+8035 <_start\+0x21> ldd	\#0+8000 <tramp._far_foo>
 0+8038 <_start\+0x24> xgdx
@@ -35,7 +34,7 @@ Disassembly of section .text:
 0+803e <_start\+0x2a> xgdy
 0+8040 <_start\+0x2c> jsr	0,y
 0+8043 <_start\+0x2f> ldaa	\#0
-0+8045 <_start\+0x31> ldy	\#0+73 <_far_no_tramp>
+0+8045 <_start\+0x31> ldy	\#0+8079 <_far_no_tramp>
 0+8049 <_start\+0x35> bsr	0+8066 <__call_a16>
 0+804b <_start\+0x37> clra
 0+804c <_start\+0x38> clrb
@@ -59,15 +58,15 @@ Disassembly of section .text:
 0+8066 <__call_a16> psha
 0+8067 <__call_a16\+0x1> jmp	0,y
 Disassembly of section .bank1:
-0+64 <_far_bar> jsr	0+6b <local_bank1>
-0+67 <_far_bar\+0x3> xgdx
-0+68 <_far_bar\+0x4> jmp	0+8054 <__return>
-0+6b <local_bank1> rts
+0+806a <_far_bar> jsr	0+8071 <local_bank1>
+0+806d <_far_bar\+0x3> xgdx
+0+806e <_far_bar\+0x4> jmp	0+8054 <__return>
+0+8071 <local_bank1> rts
 Disassembly of section .bank2:
-0+6c <_far_foo> jsr	0+72 <local_bank2>
-0+6f <_far_foo\+0x3> jmp	0+8054 <__return>
-0+72 <local_bank2> rts
+0+8072 <_far_foo> jsr	0+8078 <local_bank2>
+0+8075 <_far_foo\+0x3> jmp	0+8054 <__return>
+0+8078 <local_bank2> rts
 Disassembly of section .bank3:
-0+73 <_far_no_tramp> jsr	0+79 <local_bank3>
-0+76 <_far_no_tramp\+0x3> jmp	0+8054 <__return>
-0+79 <local_bank3> rts
+0+8079 <_far_no_tramp> jsr	0+807f <local_bank3>
+0+807c <_far_no_tramp\+0x3> jmp	0+8054 <__return>
+0+807f <local_bank3> rts
Index: ld/testsuite/ld-m68hc11/far-hc12.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/far-hc12.d,v
retrieving revision 1.1
diff -u -p -r1.1 far-hc12.d
--- ld/testsuite/ld-m68hc11/far-hc12.d	21 Apr 2003 13:30:14 -0000	1.1
+++ ld/testsuite/ld-m68hc11/far-hc12.d	10 Feb 2012 03:33:11 -0000
@@ -2,7 +2,6 @@
 #as: -m68hc12
 #ld: -m m68hc12elf --script $srcdir/$subdir/far-hc12.ld
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*:     file format elf32\-m68hc12
 
Index: ld/testsuite/ld-m68hc11/link-hcs12.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/link-hcs12.d,v
retrieving revision 1.1
diff -u -p -r1.1 link-hcs12.d
--- ld/testsuite/ld-m68hc11/link-hcs12.d	13 May 2003 19:11:45 -0000	1.1
+++ ld/testsuite/ld-m68hc11/link-hcs12.d	10 Feb 2012 03:33:11 -0000
@@ -3,17 +3,12 @@
 #as: -mshort
 #ld: -m m68hc12elf
 #objdump: -p -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*:     file format elf32\-m68hc12
 
 Program Header:
-    LOAD off    0x0+ vaddr 0x0+1000 paddr 0x0+1000 align 2\*\*12
-         filesz 0x0+100 memsz 0x0+100 flags rw-
     LOAD off    0x0+1000 vaddr 0x0+8000 paddr 0x0+8000 align 2\*\*12
          filesz 0x0+6 memsz 0x0+6 flags r-x
-    LOAD off    0x0+1100 vaddr 0x0+1100 paddr 0x0+8006 align 2\*\*12
-         filesz 0x0+ memsz 0x0+ flags rw-
 private flags = 22:\[abi=16\-bit int, 64\-bit double, cpu=HCS12\] \[memory=flat\]
 
 Disassembly of section .text:
Index: ld/testsuite/ld-m68hc11/relax-direct.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/relax-direct.d,v
retrieving revision 1.1
diff -u -p -r1.1 relax-direct.d
--- ld/testsuite/ld-m68hc11/relax-direct.d	14 Oct 2002 21:20:16 -0000	1.1
+++ ld/testsuite/ld-m68hc11/relax-direct.d	10 Feb 2012 03:33:11 -0000
@@ -1,8 +1,7 @@
 #source: relax-direct.s
 #as: -m68hc11
-#ld: --relax
+#ld: -m m68hc11elf --relax
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*: +file format elf32-m68hc11
 
Index: ld/testsuite/ld-m68hc11/relax-group.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-m68hc11/relax-group.d,v
retrieving revision 1.1
diff -u -p -r1.1 relax-group.d
--- ld/testsuite/ld-m68hc11/relax-group.d	14 Oct 2002 21:20:16 -0000	1.1
+++ ld/testsuite/ld-m68hc11/relax-group.d	10 Feb 2012 03:33:11 -0000
@@ -1,8 +1,7 @@
 #source: relax-group.s
 #as: -m68hc11
-#ld: --relax
+#ld: -m m68hc11elf --relax
 #objdump: -d --prefix-addresses -r
-#target: m6811-*-* m6812-*-*
 
 .*: +file format elf32-m68hc11
 

-- 
Alan Modra
Australia Development Lab, IBM

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: m68hc11 trampolines
  2012-02-13  2:32                   ` Alan Modra
@ 2012-02-14 23:08                     ` James Murray
  2012-02-14 23:50                       ` Alan Modra
  2012-02-14 23:51                       ` Jeffrey Walton
  0 siblings, 2 replies; 40+ messages in thread
From: James Murray @ 2012-02-14 23:08 UTC (permalink / raw)
  To: binutils, Alan Modra

On Mon, 2012-02-13 at 13:02 +1030, Alan Modra wrote:
> On Thu, Feb 09, 2012 at 11:23:01PM +1030, Alan Modra wrote:
> > On Fri, Dec 30, 2011 at 02:12:54AM +0000, James Murray wrote:
> > > What does this mean and what needs doing to get the m68hc11 trampoline
> > > code back?
> > 
> > Try this.
> 

That's certainly more involved than the workaround I'd been using:

------------------------

diff -Nuar -x '.#*' -x CVS src-old/include/elf/m68hc11.h
src/include/elf/m68hc11.h
--- src-old/include/elf/m68hc11.h	2011-02-01 01:09:13.000000000 +0000
+++ src/include/elf/m68hc11.h	2012-01-02 00:33:35.000000000 +0000
@@ -86,10 +93,10 @@
 /* Special values for the st_other field in the symbol table.  These
    are used for 68HC12 to identify far functions (must be called with
    'call' and returns with 'rtc').  */
-#define STO_M68HC12_FAR 0x80
+#define STO_M68HC12_FAR 0x81 // was 0x80
 
 /* Identify interrupt handlers.  This is used by the debugger to
    correctly compute the stack frame.  */
-#define STO_M68HC12_INTERRUPT 0x40
+#define STO_M68HC12_INTERRUPT 0x41 // was 0x40
      
 #endif

------------------------

(I've not yet completed cleaning up my other work yet.)

regards

James Murray

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: m68hc11 trampolines
  2012-02-14 23:08                     ` James Murray
@ 2012-02-14 23:50                       ` Alan Modra
  2012-02-14 23:51                       ` Jeffrey Walton
  1 sibling, 0 replies; 40+ messages in thread
From: Alan Modra @ 2012-02-14 23:50 UTC (permalink / raw)
  To: James Murray; +Cc: binutils

On Tue, Feb 14, 2012 at 11:08:25PM +0000, James Murray wrote:
> -#define STO_M68HC12_FAR 0x80
> +#define STO_M68HC12_FAR 0x81 // was 0x80

Ick, no, you can't hijack STV_INTERNAL for your own use like this.

-- 
Alan Modra
Australia Development Lab, IBM

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: m68hc11 trampolines
  2012-02-14 23:08                     ` James Murray
  2012-02-14 23:50                       ` Alan Modra
@ 2012-02-14 23:51                       ` Jeffrey Walton
  2012-02-15 19:38                         ` James Murray
  1 sibling, 1 reply; 40+ messages in thread
From: Jeffrey Walton @ 2012-02-14 23:51 UTC (permalink / raw)
  To: James Murray; +Cc: binutils

On Tue, Feb 14, 2012 at 6:08 PM, James Murray <jsm@jsm-net.demon.co.uk> wrote:
> On Mon, 2012-02-13 at 13:02 +1030, Alan Modra wrote:
>> On Thu, Feb 09, 2012 at 11:23:01PM +1030, Alan Modra wrote:
>> > On Fri, Dec 30, 2011 at 02:12:54AM +0000, James Murray wrote:
>> > > What does this mean and what needs doing to get the m68hc11 trampoline
>> > > code back?
>> >
>> > Try this.
>>
>
> That's certainly more involved than the workaround I'd been using:
>
> ------------------------
>
> diff -Nuar -x '.#*' -x CVS src-old/include/elf/m68hc11.h
> src/include/elf/m68hc11.h
> --- src-old/include/elf/m68hc11.h       2011-02-01 01:09:13.000000000 +0000
> +++ src/include/elf/m68hc11.h   2012-01-02 00:33:35.000000000 +0000
> @@ -86,10 +93,10 @@
>  /* Special values for the st_other field in the symbol table.  These
>    are used for 68HC12 to identify far functions (must be called with
>    'call' and returns with 'rtc').  */
> -#define STO_M68HC12_FAR 0x80
> +#define STO_M68HC12_FAR 0x81 // was 0x80
>
>  /* Identify interrupt handlers.  This is used by the debugger to
>    correctly compute the stack frame.  */
> -#define STO_M68HC12_INTERRUPT 0x40
> +#define STO_M68HC12_INTERRUPT 0x41 // was 0x40
>
>  #endif
Trampolines are mutually exclusive with --noexecstack. I'd rather have
a +R +W -X stack than a trampoline.

Just sayin....

Jeff

^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: m68hc11 trampolines
  2012-02-14 23:51                       ` Jeffrey Walton
@ 2012-02-15 19:38                         ` James Murray
  0 siblings, 0 replies; 40+ messages in thread
From: James Murray @ 2012-02-15 19:38 UTC (permalink / raw)
  To: binutils; +Cc: Jeffrey Walton

On Tue, 2012-02-14 at 18:51 -0500, Jeffrey Walton wrote:
> Trampolines are mutually exclusive with --noexecstack. I'd rather have
> a +R +W -X stack than a trampoline.

The hc11 trampolines don't use an executable stack, they reside in
non-banked flash.

Maybe I'm misunderstanding your comment ?

James

^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2012-02-15 19:38 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-22  9:17 Release 2.22: branch created Tristan Gingold
2011-09-23 15:57 ` H.J. Lu
2011-09-24 19:53 ` Andreas Schwab
2011-09-25 18:07 ` Dave Korn
2011-09-26  9:43   ` Tristan Gingold
2011-10-09 13:17     ` Christopher Faylor
2011-10-11  2:41       ` Dave Korn
2011-10-16 14:49 ` Eric Botcazou
2011-10-17  0:57   ` David Miller
2011-10-17  1:51   ` David Miller
2011-10-17  9:33     ` Release 2.22: branch create Eric Botcazou
2011-10-17 20:45       ` David Miller
2011-10-18 20:47       ` David Miller
2011-10-18 22:21         ` Ian Lance Taylor
2011-10-18 22:52         ` Eric Botcazou
2011-10-18 23:22           ` David Miller
2011-10-17  7:22   ` Release 2.22: branch created Tristan Gingold
2011-11-09  9:26 ` Release 2.22: Next week Tristan Gingold
2011-11-17 14:51   ` Tristan Gingold
2011-11-17 15:10     ` Matthew Gretton-Dann
2011-11-17 15:20       ` Tristan Gingold
2011-11-17 17:34         ` Matthew Gretton-Dann
2011-11-18 11:03           ` Tristan Gingold
2011-11-18  7:48         ` Doug Kwan (關振德)
2011-11-21  9:43           ` Tristan Gingold
2011-12-18 17:45 ` James Murray
2011-12-19  9:35   ` Tristan Gingold
2011-12-19 19:45     ` James Murray
2011-12-20 13:51       ` Release 2.22: Next week ... (m68hc11 testsuite) James Murray
2011-12-20 13:56         ` Tristan Gingold
2011-12-20 14:49           ` James Murray
2011-12-29 15:46             ` James Murray
2011-12-30  2:13               ` James Murray
2012-01-02 23:04                 ` James Murray
2012-02-09 12:53                 ` m68hc11 trampolines Alan Modra
2012-02-13  2:32                   ` Alan Modra
2012-02-14 23:08                     ` James Murray
2012-02-14 23:50                       ` Alan Modra
2012-02-14 23:51                       ` Jeffrey Walton
2012-02-15 19:38                         ` James Murray

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).