diff options
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/0028-Backport-from-mainline.patch')
-rw-r--r-- | meta/recipes-devtools/binutils/binutils/0028-Backport-from-mainline.patch | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/0028-Backport-from-mainline.patch b/meta/recipes-devtools/binutils/binutils/0028-Backport-from-mainline.patch deleted file mode 100644 index 2b86b6bf3b..0000000000 --- a/meta/recipes-devtools/binutils/binutils/0028-Backport-from-mainline.patch +++ /dev/null @@ -1,139 +0,0 @@ -Upstream-Status: Backport - -From fbd07e4e15de7a81a2de7f9583fa3240302e2867 Mon Sep 17 00:00:00 2001 -From: David Daney <ddaney@avtrex.com> -Date: Sun, 11 Dec 2011 02:28:10 +0000 -Subject: [PATCH 028/262] Backport from mainline: - - 2011-12-10 David Daney <david.daney@cavium.com> - - * elfxx-mips.c (mips_elf_link_hash_table.rld_value): Remove. - (mips_elf_link_hash_table.rld_symbol): New field; - (MIPS_ELF_RLD_MAP_SIZE): New macro. - (_bfd_mips_elf_add_symbol_hook): Remember __rld_obj_head symbol - in rld_symbol. - (_bfd_mips_elf_create_dynamic_sections): Remember __rld_map symbol - in rld_symbol. - (_bfd_mips_elf_size_dynamic_sections): Set correct size for .rld_map. - (_bfd_mips_elf_finish_dynamic_symbol): Remove .rld_map handling. - (_bfd_mips_elf_finish_dynamic_sections): Use rld_symbol to - calculate DT_MIPS_RLD_MAP value. - (_bfd_mips_elf_link_hash_table_create): Initialize rld_symbol, - quit initializing rld_value. - -diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c -index 33a454d..6b908ad 100644 ---- a/bfd/elfxx-mips.c -+++ b/bfd/elfxx-mips.c -@@ -436,8 +436,8 @@ struct mips_elf_link_hash_table - entry is set to the address of __rld_obj_head as in IRIX5. */ - bfd_boolean use_rld_obj_head; - -- /* This is the value of the __rld_map or __rld_obj_head symbol. */ -- bfd_vma rld_value; -+ /* The __rld_map or __rld_obj_head symbol. */ -+ struct elf_link_hash_entry *rld_symbol; - - /* This is set if we see any mips16 stub sections. */ - bfd_boolean mips16_stubs_seen; -@@ -768,6 +768,10 @@ static bfd *reldyn_sorting_bfd; - #define MIPS_ELF_GOT_SIZE(abfd) \ - (get_elf_backend_data (abfd)->s->arch_size / 8) - -+/* The size of the .rld_map section. */ -+#define MIPS_ELF_RLD_MAP_SIZE(abfd) \ -+ (get_elf_backend_data (abfd)->s->arch_size / 8) -+ - /* The size of a symbol-table entry. */ - #define MIPS_ELF_SYM_SIZE(abfd) \ - (get_elf_backend_data (abfd)->s->sizeof_sym) -@@ -7081,6 +7085,7 @@ _bfd_mips_elf_add_symbol_hook (bfd *abfd, struct bfd_link_info *info, - return FALSE; - - mips_elf_hash_table (info)->use_rld_obj_head = TRUE; -+ mips_elf_hash_table (info)->rld_symbol = h; - } - - /* If this is a mips16 text symbol, add 1 to the value to make it -@@ -7266,6 +7271,7 @@ _bfd_mips_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info) - - if (! bfd_elf_link_record_dynamic_symbol (info, h)) - return FALSE; -+ mips_elf_hash_table (info)->rld_symbol = h; - } - } - -@@ -9027,7 +9033,7 @@ _bfd_mips_elf_size_dynamic_sections (bfd *output_bfd, - { - /* We add a room for __rld_map. It will be filled in by the - rtld to contain a pointer to the _r_debug structure. */ -- s->size += 4; -+ s->size += MIPS_ELF_RLD_MAP_SIZE (output_bfd); - } - else if (SGI_COMPAT (output_bfd) - && CONST_STRNEQ (name, ".compact_rel")) -@@ -10030,31 +10036,6 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd *output_bfd, - if (IRIX_COMPAT (output_bfd) == ict_irix6) - mips_elf_irix6_finish_dynamic_symbol (output_bfd, name, sym); - -- if (! info->shared) -- { -- if (! mips_elf_hash_table (info)->use_rld_obj_head -- && (strcmp (name, "__rld_map") == 0 -- || strcmp (name, "__RLD_MAP") == 0)) -- { -- asection *s = bfd_get_section_by_name (dynobj, ".rld_map"); -- BFD_ASSERT (s != NULL); -- sym->st_value = s->output_section->vma + s->output_offset; -- bfd_put_32 (output_bfd, 0, s->contents); -- if (mips_elf_hash_table (info)->rld_value == 0) -- mips_elf_hash_table (info)->rld_value = sym->st_value; -- } -- else if (mips_elf_hash_table (info)->use_rld_obj_head -- && strcmp (name, "__rld_obj_head") == 0) -- { -- /* IRIX6 does not use a .rld_map section. */ -- if (IRIX_COMPAT (output_bfd) == ict_irix5 -- || IRIX_COMPAT (output_bfd) == ict_none) -- BFD_ASSERT (bfd_get_section_by_name (dynobj, ".rld_map") -- != NULL); -- mips_elf_hash_table (info)->rld_value = sym->st_value; -- } -- } -- - /* Keep dynamic MIPS16 symbols odd. This allows the dynamic linker to - treat MIPS16 symbols like any other. */ - if (ELF_ST_IS_MIPS16 (sym->st_other)) -@@ -10517,7 +10498,19 @@ _bfd_mips_elf_finish_dynamic_sections (bfd *output_bfd, - break; - - case DT_MIPS_RLD_MAP: -- dyn.d_un.d_ptr = mips_elf_hash_table (info)->rld_value; -+ { -+ struct elf_link_hash_entry *h; -+ h = mips_elf_hash_table (info)->rld_symbol; -+ if (!h) -+ { -+ dyn_to_skip = MIPS_ELF_DYN_SIZE (dynobj); -+ swap_out_p = FALSE; -+ break; -+ } -+ s = h->root.u.def.section; -+ dyn.d_un.d_ptr = (s->output_section->vma + s->output_offset -+ + h->root.u.def.value); -+ } - break; - - case DT_MIPS_OPTIONS: -@@ -12794,7 +12787,7 @@ _bfd_mips_elf_link_hash_table_create (bfd *abfd) - ret->procedure_count = 0; - ret->compact_rel_size = 0; - ret->use_rld_obj_head = FALSE; -- ret->rld_value = 0; -+ ret->rld_symbol = NULL; - ret->mips16_stubs_seen = FALSE; - ret->use_plts_and_copy_relocs = FALSE; - ret->is_vxworks = FALSE; --- -1.7.9.5 - |