git rm retired patches

This commit is contained in:
Jakub Jelinek 2012-08-14 10:13:21 +02:00
parent fe57180be4
commit 59042eb540
13 changed files with 0 additions and 49926 deletions

View File

@ -1,18 +0,0 @@
*** ../binutils-2.20.51.0.2.copy-patched/bfd/elf.c 2010-03-02 14:37:43.000000000 +0000
--- bfd/elf.c 2010-03-02 14:39:27.000000000 +0000
*************** _bfd_elf_copy_private_bfd_data (bfd *ibf
*** 1069,1074 ****
--- 1069,1081 ----
/* Copy object attributes. */
_bfd_elf_copy_obj_attributes (ibfd, obfd);
+ /* If the input BFD has the OSABI field set and the
+ output BFD does not, then copy the value. */
+ if (elf_elfheader (ibfd)->e_ident [EI_OSABI] != ELFOSABI_NONE
+ && elf_elfheader (obfd)->e_ident [EI_OSABI] == ELFOSABI_NONE)
+ elf_elfheader (obfd)->e_ident [EI_OSABI] =
+ elf_elfheader (ibfd)->e_ident [EI_OSABI];
+
return TRUE;
}

View File

@ -1,25 +0,0 @@
diff -rcp ../binutils-2.20.51.0.7.original/bfd/elf64-ppc.c ./bfd/elf64-ppc.c
*** ../binutils-2.20.51.0.7.original/bfd/elf64-ppc.c 2010-04-08 15:01:45.000000000 +0100
--- ./bfd/elf64-ppc.c 2010-04-08 15:02:05.000000000 +0100
*************** ppc64_elf_relocate_section (bfd *output_
*** 12558,12564 ****
else if (!SYMBOL_REFERENCES_LOCAL (info, &h->elf)
&& !is_opd
&& r_type != R_PPC64_TOC)
! outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
else
{
/* This symbol is local, or marked to become local,
--- 12558,12569 ----
else if (!SYMBOL_REFERENCES_LOCAL (info, &h->elf)
&& !is_opd
&& r_type != R_PPC64_TOC)
! {
! outrel.r_info = ELF64_R_INFO (h->elf.dynindx, r_type);
! if (h->elf.dynindx == -1
! && h->elf.root.type == bfd_link_hash_undefweak)
! memset (&outrel, 0, sizeof outrel);
! }
else
{
/* This symbol is local, or marked to become local,

View File

@ -1,40 +0,0 @@
diff -cpr ../binutils-2.21.51.0.6.orig/gold/configure gold/configure
*** ../binutils-2.21.51.0.6.orig/gold/configure 2011-03-08 15:58:55.297802999 +0000
--- gold/configure 2011-03-08 15:59:57.628801736 +0000
*************** if test "${enable_plugins+set}" = set; t
*** 3317,3323 ****
*) plugins=yes ;;
esac
else
! plugins=no
fi
if test "$plugins" = "yes"; then
--- 3317,3323 ----
*) plugins=yes ;;
esac
else
! plugins=yes
fi
if test "$plugins" = "yes"; then
diff -cpr ../binutils-2.21.51.0.6.orig/gold/configure.ac gold/configure.ac
*** ../binutils-2.21.51.0.6.orig/gold/configure.ac 2011-03-08 15:58:55.326802999 +0000
--- gold/configure.ac 2011-03-08 15:59:29.479803846 +0000
*************** AC_ARG_ENABLE([plugins],
*** 93,99 ****
no) plugins=no ;;
*) plugins=yes ;;
esac],
! [plugins=no])
if test "$plugins" = "yes"; then
AC_DEFINE(ENABLE_PLUGINS, 1,
[Define to enable linker plugins])
--- 93,99 ----
no) plugins=no ;;
*) plugins=yes ;;
esac],
! [plugins=yes])
if test "$plugins" = "yes"; then
AC_DEFINE(ENABLE_PLUGINS, 1,
[Define to enable linker plugins])

View File

@ -1,141 +0,0 @@
2012-03-09 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13817
* bfd/elf32-i386.c (elf_i386_relocate_section): Restore
R_386_IRELATIVE.
* * elf64-x86-64.c (elf_x86_64_relocate_section): Restore
R_X86_64_IRELATIVE.
* ld-i386/pr13302.d: Updated.
* ld-x86-64/pr13082-5b.d: Likewise.
* ld-x86-64/pr13082-6a.d: Likewise.
* ld-x86-64/pr13082-6b.d: Likewise.
--- bfd/elf32-i386.c 21 Oct 2011 19:37:14 -0000 1.265
+++ bfd/elf32-i386.c 9 Mar 2012 16:28:36 -0000 1.266
@@ -3257,7 +3257,6 @@ elf_i386_relocate_section (bfd *output_b
bfd_byte *loc;
asection *sreloc;
bfd_vma offset;
- bfd_boolean relocate;
/* Need a dynamic relocation to get the real function
adddress. */
@@ -3278,14 +3277,15 @@ elf_i386_relocate_section (bfd *output_b
|| info->executable)
{
/* This symbol is resolved locally. */
- outrel.r_info = ELF32_R_INFO (0, R_386_RELATIVE);
- relocate = TRUE;
+ outrel.r_info = ELF32_R_INFO (0, R_386_IRELATIVE);
+ bfd_put_32 (output_bfd,
+ (h->root.u.def.value
+ + h->root.u.def.section->output_section->vma
+ + h->root.u.def.section->output_offset),
+ contents + offset);
}
else
- {
- outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
- relocate = FALSE;
- }
+ outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
sreloc = htab->elf.irelifunc;
loc = sreloc->contents;
@@ -3298,8 +3298,7 @@ elf_i386_relocate_section (bfd *output_b
we need to include the symbol value so that it
becomes an addend for the dynamic reloc. For an
internal symbol, we have updated addend. */
- if (! relocate)
- continue;
+ continue;
}
/* FALLTHROUGH */
case R_386_PC32:
--- bfd/elf64-x86-64.c 6 Mar 2012 20:15:56 -0000 1.248
+++ bfd/elf64-x86-64.c 9 Mar 2012 16:28:36 -0000 1.249
@@ -3156,7 +3156,6 @@ elf_x86_64_relocate_section (bfd *output
{
Elf_Internal_Rela outrel;
asection *sreloc;
- bfd_boolean relocate;
/* Need a dynamic relocation to get the real function
address. */
@@ -3176,15 +3175,15 @@ elf_x86_64_relocate_section (bfd *output
|| info->executable)
{
/* This symbol is resolved locally. */
- outrel.r_info = htab->r_info (0, R_X86_64_RELATIVE);
- outrel.r_addend = relocation;
- relocate = TRUE;
+ outrel.r_info = htab->r_info (0, R_X86_64_IRELATIVE);
+ outrel.r_addend = (h->root.u.def.value
+ + h->root.u.def.section->output_section->vma
+ + h->root.u.def.section->output_offset);
}
else
{
outrel.r_info = htab->r_info (h->dynindx, r_type);
outrel.r_addend = 0;
- relocate = FALSE;
}
sreloc = htab->elf.irelifunc;
@@ -3195,8 +3194,7 @@ elf_x86_64_relocate_section (bfd *output
we need to include the symbol value so that it
becomes an addend for the dynamic reloc. For an
internal symbol, we have updated addend. */
- if (! relocate)
- continue;
+ continue;
}
/* FALLTHROUGH */
case R_X86_64_PC32:
--- ld/testsuite/ld-i386/pr13302.d 21 Oct 2011 19:37:15 -0000 1.1
+++ ld/testsuite/ld-i386/pr13302.d 9 Mar 2012 16:28:37 -0000 1.2
@@ -5,7 +5,7 @@
Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name
-[0-9a-f]+ +[0-9a-f]+ +R_386_RELATIVE +
+[0-9a-f]+ +[0-9a-f]+ +R_386_IRELATIVE +
Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name
--- ld/testsuite/ld-x86-64/pr13082-5b.d 21 Oct 2011 19:37:15 -0000 1.2
+++ ld/testsuite/ld-x86-64/pr13082-5b.d 9 Mar 2012 16:28:38 -0000 1.3
@@ -6,7 +6,7 @@
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
-[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
--- ld/testsuite/ld-x86-64/pr13082-6a.d 21 Oct 2011 19:37:15 -0000 1.2
+++ ld/testsuite/ld-x86-64/pr13082-6a.d 9 Mar 2012 16:28:38 -0000 1.3
@@ -6,7 +6,7 @@
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
-[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
--- ld/testsuite/ld-x86-64/pr13082-6b.d 21 Oct 2011 19:37:15 -0000 1.2
+++ ld/testsuite/ld-x86-64/pr13082-6b.d 9 Mar 2012 16:28:38 -0000 1.3
@@ -6,7 +6,7 @@
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend
-[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_IRELATIVE +[0-9a-f]+
Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entries:
Offset Info Type Sym. Value Symbol's Name \+ Addend

View File

@ -1,39 +0,0 @@
commit 05906ac72f0f047472989a99dec1e66713157629
Author: Richard Henderson <rth@redhat.com>
Date: Mon Feb 13 18:08:50 2012 +0000
PR ld/13621
bfd/
* linker.c (fix_syms): Force symbols outside any section into
bfd_abs_section_ptr.
ld/testsuite/
* ld-elf/warn2.d: Expect ABS section for Foo.
diff --git a/bfd/linker.c b/bfd/linker.c
index c51c5df..0404474 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -3208,6 +3208,12 @@ fix_syms (struct bfd_link_hash_entry *h, void *data)
op = op1;
}
+ /* Refuse to choose a section for which we are out of bounds. */
+ /* ??? This may make most of the above moot. */
+ if (h->u.def.value < op->vma
+ || h->u.def.value > op->vma + op->size)
+ op = bfd_abs_section_ptr;
+
h->u.def.value -= op->vma;
h->u.def.section = op;
}
index 95b7ef4..a9c05f9 100644
--- a/ld/testsuite/ld-elf/warn2.d
+++ b/ld/testsuite/ld-elf/warn2.d
@@ -13,5 +13,5 @@
# construct and that the symbol still appears as expected.
#...
- +[0-9]+: +[0-9a-f]+ +20 +OBJECT +GLOBAL +DEFAULT +[1-9] Foo
+ +[0-9]+: +[0-9a-f]+ +20 +OBJECT +GLOBAL +DEFAULT +ABS Foo
#pass

File diff suppressed because it is too large Load Diff

View File

@ -1,65 +0,0 @@
From f5edd1ac0e79c0356c6a1e2beffcadc0c532be98 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@bigpond.net.au>
Date: Wed, 8 Feb 2012 10:12:19 +0000
Subject: [PATCH] * elflink.c (_bfd_elf_gc_mark_rsec): Mark weakdef syms too.
(_bfd_elf_fix_symbol_flags): When a weakdef is def_regular, clear
the correct h->u.weakdef.
---
bfd/elflink.c | 26 +++++++++++++++-----------
1 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 1d1ca0b..7f9ec60 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -2510,23 +2510,21 @@ _bfd_elf_fix_symbol_flags (struct elf_link_hash_entry *h,
over to the real definition. */
if (h->u.weakdef != NULL)
{
- struct elf_link_hash_entry *weakdef;
-
- weakdef = h->u.weakdef;
- while (h->root.type == bfd_link_hash_indirect)
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
- BFD_ASSERT (h->root.type == bfd_link_hash_defined
- || h->root.type == bfd_link_hash_defweak);
- BFD_ASSERT (weakdef->def_dynamic);
-
/* If the real definition is defined by a regular object file,
don't do anything special. See the longer description in
_bfd_elf_adjust_dynamic_symbol, below. */
- if (weakdef->def_regular)
+ if (h->u.weakdef->def_regular)
h->u.weakdef = NULL;
else
{
+ struct elf_link_hash_entry *weakdef = h->u.weakdef;
+
+ while (h->root.type == bfd_link_hash_indirect)
+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
+
+ BFD_ASSERT (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak);
+ BFD_ASSERT (weakdef->def_dynamic);
BFD_ASSERT (weakdef->root.type == bfd_link_hash_defined
|| weakdef->root.type == bfd_link_hash_defweak);
(*bed->elf_backend_copy_indirect_symbol) (eif->info, weakdef, h);
@@ -11575,6 +11573,12 @@ _bfd_elf_gc_mark_rsec (struct bfd_link_info *info, asection *sec,
|| h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
h->mark = 1;
+ /* If this symbol is weak and there is a non-weak definition, we
+ keep the non-weak definition because many backends put
+ dynamic reloc info on the non-weak definition for code
+ handling copy relocs. */
+ if (h->u.weakdef != NULL)
+ h->u.weakdef->mark = 1;
return (*gc_mark_hook) (sec, info, cookie->rel, h, NULL);
}
--
1.7.3.4

View File

@ -1,24 +0,0 @@
2012-03-06 Jakub Jelinek <jakub@redhat.com>
* elf64-x86-64.c (elf_x86_64_relocate_section): For R_X86_64_RELATIVE
set relocate to TRUE.
--- bfd/elf64-x86-64.c.jj 2012-02-08 22:12:43.000000000 +0100
+++ bfd/elf64-x86-64.c 2012-03-06 09:52:16.760752214 +0100
@@ -1,6 +1,6 @@
/* X86-64 specific support for ELF
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
- 2010, 2011
+ 2010, 2011, 2012
Free Software Foundation, Inc.
Contributed by Jan Hubicka <jh@suse.cz>.
@@ -3178,7 +3178,7 @@ elf_x86_64_relocate_section (bfd *output
/* This symbol is resolved locally. */
outrel.r_info = htab->r_info (0, R_X86_64_RELATIVE);
outrel.r_addend = relocation;
- relocate = FALSE;
+ relocate = TRUE;
}
else
{

View File

@ -1,210 +0,0 @@
diff -cp ../binutils-2.22.52.0.4.orig/binutils/ar.c binutils/ar.c
*** ../binutils-2.22.52.0.4.orig/binutils/ar.c 2012-06-29 11:29:55.846149902 +0100
--- binutils/ar.c 2012-06-29 11:31:22.249147172 +0100
*************** open_inarch (const char *archive_filenam
*** 937,946 ****
static void
print_contents (bfd *abfd)
{
! size_t ncopied = 0;
char *cbuf = (char *) xmalloc (BUFSIZE);
struct stat buf;
! size_t size;
if (bfd_stat_arch_elt (abfd, &buf) != 0)
/* xgettext:c-format */
fatal (_("internal stat error on %s"), bfd_get_filename (abfd));
--- 937,946 ----
static void
print_contents (bfd *abfd)
{
! bfd_size_type ncopied = 0;
char *cbuf = (char *) xmalloc (BUFSIZE);
struct stat buf;
! bfd_size_type size;
if (bfd_stat_arch_elt (abfd, &buf) != 0)
/* xgettext:c-format */
fatal (_("internal stat error on %s"), bfd_get_filename (abfd));
*************** print_contents (bfd *abfd)
*** 954,965 ****
while (ncopied < size)
{
! size_t nread;
! size_t tocopy = size - ncopied;
if (tocopy > BUFSIZE)
tocopy = BUFSIZE;
! nread = bfd_bread (cbuf, (bfd_size_type) tocopy, abfd);
if (nread != tocopy)
/* xgettext:c-format */
fatal (_("%s is not a valid archive"),
--- 954,965 ----
while (ncopied < size)
{
! bfd_size_type nread;
! bfd_size_type tocopy = size - ncopied;
if (tocopy > BUFSIZE)
tocopy = BUFSIZE;
! nread = bfd_bread (cbuf, tocopy, abfd);
if (nread != tocopy)
/* xgettext:c-format */
fatal (_("%s is not a valid archive"),
*************** extract_file (bfd *abfd)
*** 990,998 ****
{
FILE *ostream;
char *cbuf = (char *) xmalloc (BUFSIZE);
! size_t nread, tocopy;
! size_t ncopied = 0;
! size_t size;
struct stat buf;
if (bfd_stat_arch_elt (abfd, &buf) != 0)
--- 990,998 ----
{
FILE *ostream;
char *cbuf = (char *) xmalloc (BUFSIZE);
! bfd_size_type nread, tocopy;
! bfd_size_type ncopied = 0;
! bfd_size_type size;
struct stat buf;
if (bfd_stat_arch_elt (abfd, &buf) != 0)
*************** extract_file (bfd *abfd)
*** 1027,1033 ****
if (tocopy > BUFSIZE)
tocopy = BUFSIZE;
! nread = bfd_bread (cbuf, (bfd_size_type) tocopy, abfd);
if (nread != tocopy)
/* xgettext:c-format */
fatal (_("%s is not a valid archive"),
--- 1027,1033 ----
if (tocopy > BUFSIZE)
tocopy = BUFSIZE;
! nread = bfd_bread (cbuf, tocopy, abfd);
if (nread != tocopy)
/* xgettext:c-format */
fatal (_("%s is not a valid archive"),
diff -cp ../binutils-2.22.52.0.4.orig/binutils/bucomm.c binutils/bucomm.c
*** ../binutils-2.22.52.0.4.orig/binutils/bucomm.c 2012-06-29 11:29:56.852149873 +0100
--- binutils/bucomm.c 2012-06-29 11:31:22.250147172 +0100
*************** print_arelt_descr (FILE *file, bfd *abfd
*** 427,442 ****
char timebuf[40];
time_t when = buf.st_mtime;
const char *ctime_result = (const char *) ctime (&when);
/* POSIX format: skip weekday and seconds from ctime output. */
sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20);
mode_string (buf.st_mode, modebuf);
modebuf[10] = '\0';
/* POSIX 1003.2/D11 says to skip first character (entry type). */
! fprintf (file, "%s %ld/%ld %6ld %s ", modebuf + 1,
(long) buf.st_uid, (long) buf.st_gid,
! (long) buf.st_size, timebuf);
}
}
--- 427,444 ----
char timebuf[40];
time_t when = buf.st_mtime;
const char *ctime_result = (const char *) ctime (&when);
+ bfd_size_type size;
/* POSIX format: skip weekday and seconds from ctime output. */
sprintf (timebuf, "%.12s %.4s", ctime_result + 4, ctime_result + 20);
mode_string (buf.st_mode, modebuf);
modebuf[10] = '\0';
+ size = buf.st_size;
/* POSIX 1003.2/D11 says to skip first character (entry type). */
! fprintf (file, "%s %ld/%ld %6" BFD_VMA_FMT "u %s ", modebuf + 1,
(long) buf.st_uid, (long) buf.st_gid,
! size, timebuf);
}
}
Common subdirectories: ../binutils-2.22.52.0.4.orig/binutils/doc and binutils/doc
Common subdirectories: ../binutils-2.22.52.0.4.orig/binutils/.libs and binutils/.libs
Common subdirectories: ../binutils-2.22.52.0.4.orig/binutils/po and binutils/po
Common subdirectories: ../binutils-2.22.52.0.4.orig/binutils/testsuite and binutils/testsuite
Common subdirectories: ../binutils-2.22.52.0.4.orig/binutils/tmpdir and binutils/tmpdir
*** ../binutils-2.22.52.0.4.orig/bfd/archive.c 2012-07-05 15:29:37.741339691 +0100
--- bfd/archive.c 2012-07-05 15:31:58.750343601 +0100
*************** bsd_write_armap (bfd *arch,
*** 2405,2410 ****
--- 2405,2413 ----
unsigned int count;
struct ar_hdr hdr;
long uid, gid;
+ file_ptr max_first_real = 1;
+
+ max_first_real <<= 31;
firstreal = mapsize + elength + sizeof (struct ar_hdr) + SARMAG;
*************** bsd_write_armap (bfd *arch,
*** 2463,2468 ****
--- 2466,2480 ----
while (current != map[count].u.abfd);
}
+ /* The archive file format only has 4 bytes to store the offset
+ of the member. Check to make sure that firstreal has not grown
+ too big. */
+ if (firstreal >= max_first_real)
+ {
+ bfd_set_error (bfd_error_file_truncated);
+ return FALSE;
+ }
+
last_elt = current;
H_PUT_32 (arch, map[count].namidx, buf);
H_PUT_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE);
*************** coff_write_armap (bfd *arch,
*** 2574,2580 ****
unsigned int ranlibsize = (symbol_count * 4) + 4;
unsigned int stringsize = stridx;
unsigned int mapsize = stringsize + ranlibsize;
! unsigned int archive_member_file_ptr;
bfd *current = arch->archive_head;
unsigned int count;
struct ar_hdr hdr;
--- 2586,2592 ----
unsigned int ranlibsize = (symbol_count * 4) + 4;
unsigned int stringsize = stridx;
unsigned int mapsize = stringsize + ranlibsize;
! file_ptr archive_member_file_ptr;
bfd *current = arch->archive_head;
unsigned int count;
struct ar_hdr hdr;
*************** coff_write_armap (bfd *arch,
*** 2625,2631 ****
while (count < symbol_count && map[count].u.abfd == current)
{
! if (!bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr))
return FALSE;
count++;
}
--- 2637,2651 ----
while (count < symbol_count && map[count].u.abfd == current)
{
! unsigned int offset = (unsigned int) archive_member_file_ptr;
!
! /* Catch an attempt to grow an archive past its 4Gb limit. */
! if (archive_member_file_ptr != (file_ptr) offset)
! {
! bfd_set_error (bfd_error_file_truncated);
! return FALSE;
! }
! if (!bfd_write_bigendian_4byte_int (arch, offset))
return FALSE;
count++;
}

View File

@ -1,20 +0,0 @@
*** ../binutils-2.22.52.0.4.orig/bfd/elf32-arm.c 2012-06-29 13:29:04.526090731 +0100
--- bfd/elf32-arm.c 2012-06-29 13:29:35.977091603 +0100
*************** elf32_arm_check_relocs (bfd *abfd, struc
*** 12629,12635 ****
/* If the symbol is a function that doesn't bind locally,
this relocation will need a PLT entry. */
! root_plt->refcount += 1;
if (!call_reloc_p)
arm_plt->noncall_refcount++;
--- 12629,12636 ----
/* If the symbol is a function that doesn't bind locally,
this relocation will need a PLT entry. */
! if (root_plt->refcount != -1)
! root_plt->refcount += 1;
if (!call_reloc_p)
arm_plt->noncall_refcount++;

View File

@ -1,119 +0,0 @@
2012-06-08 Jakub Jelinek <jakub@redhat.com>
* dwarf.c (read_and_display_attr_value): Handle
DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt.
(display_debug_macro): Handle DW_MACRO_GNU_define_indirect_alt,
DW_MACRO_GNU_undef_indirect_alt and
DW_MACRO_GNU_transparent_include_alt.
* dwarf2.def (DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt): New
forms.
* dwarf2.h (enum dwarf_macro_record_type): Add
DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt
and DW_MACRO_GNU_transparent_include_alt.
--- binutils/dwarf.c 17 May 2012 10:00:35 -0000 1.115
+++ binutils/dwarf.c 8 Jun 2012 19:07:33 -0000 1.116
@@ -1284,6 +1284,8 @@ read_and_display_attr_value (unsigned lo
case DW_FORM_strp:
case DW_FORM_sec_offset:
+ case DW_FORM_GNU_ref_alt:
+ case DW_FORM_GNU_strp_alt:
uvalue = byte_get (data, offset_size);
data += offset_size;
break;
@@ -1349,6 +1351,11 @@ read_and_display_attr_value (unsigned lo
printf (" <0x%s>", dwarf_vmatoa ("x",uvalue));
break;
+ case DW_FORM_GNU_ref_alt:
+ if (!do_loc)
+ printf (" <alt 0x%s>", dwarf_vmatoa ("x",uvalue));
+ break;
+
case DW_FORM_ref1:
case DW_FORM_ref2:
case DW_FORM_ref4:
@@ -1458,6 +1465,12 @@ read_and_display_attr_value (unsigned lo
}
break;
+ case DW_FORM_GNU_strp_alt:
+ if (!do_loc)
+ printf (_(" (alt indirect string, offset: 0x%s)"),
+ dwarf_vmatoa ("x", uvalue));
+ break;
+
case DW_FORM_indirect:
/* Handled above. */
break;
@@ -1796,7 +1809,8 @@ read_and_display_attr_value (unsigned lo
case DW_AT_import:
{
- if (form == DW_FORM_ref_sig8)
+ if (form == DW_FORM_ref_sig8
+ || form == DW_FORM_GNU_ref_alt)
break;
if (form == DW_FORM_ref1
@@ -3629,6 +3643,31 @@ display_debug_macro (struct dwarf_sectio
(unsigned long) offset);
break;
+ case DW_MACRO_GNU_define_indirect_alt:
+ lineno = read_leb128 (curr, &bytes_read, 0);
+ curr += bytes_read;
+ offset = byte_get (curr, offset_size);
+ curr += offset_size;
+ printf (_(" DW_MACRO_GNU_define_indirect_alt - lineno : %d macro offset : 0x%lx\n"),
+ lineno, (unsigned long) offset);
+ break;
+
+ case DW_MACRO_GNU_undef_indirect_alt:
+ lineno = read_leb128 (curr, &bytes_read, 0);
+ curr += bytes_read;
+ offset = byte_get (curr, offset_size);
+ curr += offset_size;
+ printf (_(" DW_MACRO_GNU_undef_indirect_alt - lineno : %d macro offset : 0x%lx\n"),
+ lineno, (unsigned long) offset);
+ break;
+
+ case DW_MACRO_GNU_transparent_include_alt:
+ offset = byte_get (curr, offset_size);
+ curr += offset_size;
+ printf (_(" DW_MACRO_GNU_transparent_include_alt - offset : 0x%lx\n"),
+ (unsigned long) offset);
+ break;
+
default:
if (extended_ops == NULL || extended_ops[op] == NULL)
{
--- include/dwarf2.def 22 May 2012 18:05:30 -0000 1.4
+++ include/dwarf2.def 8 Jun 2012 19:01:23 -0000 1.5
@@ -205,6 +205,10 @@ DW_FORM (DW_FORM_ref_sig8, 0x20)
/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
+/* Extensions for DWZ multifile.
+ See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
+DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
+DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
DW_END_FORM
DW_FIRST_AT (DW_AT_sibling, 0x01)
--- include/dwarf2.h 27 Apr 2012 18:03:18 -0000 1.29
+++ include/dwarf2.h 8 Jun 2012 19:01:23 -0000 1.30
@@ -333,6 +333,11 @@ enum dwarf_macro_record_type
DW_MACRO_GNU_define_indirect = 5,
DW_MACRO_GNU_undef_indirect = 6,
DW_MACRO_GNU_transparent_include = 7,
+ /* Extensions for DWZ multifile.
+ See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
+ DW_MACRO_GNU_define_indirect_alt = 8,
+ DW_MACRO_GNU_undef_indirect_alt = 9,
+ DW_MACRO_GNU_transparent_include_alt = 10,
DW_MACRO_GNU_lo_user = 0xe0,
DW_MACRO_GNU_hi_user = 0xff
};

View File

@ -1,24 +0,0 @@
*** ../binutils-2.22.52.0.4.orig/bfd/elf64-s390.c 2012-07-17 14:23:44.271929502 +0100
--- bfd/elf64-s390.c 2012-07-17 14:29:27.037918661 +0100
*************** const struct elf_size_info s390_elf64_si
*** 3391,3394 ****
--- 3391,3409 ----
#define bfd_elf64_mkobject elf_s390_mkobject
#define elf_backend_object_p elf_s390_object_p
+ /* Enable ELF64 archive functions. */
+ #define bfd_elf64_archive_functions
+ extern bfd_boolean bfd_elf64_archive_slurp_armap (bfd *);
+ extern bfd_boolean bfd_elf64_archive_write_armap (bfd *, unsigned int, struct orl *, unsigned int, int);
+
+ #define bfd_elf64_archive_slurp_extended_name_table _bfd_archive_coff_slurp_extended_name_table
+ #define bfd_elf64_archive_construct_extended_name_table _bfd_archive_coff_construct_extended_name_table
+ #define bfd_elf64_archive_truncate_arname _bfd_archive_coff_truncate_arname
+ #define bfd_elf64_archive_read_ar_hdr _bfd_archive_coff_read_ar_hdr
+ #define bfd_elf64_archive_write_ar_hdr _bfd_archive_coff_write_ar_hdr
+ #define bfd_elf64_archive_openr_next_archived_file _bfd_archive_coff_openr_next_archived_file
+ #define bfd_elf64_archive_get_elt_at_index _bfd_archive_coff_get_elt_at_index
+ #define bfd_elf64_archive_generic_stat_arch_elt _bfd_archive_coff_generic_stat_arch_elt
+ #define bfd_elf64_archive_update_armap_timestamp _bfd_archive_coff_update_armap_timestamp
+
#include "elf64-target.h"

View File

@ -1,35 +0,0 @@
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 698702b..1d429cf 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -2866,8 +2866,8 @@ the Info entries for @file{binutils}.
@smallexample
@c man begin SYNOPSIS cxxfilt
-c++filt [@option{-_}|@option{--strip-underscores}]
- [@option{-n}|@option{--no-strip-underscores}]
+c++filt [@option{-_}|@option{--strip-underscore}]
+ [@option{-n}|@option{--no-strip-underscore}]
[@option{-p}|@option{--no-params}]
[@option{-t}|@option{--types}]
[@option{-i}|@option{--no-verbose}]
diff -rup a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
--- a/binutils/doc/binutils.texi 2012-03-14 10:19:44.256863358 -0600
+++ b/binutils/doc/binutils.texi 2012-03-14 10:20:15.077695863 -0600
@@ -2946,14 +2946,14 @@ characters trailing after a mangled name
@table @env
@item -_
-@itemx --strip-underscores
+@itemx --strip-underscore
On some systems, both the C and C++ compilers put an underscore in front
of every name. For example, the C name @code{foo} gets the low-level
name @code{_foo}. This option removes the initial underscore. Whether
@command{c++filt} removes the underscore by default is target dependent.
@item -n
-@itemx --no-strip-underscores
+@itemx --no-strip-underscore
Do not remove the initial underscore.
@item -p