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

Side by Side Diff: bfd/sparclynx.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/sparclinux.c ('k') | bfd/stab-syms.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 /* BFD support for Sparc binaries under LynxOS. 1 /* BFD support for Sparc binaries under LynxOS.
2 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2 Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000,
3 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc. 3 2001, 2002, 2003, 2005, 2007, 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.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 16 matching lines...) Expand all
30 #include "bfd.h" 30 #include "bfd.h"
31 #include "libbfd.h" 31 #include "libbfd.h"
32 32
33 #include "aout/sun4.h" 33 #include "aout/sun4.h"
34 #include "libaout.h" /* BFD a.out internal data structures */ 34 #include "libaout.h" /* BFD a.out internal data structures */
35 35
36 #include "aout/aout64.h" 36 #include "aout/aout64.h"
37 #include "aout/stab_gnu.h" 37 #include "aout/stab_gnu.h"
38 #include "aout/ar.h" 38 #include "aout/ar.h"
39 39
40 void NAME (lynx,set_arch_mach) PARAMS ((bfd *, unsigned long)); 40 void NAME (lynx,set_arch_mach) (bfd *, unsigned long);
41 static void choose_reloc_size PARAMS ((bfd *)); 41 static void choose_reloc_size (bfd *);
42 static bfd_boolean NAME (aout,sparclynx_write_object_contents) PARAMS ((bfd *)); 42 static bfd_boolean NAME (aout,sparclynx_write_object_contents) (bfd *);
43 43
44 /* This is needed to reject a NewsOS file, e.g. in 44 /* This is needed to reject a NewsOS file, e.g. in
45 gdb/testsuite/gdb.t10/crossload.exp. <kingdon@cygnus.com> 45 gdb/testsuite/gdb.t10/crossload.exp. <kingdon@cygnus.com>
46 I needed to add M_UNKNOWN to recognize a 68000 object, so this will 46 I needed to add M_UNKNOWN to recognize a 68000 object, so this will
47 probably no longer reject a NewsOS object. <ian@cygnus.com>. */ 47 probably no longer reject a NewsOS object. <ian@cygnus.com>. */
48 #define MACHTYPE_OK(mtype) ((mtype) == M_UNKNOWN \ 48 #define MACHTYPE_OK(mtype) ( (mtype) == M_UNKNOWN \
49 || (mtype) == M_68010 \ 49 || (mtype) == M_68010 \
50 || (mtype) == M_68020 \ 50 || (mtype) == M_68020 \
51 || (mtype) == M_SPARC) 51 || (mtype) == M_SPARC)
52 52
53 /* The file @code{aoutf1.h} contains the code for BFD's 53 /* The file @code{aoutf1.h} contains the code for BFD's
54 a.out back end. Control over the generated back end is given by these 54 a.out back end. Control over the generated back end is given by these
55 two preprocessor names: 55 two preprocessor names:
56 @table @code 56 @table @code
57 @item ARCH_SIZE 57 @item ARCH_SIZE
58 This value should be either 32 or 64, depending upon the size of an 58 This value should be either 32 or 64, depending upon the size of an
59 int in the target format. It changes the sizes of the structs which 59 int in the target format. It changes the sizes of the structs which
60 perform the memory/disk mapping of structures. 60 perform the memory/disk mapping of structures.
61 61
62 The 64 bit backend may only be used if the host compiler supports 64 62 The 64 bit backend may only be used if the host compiler supports 64
63 ints (eg long long with gcc), by defining the name @code{BFD_HOST_64_BIT} in @code{bfd.h}. 63 ints (eg long long with gcc), by defining the name @code{BFD_HOST_64_BIT} in @code{bfd.h}.
64 With this name defined, @emph{all} bfd operations are performed with 64bit 64 With this name defined, @emph{all} bfd operations are performed with 64bit
65 arithmetic, not just those to a 64bit target. 65 arithmetic, not just those to a 64bit target.
66 66
67 @item TARGETNAME 67 @item TARGETNAME
68 The name put into the target vector. 68 The name put into the target vector.
69 @item 69 @item
70 @end table */ 70 @end table */
71 71
72 void 72 void
73 NAME(lynx,set_arch_mach) (abfd, machtype) 73 NAME(lynx,set_arch_mach) (bfd *abfd, unsigned long machtype)
74 bfd *abfd;
75 unsigned long machtype;
76 { 74 {
77 /* Determine the architecture and machine type of the object file. */ 75 /* Determine the architecture and machine type of the object file. */
78 enum bfd_architecture arch; 76 enum bfd_architecture arch;
79 unsigned long machine; 77 unsigned long machine;
80 78
81 switch (machtype) 79 switch (machtype)
82 { 80 {
83 case M_UNKNOWN: 81 case M_UNKNOWN:
84 /* Some Sun3s make magic numbers without cpu types in them, so 82 /* Some Sun3s make magic numbers without cpu types in them, so
85 we'll default to the 68000. */ 83 we'll default to the 68000. */
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 bfd_set_arch_mach (abfd, arch, machine); 121 bfd_set_arch_mach (abfd, arch, machine);
124 } 122 }
125 123
126 #define SET_ARCH_MACH(ABFD, EXEC) \ 124 #define SET_ARCH_MACH(ABFD, EXEC) \
127 NAME(lynx,set_arch_mach) (ABFD, N_MACHTYPE (EXEC)); \ 125 NAME(lynx,set_arch_mach) (ABFD, N_MACHTYPE (EXEC)); \
128 choose_reloc_size(ABFD); 126 choose_reloc_size(ABFD);
129 127
130 /* Determine the size of a relocation entry, based on the architecture. */ 128 /* Determine the size of a relocation entry, based on the architecture. */
131 129
132 static void 130 static void
133 choose_reloc_size (abfd) 131 choose_reloc_size (bfd *abfd)
134 bfd *abfd;
135 { 132 {
136 switch (bfd_get_arch (abfd)) 133 switch (bfd_get_arch (abfd))
137 { 134 {
138 case bfd_arch_sparc: 135 case bfd_arch_sparc:
139 obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE; 136 obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
140 break; 137 break;
141 default: 138 default:
142 obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; 139 obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
143 break; 140 break;
144 } 141 }
145 } 142 }
146 143
147 /* Write an object file in LynxOS format. 144 /* Write an object file in LynxOS format.
148 Section contents have already been written. We write the 145 Section contents have already been written. We write the
149 file header, symbols, and relocation. */ 146 file header, symbols, and relocation. */
150 147
151 static bfd_boolean 148 static bfd_boolean
152 NAME(aout,sparclynx_write_object_contents) (abfd) 149 NAME(aout,sparclynx_write_object_contents) (bfd *abfd)
153 bfd *abfd;
154 { 150 {
155 struct external_exec exec_bytes; 151 struct external_exec exec_bytes;
156 struct internal_exec *execp = exec_hdr (abfd); 152 struct internal_exec *execp = exec_hdr (abfd);
157 153
158 /* Magic number, maestro, please! */ 154 /* Magic number, maestro, please! */
159 switch (bfd_get_arch (abfd)) 155 switch (bfd_get_arch (abfd))
160 { 156 {
161 case bfd_arch_m68k: 157 case bfd_arch_m68k:
162 switch (bfd_get_mach (abfd)) 158 switch (bfd_get_mach (abfd))
163 { 159 {
(...skipping 19 matching lines...) Expand all
183 choose_reloc_size (abfd); 179 choose_reloc_size (abfd);
184 180
185 N_SET_FLAGS (*execp, aout_backend_info (abfd)->exec_hdr_flags); 181 N_SET_FLAGS (*execp, aout_backend_info (abfd)->exec_hdr_flags);
186 182
187 WRITE_HEADERS (abfd, execp); 183 WRITE_HEADERS (abfd, execp);
188 184
189 return TRUE; 185 return TRUE;
190 } 186 }
191 187
192 #define MY_set_sizes sparclynx_set_sizes 188 #define MY_set_sizes sparclynx_set_sizes
193 static bfd_boolean sparclynx_set_sizes PARAMS ((bfd *)); 189 static bfd_boolean sparclynx_set_sizes (bfd *);
194 190
195 static bfd_boolean 191 static bfd_boolean
196 sparclynx_set_sizes (abfd) 192 sparclynx_set_sizes (bfd *abfd)
197 bfd *abfd;
198 { 193 {
199 switch (bfd_get_arch (abfd)) 194 switch (bfd_get_arch (abfd))
200 { 195 {
201 default: 196 default:
202 return FALSE; 197 return FALSE;
203 case bfd_arch_sparc: 198 case bfd_arch_sparc:
204 adata (abfd).page_size = 0x2000; 199 adata (abfd).page_size = 0x2000;
205 adata (abfd).segment_size = 0x2000; 200 adata (abfd).segment_size = 0x2000;
206 adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; 201 adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE;
207 return TRUE; 202 return TRUE;
(...skipping 10 matching lines...) Expand all
218 0, 1, 0, 1, 0, sparclynx_set_sizes, 0, 213 0, 1, 0, 1, 0, sparclynx_set_sizes, 0,
219 0, /* add_dynamic_symbols */ 214 0, /* add_dynamic_symbols */
220 0, /* add_one_symbol */ 215 0, /* add_one_symbol */
221 0, /* link_dynamic_object */ 216 0, /* link_dynamic_object */
222 0, /* write_dynamic_symbol */ 217 0, /* write_dynamic_symbol */
223 0, /* check_dynamic_reloc */ 218 0, /* check_dynamic_reloc */
224 0 /* finish_dynamic_link */ 219 0 /* finish_dynamic_link */
225 }; 220 };
226 221
227 222

error: old chunk mismatch

OLDNEW
« no previous file with comments | « bfd/sparclinux.c ('k') | bfd/stab-syms.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698