From ba15b343fb47cf4d1f20c03de8842c5d09abfefe Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Fri, 22 Jun 2007 06:09:07 +0000 Subject: [PATCH] - obsolete Changed files: binutils-pr4497.patch -> 1.2 --- binutils-pr4497.patch | 125 ------------------------------------------ 1 file changed, 125 deletions(-) delete mode 100644 binutils-pr4497.patch diff --git a/binutils-pr4497.patch b/binutils-pr4497.patch deleted file mode 100644 index f0fe6c3..0000000 --- a/binutils-pr4497.patch +++ /dev/null @@ -1,125 +0,0 @@ -=================================================================== -RCS file: /cvs/src/src/bfd/elf-eh-frame.c,v -retrieving revision 1.57 -retrieving revision 1.58 -diff -u -r1.57 -r1.58 ---- src/bfd/elf-eh-frame.c 2007/05/10 15:08:02 1.57 -+++ src/bfd/elf-eh-frame.c 2007/05/12 14:27:34 1.58 -@@ -32,12 +32,16 @@ - unsigned int length; - unsigned int hash; - unsigned char version; -+ unsigned char local_personality; - char augmentation[20]; - bfd_vma code_align; - bfd_signed_vma data_align; - bfd_vma ra_column; - bfd_vma augmentation_size; -- bfd_vma personality; -+ union { -+ struct elf_link_hash_entry *h; -+ bfd_vma val; -+ } personality; - asection *output_sec; - struct eh_cie_fde *cie_inf; - unsigned char per_encoding; -@@ -216,13 +220,15 @@ - if (c1->hash == c2->hash - && c1->length == c2->length - && c1->version == c2->version -+ && c1->local_personality == c2->local_personality - && strcmp (c1->augmentation, c2->augmentation) == 0 - && strcmp (c1->augmentation, "eh") != 0 - && c1->code_align == c2->code_align - && c1->data_align == c2->data_align - && c1->ra_column == c2->ra_column - && c1->augmentation_size == c2->augmentation_size -- && c1->personality == c2->personality -+ && memcmp (&c1->personality, &c2->personality, -+ sizeof (c1->personality)) == 0 - && c1->output_sec == c2->output_sec - && c1->per_encoding == c2->per_encoding - && c1->lsda_encoding == c2->lsda_encoding -@@ -670,12 +676,10 @@ - REQUIRE (skip_bytes (&buf, end, length)); - } - ENSURE_NO_RELOCS (buf); -- /* Ensure we have a reloc here, against -- a global symbol. */ -+ /* Ensure we have a reloc here. */ - if (GET_RELOC (buf) != NULL) - { - unsigned long r_symndx; -- asection *sym_sec = NULL; - - #ifdef BFD64 - if (ptr_size == 8) -@@ -683,7 +687,9 @@ - else - #endif - r_symndx = ELF32_R_SYM (cookie->rel->r_info); -- if (r_symndx >= cookie->locsymcount) -+ if (r_symndx >= cookie->locsymcount -+ || ELF_ST_BIND (cookie->locsyms[r_symndx] -+ .st_info) != STB_LOCAL) - { - struct elf_link_hash_entry *h; - -@@ -695,33 +701,29 @@ - h = (struct elf_link_hash_entry *) - h->root.u.i.link; - -- if (h->root.type == bfd_link_hash_defined -- || h->root.type == bfd_link_hash_defweak) -- { -- cie->personality = h->root.u.def.value; -- sym_sec = h->root.u.def.section; -- } -+ cie->personality.h = h; - } - else - { -- Elf_Internal_Shdr *symtab_hdr; - Elf_Internal_Sym *sym; -+ asection *sym_sec; -+ bfd_vma val; - -- symtab_hdr = &elf_tdata (abfd)->symtab_hdr; -- sym = bfd_elf_get_elf_syms (abfd, symtab_hdr, -- 1, r_symndx, -- NULL, NULL, NULL); -- if (sym != NULL) -+ sym = &cookie->locsyms[r_symndx]; -+ sym_sec = (bfd_section_from_elf_index -+ (abfd, sym->st_shndx)); -+ if (sym_sec->kept_section != NULL) -+ sym_sec = sym_sec->kept_section; -+ if (sym_sec != NULL -+ && sym_sec->output_section != NULL) - { -- cie->personality = sym->st_value; -- sym_sec = (bfd_section_from_elf_index -- (abfd, sym->st_shndx)); -- free (sym); -+ val = (sym->st_value -+ + sym_sec->output_offset -+ + sym_sec->output_section->vma); -+ cie->personality.val = val; -+ cie->local_personality = 1; - } - } -- if (sym_sec != NULL) -- cie->personality += (sym_sec->output_section->vma -- + sym_sec->output_offset); - - /* Cope with MIPS-style composite relocations. */ - do -@@ -729,7 +731,7 @@ - while (GET_RELOC (buf) != NULL); - } - REQUIRE (skip_bytes (&buf, end, per_width)); -- REQUIRE (cie->personality); -+ REQUIRE (cie->local_personality || cie->personality.h); - } - break; - default: -- 2.44.0