From c527fd1f14c27855a37f2e8ac5346ce8d940ced2 Mon Sep 17 00:00:00 2001 From: Tudor Florea Date: Thu, 16 Oct 2014 03:05:19 +0200 Subject: initial commit for Enea Linux 4.0-140929 Migrated from the internal git server on the daisy-enea-point-release branch Signed-off-by: Tudor Florea --- .../binutils/binutils/fix-pr16428a.patch | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch (limited to 'meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch') diff --git a/meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch b/meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch new file mode 100644 index 0000000000..5b3edfbd03 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils/fix-pr16428a.patch @@ -0,0 +1,75 @@ +From d1ec1e40b5b457c92aaa23f7af40e026e4596a99 Mon Sep 17 00:00:00 2001 +From: H.J. Lu +Date: Tue, 14 Jan 2014 10:48:39 -0800 +Subject: [PATCH 1/1] Don't update reloc count if there are any non pc-relative relocs + + PR ld/16428 + * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't update reloc + count if there are any non pc-relative relocs. + * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. +--- + bfd/ChangeLog | 7 +++++++ + bfd/elf32-i386.c | 9 +++++++-- + bfd/elf64-x86-64.c | 9 +++++++-- + 3 files changed, 21 insertions(+), 4 deletions(-) + +Upstream-Status: Backport + +#diff --git a/bfd/ChangeLog b/bfd/ChangeLog +#index a8f1f94..7a49fd1 100644 +#--- a/bfd/ChangeLog +#+++ b/bfd/ChangeLog +#@@ -1,3 +1,10 @@ +#+2014-01-14 H.J. Lu +#+ +#+ PR ld/16428 +#+ * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't update reloc +#+ count if there are any non pc-relative relocs. +#+ * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise. +#+ +# 2014-01-14 Michael Hudson-Doyle +# Kugan Vivekanandarajah +# +diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c +index 4d391e1..d7f59e5 100644 +--- a/bfd/elf32-i386.c ++++ b/bfd/elf32-i386.c +@@ -2368,8 +2368,13 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) + { +- p->count -= p->pc_count; +- p->pc_count = 0; ++ /* Don't update reloc count if there are any non ++ pc-relative relocs. */ ++ if (!h->pointer_equality_needed) ++ { ++ p->count -= p->pc_count; ++ p->pc_count = 0; ++ } + if (p->count == 0) + *pp = p->next; + else +diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c +index edee8ec..999011b 100644 +--- a/bfd/elf64-x86-64.c ++++ b/bfd/elf64-x86-64.c +@@ -2463,8 +2463,13 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf) + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; ) + { +- p->count -= p->pc_count; +- p->pc_count = 0; ++ /* Don't update reloc count if there are any non ++ pc-relative relocs. */ ++ if (!h->pointer_equality_needed) ++ { ++ p->count -= p->pc_count; ++ p->pc_count = 0; ++ } + if (p->count == 0) + *pp = p->next; + else +-- +1.7.1 + -- cgit v1.2.3-54-g00ecf