[meta-xilinx] [PATCH 2/5] binutils: Drop MicroBlaze RELA patch, fixed in 2.28

Nathan Rossi nathan at nathanrossi.com
Fri Mar 24 04:18:22 PDT 2017


The MicroBlaze RELA issue is resolved in binutils 2.28, the patch is no
longer required, drop the patch from SRC_URI and delete the patch.

Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
---
 recipes-microblaze/binutils/binutils%.bbappend     |   1 -
 ...f32-microblaze.c-Fix-regression-with-RELA.patch | 103 ---------------------
 2 files changed, 104 deletions(-)
 delete mode 100644 recipes-microblaze/binutils/files/bfd-elf32-microblaze.c-Fix-regression-with-RELA.patch

diff --git a/recipes-microblaze/binutils/binutils%.bbappend b/recipes-microblaze/binutils/binutils%.bbappend
index 0f3b0ef753..2a53ab746e 100644
--- a/recipes-microblaze/binutils/binutils%.bbappend
+++ b/recipes-microblaze/binutils/binutils%.bbappend
@@ -3,6 +3,5 @@
 FILESEXTRAPATHS_append := "${THISDIR}/files:"
 SRC_URI_append_microblaze = " \
 		file://upstream-change-to-garbage-collection-s.patch \
-		file://bfd-elf32-microblaze.c-Fix-regression-with-RELA.patch \
 		"
 
diff --git a/recipes-microblaze/binutils/files/bfd-elf32-microblaze.c-Fix-regression-with-RELA.patch b/recipes-microblaze/binutils/files/bfd-elf32-microblaze.c-Fix-regression-with-RELA.patch
deleted file mode 100644
index 3f572a2001..0000000000
--- a/recipes-microblaze/binutils/files/bfd-elf32-microblaze.c-Fix-regression-with-RELA.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 86090b41b2fd86c5b5391fac9f5785e79fe177c2 Mon Sep 17 00:00:00 2001
-From: Nathan Rossi <nathan at nathanrossi.com>
-Date: Sat, 24 Sep 2016 22:07:42 +1000
-Subject: [PATCH] bfd/elf32-microblaze.c: Fix regression with RELA* values
- being wrong
-
-Commit 4ade44b727ee77adaa9c22719935d012e253a5e6 introduced a change
-to microblaze where the section was accessed from dynamic sections
-instead of from the output bfd. This meant that for some shared objects
-(mainly executables) the .rela.dyn section was not available, causing
-the DT_RELA* table entries to be set to 0.
-
-This change modifies how microblaze handles the setting of the various
-dynamic table values. Specifically it lets the generic final function
-handle setting RELA* values and modifies the RELASZ value of the dynamic
-table by subtracting the size of other DT_RELA type sections (this is
-how other targets handle the RELASZ value needing to only be the size of
-the .rela.dyn section). This resolves the regression mentioned above.
-
-Additionally this patch changes code for how dynamic table entries are
-modified for microblaze specific requirements. This makes the microblaze
-handling match how other targets modify the values.
-
-Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
-Upstream-Status: Pending
----
- bfd/elf32-microblaze.c | 52 +++++++++++++++++++++++++++++---------------------
- 1 file changed, 30 insertions(+), 22 deletions(-)
-
-diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
-index 5496d1613a..34e8ae4261 100644
---- a/bfd/elf32-microblaze.c
-+++ b/bfd/elf32-microblaze.c
-@@ -3381,36 +3381,44 @@ microblaze_elf_finish_dynamic_sections (bfd *output_bfd,
-       for (; dyncon < dynconend; dyncon++)
-         {
-           Elf_Internal_Dyn dyn;
--          const char *name;
--          bfd_boolean size;
-+          asection *s;
- 
-           bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn);
- 
-           switch (dyn.d_tag)
-             {
--            case DT_PLTGOT:   name = ".got.plt"; size = FALSE; break;
--            case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE; break;
--            case DT_JMPREL:   name = ".rela.plt"; size = FALSE; break;
--            case DT_RELA:     name = ".rela.dyn"; size = FALSE; break;
--            case DT_RELASZ:   name = ".rela.dyn"; size = TRUE; break;
--            default:	  name = NULL; size = FALSE; break;
--            }
-+            default:
-+              break;
- 
--          if (name != NULL)
--            {
--              asection *s;
-+            case DT_PLTGOT:
-+              s = bfd_get_linker_section (dynobj, ".got.plt");
-+              if (s != NULL)
-+                dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-+              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-+              break;
- 
--              s = bfd_get_linker_section (dynobj, name);
--              if (s == NULL)
--                dyn.d_un.d_val = 0;
--              else
--                {
--                  if (! size)
--                    dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
--                  else
--                    dyn.d_un.d_val = s->size;
--                }
-+            case DT_PLTRELSZ:
-+              s = bfd_get_linker_section (dynobj, ".rela.plt");
-+              if (s != NULL)
-+                dyn.d_un.d_val = s->size;
-+              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-+              break;
-+
-+            case DT_JMPREL:
-+              s = bfd_get_linker_section (dynobj, ".rela.plt");
-+              if (s != NULL)
-+                dyn.d_un.d_ptr = s->output_section->vma + s->output_offset;
-+              bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-+              break;
-+
-+            case DT_RELASZ:
-+              /* The PLT relocs are not counted in the RELASZ value of the
-+               * .dynamic table. */
-+              s = bfd_get_linker_section (dynobj, ".rela.plt");
-+              if (s != NULL)
-+                dyn.d_un.d_val -= s->size;
-               bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon);
-+              break;
-             }
-         }
- 
--- 
-2.9.3
-
-- 
2.11.0




More information about the meta-xilinx mailing list