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

Side by Side Diff: bfd/elf32-cris.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 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/elf32-cr16c.c ('k') | bfd/elf32-crx.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 /* CRIS-specific support for 32-bit ELF. 1 /* CRIS-specific support for 32-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 Free Software Foundation, Inc. 3 2010, 2011, 2012 Free Software Foundation, Inc.
4 Contributed by Axis Communications AB. 4 Contributed by Axis Communications AB.
5 Written by Hans-Peter Nilsson, based on elf32-fr30.c 5 Written by Hans-Peter Nilsson, based on elf32-fr30.c
6 PIC and shlib bits based primarily on elf32-m68k.c and elf32-i386.c. 6 PIC and shlib bits based primarily on elf32-m68k.c and elf32-i386.c.
7 7
8 This file is part of BFD, the Binary File Descriptor library. 8 This file is part of BFD, the Binary File Descriptor library.
9 9
10 This program is free software; you can redistribute it and/or modify 10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by 11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3 of the License, or 12 the Free Software Foundation; either version 3 of the License, or
13 (at your option) any later version. 13 (at your option) any later version.
14 14
15 This program is distributed in the hope that it will be useful, 15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details. 18 GNU General Public License for more details.
19 19
20 You should have received a copy of the GNU General Public License 20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software 21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 22 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
23 MA 02110-1301, USA. */ 23 MA 02110-1301, USA. */
24 24
25 #include "sysdep.h" 25 #include "sysdep.h"
26 #include "bfd.h" 26 #include "bfd.h"
27 #include "libbfd.h" 27 #include "libbfd.h"
28 #include "elf-bfd.h" 28 #include "elf-bfd.h"
29 #include "elf/cris.h" 29 #include "elf/cris.h"
30 #include <limits.h> 30 #include <limits.h>
31 31
32 bfd_reloc_status_type
33 cris_elf_pcrel_reloc (bfd *, arelent *, asymbol *, void *,
34 asection *, bfd *, char **);
35 static bfd_boolean
36 cris_elf_set_mach_from_flags (bfd *, unsigned long);
37
32 /* Forward declarations. */ 38 /* Forward declarations. */
33 static reloc_howto_type * cris_reloc_type_lookup
34 PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
35
36 static void cris_info_to_howto_rela
37 PARAMS ((bfd *, arelent *, Elf_Internal_Rela *));
38
39 static bfd_reloc_status_type cris_elf_pcrel_reloc
40 PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
41
42 static bfd_boolean cris_elf_grok_prstatus
43 PARAMS ((bfd *abfd, Elf_Internal_Note *note));
44
45 static bfd_boolean cris_elf_grok_psinfo
46 PARAMS ((bfd *abfd, Elf_Internal_Note *note));
47
48 static bfd_boolean cris_elf_relocate_section
49 PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
50 Elf_Internal_Rela *, Elf_Internal_Sym *, asection **));
51
52 static bfd_reloc_status_type cris_final_link_relocate
53 PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *,
54 Elf_Internal_Rela *, bfd_vma));
55
56 static bfd_boolean cris_elf_object_p PARAMS ((bfd *));
57
58 static void cris_elf_final_write_processing PARAMS ((bfd *, bfd_boolean));
59
60 static bfd_boolean cris_elf_set_mach_from_flags
61 PARAMS ((bfd *, unsigned long int));
62
63 static bfd_boolean cris_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
64
65 static bfd_boolean cris_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
66 static bfd_boolean cris_elf_copy_private_bfd_data PARAMS ((bfd *, bfd *));
67
68 struct elf_cris_link_hash_entry;
69 static bfd_boolean elf_cris_discard_excess_dso_dynamics
70 PARAMS ((struct elf_cris_link_hash_entry *, PTR));
71 static bfd_boolean elf_cris_discard_excess_program_dynamics
72 PARAMS ((struct elf_cris_link_hash_entry *, PTR));
73 static bfd_boolean elf_cris_adjust_gotplt_to_got
74 PARAMS ((struct elf_cris_link_hash_entry *, PTR));
75 static bfd_boolean elf_cris_try_fold_plt_to_got
76 PARAMS ((struct elf_cris_link_hash_entry *, PTR));
77 static struct bfd_hash_entry *elf_cris_link_hash_newfunc
78 PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
79 static struct bfd_link_hash_table *elf_cris_link_hash_table_create
80 PARAMS ((bfd *));
81 static bfd_boolean elf_cris_adjust_dynamic_symbol
82 PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
83 static bfd_boolean cris_elf_check_relocs
84 PARAMS ((bfd *, struct bfd_link_info *, asection *,
85 const Elf_Internal_Rela *));
86
87 static bfd_boolean elf_cris_size_dynamic_sections
88 PARAMS ((bfd *, struct bfd_link_info *));
89 static bfd_boolean elf_cris_finish_dynamic_symbol
90 PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
91 Elf_Internal_Sym *));
92 static bfd_boolean elf_cris_finish_dynamic_sections
93 PARAMS ((bfd *, struct bfd_link_info *));
94 static void elf_cris_hide_symbol
95 PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
96 static enum elf_reloc_type_class elf_cris_reloc_type_class
97 PARAMS ((const Elf_Internal_Rela *));
98
99 static reloc_howto_type cris_elf_howto_table [] = 39 static reloc_howto_type cris_elf_howto_table [] =
100 { 40 {
101 /* This reloc does nothing. */ 41 /* This reloc does nothing. */
102 HOWTO (R_CRIS_NONE, /* type */ 42 HOWTO (R_CRIS_NONE, /* type */
103 0, /* rightshift */ 43 0, /* rightshift */
104 2, /* size (0 = byte, 1 = short, 2 = long) */ 44 2, /* size (0 = byte, 1 = short, 2 = long) */
105 32, /* bitsize */ 45 32, /* bitsize */
106 FALSE, /* pc_relative */ 46 FALSE, /* pc_relative */
107 0, /* bitpos */ 47 0, /* bitpos */
108 complain_overflow_bitfield, /* complain_on_overflow */ 48 complain_overflow_bitfield, /* complain_on_overflow */
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 { BFD_RELOC_CRIS_16_GOT_GD, R_CRIS_16_GOT_GD }, 415 { BFD_RELOC_CRIS_16_GOT_GD, R_CRIS_16_GOT_GD },
476 { BFD_RELOC_CRIS_32_GD, R_CRIS_32_GD }, 416 { BFD_RELOC_CRIS_32_GD, R_CRIS_32_GD },
477 { BFD_RELOC_CRIS_DTP, R_CRIS_DTP }, 417 { BFD_RELOC_CRIS_DTP, R_CRIS_DTP },
478 { BFD_RELOC_CRIS_32_DTPREL, R_CRIS_32_DTPREL }, 418 { BFD_RELOC_CRIS_32_DTPREL, R_CRIS_32_DTPREL },
479 { BFD_RELOC_CRIS_16_DTPREL, R_CRIS_16_DTPREL }, 419 { BFD_RELOC_CRIS_16_DTPREL, R_CRIS_16_DTPREL },
480 { BFD_RELOC_CRIS_32_GOT_TPREL, R_CRIS_32_GOT_TPREL }, 420 { BFD_RELOC_CRIS_32_GOT_TPREL, R_CRIS_32_GOT_TPREL },
481 { BFD_RELOC_CRIS_16_GOT_TPREL, R_CRIS_16_GOT_TPREL }, 421 { BFD_RELOC_CRIS_16_GOT_TPREL, R_CRIS_16_GOT_TPREL },
482 { BFD_RELOC_CRIS_32_TPREL, R_CRIS_32_TPREL }, 422 { BFD_RELOC_CRIS_32_TPREL, R_CRIS_32_TPREL },
483 { BFD_RELOC_CRIS_16_TPREL, R_CRIS_16_TPREL }, 423 { BFD_RELOC_CRIS_16_TPREL, R_CRIS_16_TPREL },
484 { BFD_RELOC_CRIS_DTPMOD, R_CRIS_DTPMOD }, 424 { BFD_RELOC_CRIS_DTPMOD, R_CRIS_DTPMOD },

error: old chunk mismatch

OLDNEW
« no previous file with comments | « bfd/elf32-cr16c.c ('k') | bfd/elf32-crx.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698