Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: bfd/elf64-sh64.c

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « bfd/elf64-s390.c ('k') | bfd/elf64-sparc.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
None
OLDNEW
1 /* SuperH SH64-specific support for 64-bit ELF 1 /* SuperH SH64-specific support for 64-bit ELF
2 Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2 Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
3 2010, 2011, 2012 Free Software Foundation, Inc. 3 2010, 2011, 2012 Free Software Foundation, Inc.
4 4
5 This file is part of BFD, the Binary File Descriptor library. 5 This file is part of BFD, the Binary File Descriptor library.
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or 9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
(...skipping 2406 matching lines...) Expand 10 before | Expand all | Expand 10 after
2417 2417
2418 r_symndx = ELF64_R_SYM (rel->r_info); 2418 r_symndx = ELF64_R_SYM (rel->r_info);
2419 if (r_symndx < symtab_hdr->sh_info) 2419 if (r_symndx < symtab_hdr->sh_info)
2420 h = NULL; 2420 h = NULL;
2421 else 2421 else
2422 { 2422 {
2423 h = sym_hashes[r_symndx - symtab_hdr->sh_info]; 2423 h = sym_hashes[r_symndx - symtab_hdr->sh_info];
2424 while (h->root.type == bfd_link_hash_indirect 2424 while (h->root.type == bfd_link_hash_indirect
2425 || h->root.type == bfd_link_hash_warning) 2425 || h->root.type == bfd_link_hash_warning)
2426 h = (struct elf_link_hash_entry *) h->root.u.i.link; 2426 h = (struct elf_link_hash_entry *) h->root.u.i.link;
2427
2428 /* PR15323, ref flags aren't set for references in the same
2429 object. */
2430 h->root.non_ir_ref = 1;
2427 } 2431 }
2428 2432
2429 /* Some relocs require a global offset table. */ 2433 /* Some relocs require a global offset table. */
2430 if (dynobj == NULL) 2434 if (dynobj == NULL)
2431 { 2435 {
2432 switch (ELF64_R_TYPE (rel->r_info)) 2436 switch (ELF64_R_TYPE (rel->r_info))
2433 { 2437 {
2434 case R_SH_GOTPLT_LOW16: 2438 case R_SH_GOTPLT_LOW16:
2435 case R_SH_GOTPLT_MEDLOW16: 2439 case R_SH_GOTPLT_MEDLOW16:
2436 case R_SH_GOTPLT_MEDHI16: 2440 case R_SH_GOTPLT_MEDHI16:
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after
3062 return (struct bfd_hash_entry *) ret; 3066 return (struct bfd_hash_entry *) ret;
3063 } 3067 }
3064 3068
3065 /* Create an sh64 ELF linker hash table. */ 3069 /* Create an sh64 ELF linker hash table. */
3066 3070
3067 static struct bfd_link_hash_table * 3071 static struct bfd_link_hash_table *
3068 sh64_elf64_link_hash_table_create (bfd *abfd) 3072 sh64_elf64_link_hash_table_create (bfd *abfd)
3069 { 3073 {
3070 struct elf_link_hash_table *ret; 3074 struct elf_link_hash_table *ret;
3071 3075
3072 ret = (struct elf_link_hash_table *) bfd_malloc (sizeof (* ret)); 3076 ret = (struct elf_link_hash_table *) bfd_zmalloc (sizeof (* ret));
3073 if (ret == (struct elf_link_hash_table *) NULL) 3077 if (ret == (struct elf_link_hash_table *) NULL)
3074 return NULL; 3078 return NULL;
3075 3079
3076 if (!_bfd_elf_link_hash_table_init (ret, abfd, 3080 if (!_bfd_elf_link_hash_table_init (ret, abfd,
3077 sh64_elf64_link_hash_newfunc, 3081 sh64_elf64_link_hash_newfunc,
3078 sizeof (struct elf_sh64_link_hash_entry), 3082 sizeof (struct elf_sh64_link_hash_entry),
3079 GENERIC_ELF_DATA)) 3083 GENERIC_ELF_DATA))
3080 { 3084 {
3081 free (ret); 3085 free (ret);
3082 return NULL; 3086 return NULL;
(...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after
3759 s = bfd_get_linker_section (dynobj, ".rela.bss"); 3763 s = bfd_get_linker_section (dynobj, ".rela.bss");
3760 BFD_ASSERT (s != NULL); 3764 BFD_ASSERT (s != NULL);
3761 3765
3762 rel.r_offset = (h->root.u.def.value 3766 rel.r_offset = (h->root.u.def.value
3763 + h->root.u.def.section->output_section->vma 3767 + h->root.u.def.section->output_section->vma
3764 + h->root.u.def.section->output_offset); 3768 + h->root.u.def.section->output_offset);
3765 rel.r_info = ELF64_R_INFO (h->dynindx, R_SH_COPY64); 3769 rel.r_info = ELF64_R_INFO (h->dynindx, R_SH_COPY64);
3766 rel.r_addend = 0; 3770 rel.r_addend = 0;
3767 loc = s->contents; 3771 loc = s->contents;
3768 loc += s->reloc_count++ * sizeof (Elf64_External_Rela); 3772 loc += s->reloc_count++ * sizeof (Elf64_External_Rela);

error: old chunk mismatch

OLDNEW
« no previous file with comments | « bfd/elf64-s390.c ('k') | bfd/elf64-sparc.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698