Fix PPC_ADDR16_HA relocations
[deliverable/binutils-gdb.git] / bfd / ChangeLog
1 Fri Jul 14 11:58:34 1995 Michael Meissner <meissner@tiktok.cygnus.com>
2
3 * elf32-ppc.c (ppc_elf_addr16_ha_inner): Rewrite to take just one
4 argument, the final relocated address.
5 (ppc_elf_addr16_ha_inner): Adjust ppc_elf_addr16_ha_inner caller.
6 (ppc_elf_relocate_section): Ditto.
7
8 Thu Jul 13 17:22:03 1995 Jeff Law (law@snake.cs.utah.edu)
9
10 * som.c (hppa_som_gen_reloc_type): Choose a reasonable field
11 selector relocation for the difference of two symbols.
12
13 Thu Jul 13 10:33:25 1995 Ian Lance Taylor <ian@cygnus.com>
14
15 * aoutx.h (NAME(aout,slurp_reloc_table)): Cast argument to size_t
16 for malloc.
17 * coff-mips.c (mips_relocate_section): Likewise, for memmove.
18 (mips_relax_section): Likewise, for malloc.
19 * cofflink.c (process_embedded_commands): Likewise.
20 (_bfd_coff_final_link): Likewise.
21 * ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
22 (ecoff_final_link_debug_accumulate): Likewise.
23 (ecoff_indirect_link_order): Likewise, for memcpy and malloc.
24 (ecoff_reloc_link_order): Likewise, for malloc.
25 * ecofflink.c (ecoff_align_debug): Likewise, for memset.
26 (ecoff_write_symhdr): Likewise, for malloc.
27 * elf32-hppa.c (elf32_hppa_read_symext_info): Likewise.
28 * elf.c (assign_file_positions_except_relocs): Likewise, for
29 qsort.
30 * elf32-mips.c (mips_elf_read_ecoff_info): Likewise, for malloc.
31 * elfcode.h (elf_slurp_reloc_table): Likewise.
32 * elfcore.h (elf_corefile_note): Likewise.
33 * elflink.h (elf_link_add_object_symbols): Likewise.
34 (elf_link_read_relocs): Likewise.
35 (NAME(bfd_elf,size_dynamic_sections)): Likewise, for memset.
36 * i386linux.c (bfd_linux_size_dynamic_sections): Likewise.
37 * ieee.c (do_with_relocs): Likewise.
38 * linker.c (default_indirect_link_order): Likewise, for malloc.
39 * nlmcode.h (nlm_object_p): Likewise.
40 (nlm_write_object_contents): Likewise.
41 * oasys.c (oasys_set_section_contents): Likewise, for memcpy.
42 * reloc.c (bfd_generic_get_relocated_section_contents): Likewise,
43 for malloc.
44 * section.c (bfd_get_section_contents): Likewise, for memcpy.
45 * srec.c (srec_get_section_contents): Likewise.
46 (srec_set_section_contents): Likewise.
47 * sunos.c (bfd_sunos_size_dynamic_sections): Likewise, for
48 realloc and memset.
49 (sunos_scan_relocs): Likewise, for malloc.
50 (sunos_scan_dynamic_symbol): Likewise, for realloc.
51 * syms.c (_bfd_generic_read_minisymbols): Likewise, for malloc.
52 * versados.c (versados_get_section_contents): Likewise, for
53 memcpy.
54
55 * libbfd.c (real_read): Add prototype. Change argument types from
56 int to size_t.
57 (bfd_read): Cast real_read argument to size_t, not int.
58 (bfd_write): Cast fwrite argument to size_t, not int.
59
60 * elf64-gen.c (elf_info_to_howto): Fix definition for recent elf.c
61 changes.
62
63 * configure.in: Fix typo: change {$enableval} to ${enableval}.
64 * configure: Rebuild.
65
66 * Makefile.in (BFD32_BACKENDS): Add elflink.o.
67
68 * targets.c (bfd_target): Add fields _read_minisymbols and
69 _minisymbol_to_symbol.
70 (BFD_JUMP_TABLE_SYMBOLS): Add _read_minisymbols and
71 _minisymbol_to_symbol.
72 (bfd_read_minisymbols): Define.
73 (bfd_minisymbol_to_symbol): Define.
74 * syms.c (_bfd_generic_read_minisymbols): Define.
75 (_bfd_generic_minisymbol_to_symbol): Define.
76 * libbfd-in.h (_bfd_nosymbols_read_minisymbols): Define.
77 (_bfd_nosymbols_minisymbol_to_symbol): Define.
78 (_bfd_generic_read_minisymbols): Declare.
79 (_bfd_generic_minisymbol_to_symbol): Declare.
80 * bfd-in2.h: Rebuild.
81 * libbfd.h: Rebuild.
82 * aoutx.h (MINISYM_THRESHOLD): Define.
83 (NAME(aout,read_minisymbols)): New function.
84 (NAME(aout,minisymbol_to_symbol)): New function.
85 * libaout.h (NAME(aout,read_minisymbols)): Declare.
86 (NAME(aout,minisymbol_to_symbol)): Declare.
87 * aout-target.h (MY_read_minisymbols): Define.
88 (MY_minisymbol_to_symbol): Define.
89 * All targets: Define read_minisymbols and minisymbol_to_symbol.
90
91 Wed Jul 12 17:55:55 1995 Ken Raeburn <raeburn@cygnus.com>
92
93 * elflink.h (elf_link_add_object_symbols): Cast return value from
94 bfd_alloc.
95
96 * elfcode.h (size_info): Don't use "&" before function names.
97
98 Wed Jul 12 00:16:48 1995 Ken Raeburn <raeburn@kr-pc.cygnus.com>
99
100 * libelf.h (elf_backend_data): Use unsigned, not unsigned char,
101 for bitfields.
102
103 Tue Jul 11 15:19:53 1995 Ian Lance Taylor <ian@cygnus.com>
104
105 * elf.c (bfd_section_from_shdr): In case SHT_REL[A], only get the
106 BFD section for the sh_link section if it is a SYMTAB section.
107
108 * aoutx.h (NAME(aout,link_add_symbols)): Don't bother to check
109 that archives hold a.out objects.
110 * cf-i386lynx.c (coff_bfd_link_add_symbols): Don't define.
111 (lynx_link_add_symbols): Remove.
112 * cf-m68klynx.c (coff_bfd_link_add_symbols): Don't define.
113 (lynx_link_add_symbols): Remove.
114 * elflink.h (elf_bfd_link_add_symbols): Don't bother to check that
115 archives hold ELF objects.
116
117 * archive.c (bfd_generic_archive_p): If the archive has a map, and
118 the target was defaulted, but the first object in the archive can
119 not be matched with that target, then return a bad format error.
120
121 * elf64-sparc.c (elf_sparc_howto_table): Set howto for WDISP16 to
122 elf64_wdisp16_reloc.
123 (elf64_wdisp16_reloc): New static function.
124 (elf64_sparc_relocate_section): New static function.
125 (elf_backend_relocate_section): Define.
126
127 * libelf.h (struct elf_size_info): Change type of last argument to
128 swap_symbol_out from char * to PTR.
129 (bfd_elf32_swap_symbol_out): Update declaration.
130 (bfd_elf64_swap_symbol_out): Likewise.
131 * elfcode.h (elf_swap_symbol_out): Change type of cdst from char *
132 to PTR.
133 * elf.c (swap_out_syms): Cast to PTR, not char *, when calling
134 swap_symbol_out routine.
135 * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Likewise.
136 (elf_link_output_sym): Likewise.
137 (elf_link_output_extsym): Likewise.
138 * elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Likewise.
139
140 Tue Jul 11 12:29:49 1995 Rick Sladkey <jrs@world.std.com>
141
142 * elf.c (_bfd_elf_find_nearest_line): Handle the simple case where
143 there is no debugging information.
144
145 Mon Jul 10 11:45:55 1995 Ken Raeburn <raeburn@cygnus.com>
146
147 * makefile.dos (OBJS): Add binary.o and tekhex.o. From DJ
148 Delorie.
149
150 Mon Jul 10 11:09:58 1995 Ian Lance Taylor <ian@cygnus.com>
151
152 * linker.c (set_symbol_from_hash): bfd_link_hash_new case: Don't
153 abort; it can happen for constructor symbols when not building
154 constructors.
155
156 * coff-i960.c (coff_i960_relocate): Correct typo: use ! on strcmp,
157 not on string.
158 * cofflink.c (_bfd_coff_generic_relocate_section): Remove unused
159 local i.
160 * coff-arm.c (coff_arm_rtype_to_howto): Don't declare.
161 (PCRELOFFSET): Define if not already defined.
162 * Makefile.in: Rebuild dependencies.
163 (BFD32_BACKENDS): Add coff-arm.o
164 (CFILES): Add coff-arm.c, pe-arm.c, pei-arm.c.
165
166 * aoutx.h (NAME(aout,link_hash_table_create)): Allocate hash table
167 using bfd_alloc, not malloc.
168 * cofflink.c (_bfd_coff_link_hash_table_create): Likewise.
169 * ecoff.c (_bfd_ecoff_bfd_link_hash_table_create): Likewise.
170 * i386linux.c (linux_link_hash_table_create): Likewise.
171 * linker.c (_bfd_generic_link_hash_table_create): Likewise.
172 * sunos.c (sunos_link_hash_table_create): Likewise.
173
174 Based on patches from Eric Youngdale <eric@aib.com>:
175 * elflink.h (NAME(bfd_elf,size_dynamic_sections)): If -Bsymbolic,
176 output a DT_SYMBOLIC dynamic entry.
177 (elf_adjust_dynamic_symbol): If -Bsymbolic, don't require a PLT
178 entry for a locally defined symbol.
179 * elf32-i386.c (elf_i386_relocate_section): If -Bsymbolic, do warn
180 about undefined symbols, and fill in the GOT entry for a symbol
181 defined in a regular object file.
182 (elf_i386_finish_dynamic_symbol): If -Bsymbolic, output a RELATIVE
183 reloc rather than a GLOB_DAT reloc for a symbol defined in a
184 regular object file.
185 * elf32-m68k.c (elf_m68k_relocate_section): If -Bsymbolic, do warn
186 about undefined symbols, and fill in the GOT entry for a symbol
187 defined in a regular object file.
188 (elf_m68k_finish_dynamic_symbol): If -Bsymbolic, output a RELATIVE
189 reloc rather than a GLOB_DAT reloc for a symbol defined in a
190 regular object file.
191 * elf32-sparc.c (elf32_sparc_relocate_section): If -Bsymbolic, do
192 warn about undefined symbols, and fill in the GOT entry for a
193 symbol defined in a regular object file.
194 (elf32_sparc_finish_dynamic_symbol): If -Bsymbolic, output a
195 RELATIVE reloc rather than a GLOB_DAT reloc for a symbol defined
196 in a regular object file.
197
198 * config/m68k-coff.mt (SELECT_VECS): Rename from SELECT_VECTORS.
199 Correct elements to be actual BFD vector names.
200
201 * Makefile.in (Makefile): Don't depend upon @frags@.
202 (config.status): Depend upon @frags@.
203
204 Fri Jul 7 17:36:44 1995 Ian Lance Taylor <ian@cygnus.com>
205
206 * coffgen.c (coff_renumber_symbols): Sort defined symbols that are
207 neither BSF_FUNCTION not BSF_NOT_AT_END just before undefined
208 symbols.
209 * coffcode.h (coff_slurp_symbol_table): Set BSF_FUNCTION as well
210 as BSF_NOT_AT_END.
211
212 Fri Jul 7 17:16:15 1995 Ken Raeburn <raeburn@cygnus.com>
213
214 * Makefile.in (do_mostlyclean): Remove config.log.
215 (do_distclean): Remove config.cache.
216
217 Thu Jul 6 14:37:43 1995 Ian Lance Taylor <ian@cygnus.com>
218
219 * elf32-i386.c (elf_i386_relocate_section): Revert May 24 patch.
220 Don't copy PC32 reloc against section into shared object.
221
222 * Makefile.in: Rebuild dependencies.
223 (CFILES): Added elflink.c.
224 (Makefile): Depend upon config.status, not configure.in.
225 (config.status): New target; depend upon configure configure.host
226 and config.bfd.
227
228 Wed Jul 5 20:17:14 1995 Ken Raeburn <raeburn@cygnus.com>
229
230 * elfcore.h, elflink.h, elfcode.h, elf.c, elflink.c: Moved some
231 primarily size-independent code from elfcode.h to elf.c and new
232 file elflink.c; moved out other core- or linker-related routines
233 into other new .h files for clarity. Renamed many routines to
234 start with bfd_elf or _bfd_elf. Added a structure of
235 size-dependent but target-independent info to elfcode.h.
236 * Makefile.in: Build elflink.o. Update dependencies.
237 * libelf.h: Updated some declarations. Added a definition for the
238 new structure in elfcode.h. Added more fields to elf backend data
239 structure.
240 * elfxx-target.h: Refer to the appropriate size-dependent info.
241 * elf32-*.c: Changed some function names. Moved common
242 create_dynamic_sections code from m68k, sparc, and i386 support
243 into elflink.c. Define some new macros to fill in new fields of
244 back end data. Also clean up some "gcc -Wall" warnings regarding
245 unused or uninitialized variables.
246
247 * Makefile.in (BFD_LIBS): No, don't put elflink.o here.
248 * configure.in: Include it here whenever elf.o is specified.
249
250 Wed Jul 5 10:31:47 1995 Ian Lance Taylor <ian@cygnus.com>
251
252 * elf32-mips.c (mips_elf_object_p): Unconditionally set
253 elf_bad_symtab, since sometimes the symbol table is messed up and
254 the last symbol is global.
255
256 * ecoff.c (_bfd_ecoff_bfd_is_local_label): New function.
257 * libecoff.h (_bfd_ecoff_bfd_is_local_label): Declare.
258 * elf32-mips.c (mips_elf_is_local_label): New static function.
259 (bfd_elf32_bfd_is_local_label): Define.
260
261 * configure.in: Use $ac_config_sub, not $configsub.
262 * configure: Likewise.
263
264 Permit --enable-targets=ieee:
265 * config.bfd (*-*-ieee*): New target.
266 * config/ieee.mt: New file.
267
268 Wed Jul 5 04:16:35 1995 Ken Raeburn <raeburn@kr-pc.cygnus.com>
269
270 * config/i386aix.mh (HDEFINES): Remove -DFASCIST_FDOPEN.
271
272 Autoconfiscation:
273 * configure.in, Makefile.in, doc/Makefile.in: Switch from Cygnus
274 configure to autoconf ways of processing --enable arguments,
275 setting up symlinks, incorporating makefile fragments, printing
276 messages at configuration time, setting variables in Makefile.
277 Deleted some unused variables. Check for ranlib via autoconf.
278 For now, configure script removes doc/config.status.
279 * configure: New file.
280 * dep-in.sed: Use @SRCDIR@ instead of @srcdir@, so Makefile.in
281 line doesn't get broken by configure.
282 * doc/configure.in: Removed.
283
284 Tue Jul 4 12:22:21 1995 Ian Lance Taylor <ian@cygnus.com>
285
286 * archive.c (_bfd_construct_extended_name_table): If
287 BFD_TRADITIONAL_FORMAT is set, limit the length of all file names
288 to ar_max_namelen.
289 (bfd_dont_truncate_arname): If BFD_TRADITIONAL_FORMAT is set, call
290 bfd_bsd_truncate_arname.
291 (_bfd_write_archive_contents): Revert June 1 change.
292
293 * elfcode.h (NAME(bfd_elf,record_link_assignment)): Add provide
294 argument.
295 * bfd-in.h (bfd_elf32_record_link_assignment): Update prototype.
296 (bfd_elf64_record_link_assignment): Likewise.
297 * bfd-in2.h: Rebuild.
298
299 * libelf.h (struct elf_link_hash_table): Add needed field. Remove
300 saw_needed field.
301 * elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name
302 is an empty string, don't make a DT_NEEDED entry in the output
303 file. Record all DT_NEEDED entries found in input dynamic
304 objects.
305 (elf_link_output_extsym): Don't check saw_needed when issuing
306 warnings.
307 * elf.c (_bfd_elf_link_hash_table_init): Initialize needed, not
308 saw_needed.
309 (bfd_elf_get_needed_list): New function.
310 * bfd-in.h (struct bfd_elf_link_needed_list): Define.
311 (bfd_elf_get_needed_list): Define.
312 * bfd-in2.h: Rebuild.
313
314 * ecoff.c (_bfd_ecoff_find_nearest_line): Also initialize
315 find_buffer and fdrtab_len fields of newly allocated
316 find_line_info structure.
317
318 Mon Jul 3 17:03:52 1995 Jeff Law (law@snake.cs.utah.edu)
319
320 * som.c (hppa_som_gen_reloc_type): New argument "sym_diff",
321 nonzero when we're generating relocations for an expression
322 using the difference of two symbols. All callers changed.
323 Handle difference of symbols for both R_HPPA and R_COMPLEX
324 cases.
325 (som_write_fixups): Handle R_COMP1, R_COMP2 and R_CODE_EXPR
326 fixups.
327
328 Mon Jul 3 13:55:18 1995 Steve Chamberlain <sac@slash.cygnus.com>
329
330 * config.bfd (win32): New configuration.
331 * configure.host (pe): Changed to i386win32.
332 * config/i386pe.mh: Deleted.
333 * config/i386win32.mh: New file.
334
335 Mon Jul 3 11:30:45 1995 Ian Lance Taylor <ian@cygnus.com>
336
337 * ecoff.c (_bfd_ecoff_find_nearest_line): If we allocate
338 find_line_info, clear the fdrtab field.
339
340 * targets.c (enum bfd_flavour): Add bfd_target_msdos_flavour here,
341 rather than in bfd-in2.h.
342
343 * bfd.c (enum bfd_error): Define bfd_error_no_armap.
344 (bfd_errmsgs): Add string for bfd_error_no_armap.
345 * bfd-in2.h: Rebuild.
346 * ecoff.c (ecoff_link_add_archive_symbols): If an archive has no
347 armap, set bfd_error_no_armap rather than bfd_error_no_symbols.
348 * elfcode.h (elf_link_add_archive_symbols): Likewise.
349 * linker.c (_bfd_generic_link_add_archive_symbols): Likewise.
350
351 * elfcode.h (elf_link_add_object_symbols): Permit common and
352 indirect symbols in weakdefs BFD_ASSERT.
353 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Simplify
354 BFD_ASSERT to permit some legal, but odd, cases.
355 * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
356 * elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
357
358 * Makefile.in: Rebuild dependencies.
359 (BFD32_BACKENDS): Add versados.o.
360 (CFILES): Add pe-i386.c, pei-i386.c, and versados.c.
361 start-sanitize-arc
362 (elf32-arc.o): New target. This target should be removed when
363 elf32-arc.c can be added to CFILES, after which the automatic
364 dependency building will handle it.
365 end-sanitize-arc
366
367 Sun Jul 2 17:49:32 1995 Ian Lance Taylor <ian@cygnus.com>
368
369 * cofflink.c (_bfd_coff_generic_relocate_section): Cast base_file
370 to FILE * before using it.
371 * stab-syms.c: Revert yesterday's patch.
372
373 Sat Jul 1 12:10:42 1995 Fred Fish <fnf@cygnus.com>
374
375 * stab-syms.c (stdio.h): Include prior to libaout.h, which
376 includes bfdlink.h, which now uses FILE.
377
378 Sat Jul 1 00:11:08 1995 Ken Raeburn <raeburn@cygnus.com>
379
380 * elfxx-target.h: New file.
381
382 * libelf.h (struct elf_backend_data): Remove elf_64_p field.
383 * elfxx-target.h (elfNN_bed): Don't set it.
384
385 * elf32-target.h, elf64-target.h: Deleted.
386 * Makefile.in (elf32-target.h, elf64-target.h): Build them from
387 elfxx-target.h.
388
389 Fri Jun 30 16:07:18 1995 Steve Chamberlain <sac@slash.cygnus.com>
390
391 * cofflink.c (_bfd_coff_generic_relocate_section): Compare
392 the full text of .reloc or .edata section names.
393
394 Fri Jun 30 15:47:37 1995 Fred Fish <fnf@cygnus.com>
395
396 * cofflink.c (_bfd_coff_generic_relocate_section):
397 Remove extra '+'.
398
399 Thu Jun 29 17:24:52 1995 Steve Chamberlain <sac@slash.cygnus.com>
400
401 * coff-h8300.c (COFF_LONG_FILENAMES): Define.
402
403 Wed Jun 28 18:04:42 1995 Steve Chamberlain <sac@slash.cygnus.com>
404
405 * Makefile.in: versados.o is now conditionally built.
406 * coffcode.h (add_data_entry): New function.
407 (coff_write_object_contents): Clean up. Calculate
408 data entries.
409 * cofflink.c (_bfd_coff_generic_relocate_section):
410 .reloc and .edata sections are IMAGE_BASED too.
411 If there's a base_file then write out base information.
412 * configure.host (i386-*-pe): New.
413 * syms.c (coff_section_type): Only scan prefixes.
414 * targets.c (bfd_target_vector): Versados is now conditionally
415 built.
416 * config/m68k-coff.mt: Build versados.o
417 * hosts/i386pe.h: New file.
418
419 Mon Jun 26 13:53:49 1995 Jeff Law (law@snake.cs.utah.edu)
420
421 * elf32-hpa.c (elf32_hppa_relocate_section): Close comment before
422 R_PARISC_DPREL21L handling.
423
424 Thu Jun 22 19:28:36 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
425
426 Sun May 7 11:53:41 MDT 1995 Bryan Ford <baford@cs.utah.edu>
427
428 * config/i386-moss.mt: created.
429
430 Thu Jun 22 08:56:10 1995 Steve Chamberlain <sac@slash.cygnus.com>
431
432 * reloc.c (bfd_perform_relocation): Add case for -ve words.
433
434 Wed Jun 21 13:13:49 1995 Jeff Law (law@snake.cs.utah.edu)
435
436 * elf32-hppa.c (elf32_hppa_relocate_section): Don't try to apply a
437 relocation against an undefined symbols.
438
439 Wed Jun 21 10:16:10 1995 Steve Chamberlain <sac@slash.cygnus.com>
440
441 * versados.c: Second pass/rewrite.
442
443 Mon Jun 19 08:40:45 1995 Steve Chamberlain <sac@slash.cygnus.com>
444
445 * syms.c (coff_section_type): Compare only the front part
446 of a section name.
447
448 Sat Jun 17 09:40:44 1995 Jeff Law (law@snake.cs.utah.edu)
449
450 * elf32-hppa.c (elf32_hppa_size_stubs): Set the size of the stub
451 section if we get an error.
452
453 * elf32-hppa.c (elf32_hppa_bfd_final_link_relocate): Don't mess
454 with the operands of an R_PARISC_DPREL21L relocation if the insn
455 is not "addil <symbol>,%r27".
456
457 Fri Jun 16 15:04:47 1995 Stan Shebs <shebs@andros.cygnus.com>
458
459 * bfd-in.h (NT_subsystem, NT_stack_heap): Declare but don't
460 define.
461 * bfd-in2.h: Rebuilt.
462 * bfd.c (NT_subsystem, NT_stack_heap): Define.
463
464 Fri Jun 16 00:07:25 1995 Jeff Law (law@snake.cs.utah.edu)
465
466 * elf32-hppa.c (elf32_hppa_bfd_link_link_relocate): Use the right
467 type field (there are two!) when checking to see if $global$ is
468 defined.
469
470 Thu Jun 15 14:03:47 1995 Stan Shebs <shebs@andros.cygnus.com>
471
472 * bfd-in.h, bfd-in2.h (bfd_boolean): Rename bfd_true, bfd_false
473 to bfd_tttrue, bfd_fffalse so as not to conflict with functions.
474 * coffswap.h (coff_swap_scnhdr_out): Remove version that was
475 hacked for MPW C.
476 * mpw-config.in: Set shell vars instead of pasting to makefile
477 for each configuration, edit coffswap.h to make MPW C not choke.
478 (i386-unknown-coff, sh-hitachi-hms): Recognize.
479 * mpw-make.in (BFD_LIBS): Add versados.c.o.
480
481 * versados.c (versados_scan): Properly cast results from bfd_alloc.
482
483 Wed Jun 14 15:27:32 1995 Steve Chamberlain <sac@slash.cygnus.com>
484
485 * cofflink.c (process_embedded_commands): New function
486 reads and handles .drectve sections for PE.
487 (coff_link_input_bfd): Call new function if PE.
488
489 Mon Jun 12 12:09:39 1995 Jeff Law (law@snake.cs.utah.edu)
490
491 * bfd-in.h (bfd_set_section_vma): Case true to a boolean.
492 (bfd_set_cacheable): Likewise.
493 * bfd-in2.h: Rebuilt.
494
495 Fri Jun 9 12:20:28 1995 Steve Chamberlain <sac@rtl.cygnus.com>
496
497 * elfcode.h (elf_sort_hdrs): Rewrite to be symmetrical.
498
499 Fri Jun 9 12:49:00 1995 Jeff Law (law@snake.cs.utah.edu)
500
501 * targets.c: Add copy_private_symbol_data and link_split_section
502 to the target vector.
503 * libbfd-in.h (_bfd_generic_bfd_copy_private_symbol_data): Define.
504 (_bfd_nolink_bfd_link_split_section): Likewise.
505 (bfd_generic_link_split_section): Declare.
506 * syms.c (bfd_copy_private_symbol_data): Define.
507 * linker.c (bf_link_split_section): Likewise.
508 * som.c (som_bfd_copy_private_symbol_data): New function
509 (som_bfd_link_split_section): Likewise.
510 * All other targets updated with default versions of new routines.
511
512 * Take out my braindamaged bfd_true/bfd_false changes from earlier
513 today. Replace with just:
514 * bfd-in.h: (TRUE_FALSE_ALREADY_DEFINED): Define this if
515 compiling with g++-2.6 or later.
516 * bfd-in2.h: Rebuilt.
517
518 Fri Jun 9 07:54:29 1995 Steve Chamberlain <sac@slash.cygnus.com>
519
520 * versados.c (struct esd, get_4): Lint; use unsigned chars.
521
522 * coff-i960.c (coff_i960_relocate): Compare output section names
523 when converting for vxworks.
524
525 Wed Jun 7 19:01:30 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
526
527 * elfcode.h (elf_fake_sections): Permit .scommon or COMMON
528 sections as random SHT_NOBITS sections, in case a linker script is
529 strange.
530
531 Tue Jun 6 17:29:32 1995 Steve Chamberlain <sac@slash.cygnus.com>
532
533 * bfd-in.h (NT_subsystem, NT_stack_heap): Moved from pe.h
534 * coff-i386.c (coff_i386_rtype_to_howto): Get PE relocs right.
535 * coffcode.h (coff_mkobject): Set pe tdata bit when using PE.
536 * cofflink.c (COFF_WITH_PE code): Test on obj_pe bit rather
537 than conditional compile.
538 * configure.in: Fix PE dependencies.
539 * libcoff-in.h (obj_pe): New.
540 (coff_tdata): Added pe entry.
541 * libcoff.h: Regenerated.
542
543 Mon Jun 5 09:07:13 1995 Steve Chamberlain <sac@slash.cygnus.com>
544
545 * coff-a29k.c (coff_a29k_adjust_symndx): Completely parenthesize
546 macro.
547
548 Mon Jun 5 02:15:20 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
549
550 Linker support for m68k-elf from Andreas Schwab
551 <schwab@issan.informatik.uni-dortmund.de>:
552 * elfcode.h (elf_link_add_object_symbols): Check for NULL when
553 looping through the symbol hashes.
554 (elf_bfd_final_link): When looking for _init and _fini don't use
555 the symbol if it is imported from another object.
556 * elf32-m68k.c: Relocation type changed from REL to RELA. Regular
557 and dynamic linking support functions added, similar to other elf
558 targets.
559
560 * config.bfd (i[345]86-*-gnu*): Use ELF configuration.
561
562 Fri Jun 2 18:54:59 1995 Steve Chamberlain <sac@slash.cygnus.com>
563
564 * versados.c: New file.
565 * bfd-in2.h (struct _bfd): New field.
566 * bfd.c (struct _bfd): New field.
567 * configure.in (versados_vec): New field.
568 * targets.c (bfd_flavor): Added versados.
569
570 Thu Jun 1 13:51:49 1995 Steve Chamberlain <sac@slash.cygnus.com>
571
572 * coffcode.h (sec_to_styp_flags, styp_to_sec_flags,
573 coff_new_section_hook): Any section that starts ".stab"
574 is now marked as debugging.
575
576 Thu Jun 1 16:15:16 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
577
578 * archive.c (_bfd_write_archive_contents): Disable extended name
579 table until it can be made optional, so that native AR has half a
580 chance on SunOS and HP/UX.
581
582 * linker.c (_bfd_generic_link_output_symbols, case
583 bfd_link_hash_indirect): Add cast to correct pointer types.
584
585 Sat May 27 21:37:31 1995 J.T. Conklin <jtc@rtl.cygnus.com>
586
587 * config.bfd (m68k-bull-sysv*): Added strip_underscore=yes.
588 (m68k-est-coff): Removed. target does not effect object format.
589
590 Wed May 24 10:52:01 1995 Steve Chamberlain <sac@slash.cygnus.com>
591
592 * linker.c (_bfd_generic_link_output_symbols): Cope with
593 indirect symbols.
594
595 * elf32-i386.c (elf_i386_relocate_section): Give error
596 message when linking to a shared reloc which isn't there.
597
598 Wed May 24 10:40:00 1995 Steve Chamberlain <sac@slash.cygnus.com>
599
600 Support for ARM-PE.
601
602 * Makefile.in, coffcode.h, config.bfd, configure.in, pe-arm.c,
603 pei-arm.c, coff-arm.c, reloc.c, targets.c, config/arm-pe.mt:
604 Support for ARM COFF/PE.
605
606 Tue May 23 19:24:58 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
607
608 * bfd.c (bfd_get_relocated_section_contents): Now a function,
609 tries calling routine from input bfd target vector for
610 bfd_indirect_link_order. Put a declaration into the header file.
611 * bfd-in2.h: Regenerated.
612 * elf32-mips.c (gprel16_with_gp): New function, split out from
613 mips_elf_gprel16_reloc.
614 (mips_elf_gprel16_reloc): Call it. If output bfd target vector
615 isn't elf flavoured, abort, since it's assumed to be elf in some
616 of this code, including the code that looks up the gp value.
617 (elf32_mips_get_relocated_section_contents): New function,
618 modified from bfd_generic_get_relocated_section_contents to deal
619 with passing gp to gprel16_with_gp.
620 (bfd_elf32_bfd_get_relocated_section_contents): New macro.
621 * elf32-target.h (bfd_elf32_bfd_get_relocated_section_contents):
622 Don't define if already defined.
623
624 Tue May 23 15:58:15 1995 Jeff Law (law@snake.cs.utah.edu)
625
626 * Makefile.in: Install bfdlink.h too.
627
628 Sun May 21 22:25:09 1995 Jeff Law (law@snake.cs.utah.edu)
629
630 * elf32-hppa.c (elf32_hppa_relocate_section): Handle undefined and
631 notsupported return codes from final_link_relocate (used when
632 $global$ is undefined or nonexistant).
633 (elf32_hppa_bfd_link_link_relocate): If $global$ exists, but is
634 not defined,then return bfd_reloc_undefined.
635
636 Fri May 19 10:00:14 1995 Steve Chamberlain <sac@rtl.cygnus.com>
637
638 * coffswap.h: (IMAGE_BASE): Define to 0 if not.
639
640 Thu May 18 04:24:01 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com>
641
642 Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk)
643
644 * aoutx.h (aout_link_input_section_standard): If defined, call
645 MY_relocatable_reloc before doing a partial relocation.
646
647 * aout-arm.c: (WRITE_HEADERS): Delete.
648 (NAME): Define version to override default in aoutx.h
649 (MY(howto_table)): Reformat. Alter some entries slightly.
650 (RELOC_ARM_BITS_NEG_{BIG,LITTLE}): Define.
651 (MY(reloc_howto), MY(put_reloc), MY(relocatable_reloc)): New functions.
652 (MY_reloc_howto, MY_put_reloc, MY_relocatable_reloc): Define.
653 (MY(fix_pcrel_26)): Renamed from aoutarm_fix_pcrel_26, return
654 bfd_reloc_ok not bfd_reloc_continue.
655 (MY(fix_pcrel_26_done)): Likewise.
656 (MY(bfd_reloc_type_lookup)): Renamed from aoutarm_reloc_type_lookup.
657 (MY_bfd_link_hash_table_create, MY_bfd_link_add_symbols,
658 MY_bfd_final_link): Delete.
659 (MY_swap_std_reloc_in, MY_swap_std_reloc_out, MY_get_section_contents):
660 Define.
661 (aoutx.h): Include it.
662 (MY(swap_std_reloc_{in,out})): New functions.
663 Use RELOC_ARM_BITS_NEG_{BIG,LITTLE} to extract negative reloc bit.
664 (aoutarm_squirt_out_relocs): Delete.
665
666 From: David Taylor (dtaylor@armltd.co.uk)
667 * config/arm[lb]-aout.mt: New files.
668 * aout-arm.c: New file.
669 * config.bfd: Handle arm{,e[lb]}-*-aout
670 * configure.in: Add vetor for aout_arm_{big,little}_vec.
671 * reloc.c: New relocation types for the ARM.
672 * targets.c (aout_arm_{big,little}_vec): declare.
673
674 Tue May 16 10:29:51 1995 Jim Kingdon <kingdon@deneb.cygnus.com>
675
676 * libbfd.c (bfd_stat): If bfd_cache_lookup returns an error,
677 return an error to the caller. Call bfd_set_error on errors.
678
679 Tue May 16 14:44:45 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
680
681 * libcoff-in.h (coff_renumber_symbols): Modified prototypes in
682 accordance with 11 May libcoff.h change.
683
684 Thu May 11 16:43:14 1995 Steve Chamberlain <sac@slash.cygnus.com>
685
686 tekhex.c (first_phase): Understand type 0 symbols.
687 (tekhex_write_object_contents): Fix typo in final record.
688
689 Thu May 11 16:43:14 1995 Steve Chamberlain <sac@slash.cygnus.com>
690
691 * coff-i960.c (optcall_callback): don't try and optimize
692 undefined refs.
693 (coff_write_relocs): Search for broken relocs on the way
694 out and fix them up.
695 (coff_renumber_symbols): Calculate and return index of
696 first undefined symbol.
697 (coff_write_object_contents): Call coff_renumber_symbols
698 and coff_write_relocs with the new args.
699 * libcoff.h: (coff_renumber_symbols, coff_renumber_symbols):
700 Modified prototypes.
701
702 Thu May 11 16:43:14 1995 Steve Chamberlain <sac@slash.cygnus.com>
703 Tom Griest <griest@cs.yale.edu>
704
705 Initial support for PE format.
706
707 * Makefile.in, targets.c, configure.in, config.bfd:
708 Add support for i386-*-winnt and i386-*-pe.
709 * archive.c (do_slurp_coff_armap): Understand NTPE format
710 archives.
711 (_bfd_slurp_extended_name_table): Turn \ in a filename
712 into /.
713 * bfd-in.h (bfd_link_subsystem, _bfd_link_stack_heap): New.
714 * coff-i386.c (howto_table): Conditionalize PCRELOFFSET.
715 * coffcode.h (IMAGE_BASE): New.
716 (coff_compute_section_file_positions): Throw away .junk
717 sections for PE, align symbols.
718 (coff_write_object_contents): Throw away .junk sections
719 for PE. Remember info on .idata and .rsrc sections.
720 Fill in the PE header.
721 (coff_slurp_symbol_table): PE uses C_SECTION class.
722 * cofflink.c (_bfd_coff_final_link): Keep PE info up to date.
723 (_bfd_coff_generic_relocate_section): Cope with PE relocs.
724 * coffswap.h (coff_swap_{aout/file/scn/sym}hdr_{in/out}):
725 New code for PE headers.
726
727 Tue May 9 17:01:38 1995 Michael Meissner <meissner@tiktok.cygnus.com>
728
729 * config.bfd: Add little endian PowerPC support.
730 * configure.in: Ditto.
731 * targets.c: Ditto.
732 * config/ppcle-elf.mt: New file, for little endian PowerPC
733 support.
734 * config/ppc-elf.mt: Add little endian powerpc to the BFD
735 selection vectors.
736 * elf32-ppc.c (ppc_elf_merge_private_bfd_data): Complain if
737 linking a different endian object than we expect.
738 (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME): Define, to provide little
739 endian support.
740
741 Tue May 2 16:32:24 1995 Jeff Law (law@snake.cs.utah.edu)
742
743 * config.bfd (hppa*-*-lites*): Treat just like hppa*-*-*elf*.
744
745 Tue Apr 25 19:38:43 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
746
747 * coffgen.c (make_a_section_from_file): Initialize lma same as
748 vma.
749
750 Tue Apr 25 11:03:21 1995 Jason Molenda (crash@phydeaux.cygnus.com)
751
752 * hosts/std-host.h: #include ansidecl.h 'cause PTR is used in
753 std-host.h.
754
755 Mon Apr 24 23:56:44 1995 Ken Raeburn (raeburn@kr-pc.cygnus.com)
756
757 * hosts/i386linux.h (HAVE_PROCFS): Don't define it. Added lengthy
758 comment explaining why.
759
760 Mon Apr 24 10:34:02 1995 Michael Meissner <meissner@cygnus.com>
761
762 * hosts/i386linux.h (HAVE_PROCFS): If NO_PROCFS is defined, don't
763 define HAVE_PROCFS.
764
765 Mon Apr 24 08:33:12 1995 Michael Meissner <meissner@cygnus.com>
766
767 * elf32-ppc.c (ppc_elf_relocate_section): Do not continue
768 processing unknown symbols to prevent a cascade of errors.
769
770 Fri Apr 21 12:48:48 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
771
772 Patches from H.J. Lu for Linux ELF core file support.
773 * elfcode.h (elf_core_file_matches_executable_p) [HAVE_PROCFS]:
774 Use prpsinfo_t instead of struct prpsinfo, for consistency.
775 * hosts/i386linux.h (HAVE_PROCFS): Define.
776
777 Thu Apr 20 09:07:39 1995 Steve Chamberlain <sac@slash.cygnus.com>
778
779 * linker.c (link_action): Do the right thing when a undefined
780 strong symbol appears after an undefined weak symbol.
781
782 Fri Apr 14 16:51:17 1995 Michael Meissner <meissner@tiktok.cygnus.com>
783
784 * elf32-ppc.c (ppc_elf_relocate_section): New function to relocate
785 a whole section for the linker, bypassing bfd_perform_relocation.
786 (ppc_elf_reloc_type_lookup): New function to map the BFD
787 enumeration code into a howto structure.
788 (ppc_elf_howto_raw): Rename from ppc_elf_howto_table.
789 (ppc_elf_howto_table): New array that maps PowerPC relocation
790 numbers to howto structures without a linear search. Change from
791 using bfd_elf_generic_reloc to use ppc_elf_std_reloc.
792 (ppc_elf_howto_init): Initialize ppc_elf_howto_table from
793 ppc_elf_howto_raw.
794 (ppc_elf_reloc_type_lookup): Use a case statement instead of a
795 loop.
796 (ppc_elf_std_reloc): Replacement for bfd_elf_generic_reloc.
797 (ppc_elf_unsupported_reloc): Print a real error message, instead
798 of calling abort.
799 (ppc_elf_addr16_ha_inner): Abstract getting adjustment from
800 ppc_elf_addr16_ha_reloc, so ppc_elf_relocate_section can use it
801 too.
802 (ppc_elf_addr16_ha_reloc): Call it.
803 (ppc_elf_got16_inner): Abstract getting adjustment from
804 ppc_elf_got16_reloc, so ppc_elf_relocate_section can use it too.
805 (ppc_elf_got16_reloc): Call it.
806 (ppc_elf_info_to_howto): Rename from powerpc_info_to_howto.
807
808 * elfcode.h (elf_symbol_from_bfd_symbol): Omit space in debugging
809 output.
810 (elf_symbol_flags): Add debug function to decode flags so that
811 defining DEBUG to be 4 will compile again.
812 (elf_debug_section): Fix typo in debug output.
813
814 Fri Apr 14 16:03:04 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
815
816 * config.bfd: Add m68*-*-elf*.
817 * elf32-m68k.c: Filled out implementation, except for dynamic
818 linking support.
819 * reloc.c (enum bfd_reloc_code_real): Added *_GOT_PCREL, *_GOTOFF,
820 *_PLT_PCREL, *_PLTOFF, *_68K_* relocations for ELF.
821 * libbfd.h, bfd-in2.h: Regenerated.
822
823 Thu Apr 13 14:28:04 1995 Torbjorn Granlund <tege@adder.cygnus.com>
824
825 * coff-m68k.c (COFF_DEFAULT_SECTION_ALIGNMENT_POWER): Change from
826 1 to 2.
827 (bfd_target): Change minimum section alignment from 1 to 2.
828
829 Wed Apr 12 12:40:04 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
830
831 * aoutx.h (machine_type, case bfd_arch_mips): Treat R8000 like
832 R6000 and R4000 for now.
833
834 Tue Apr 4 12:28:25 1995 Stan Shebs <shebs@andros.cygnus.com>
835
836 * mpw-config.in: New file, MPW version of configure.in.
837 * mpw-make.in: New file, MPW version of Makefile.in.
838 * hosts/mpw.h: New file, MPW host definitions.
839 * ecoffswap.h (ecoff_swap_pdr_in, ecoff_swap_pdr_in) [MPW_C]:
840 Alternate versions without ECOFF_64 that chokes MPW C.
841 * coffswap.h (coff_swap_scnhdr_out): Add alternative version with
842 partly-expanded macros.
843
844 Thu Mar 30 14:56:21 1995 Ian Lance Taylor <ian@cygnus.com>
845
846 * reloc.c (bfd_perform_relocation): Don't bother to check for
847 overflow if the symbol is undefined.
848
849 Thu Mar 30 14:32:26 1995 H.J. Lu (hjl@nynexst.com)
850
851 * config.bfd: Change linux to default to elf. Using
852 i[345]86-*-linuxaout will build a library which defaults to a.out.
853 * config/i386-laout.mt: Rename from old config/i386-linux.mt.
854 * config/i386-linux.mt: Rename from old config/i386-lelf.mt.
855 Comment out EXTRALIBS.
856 * config/i386-lelf.mt: Remove.
857
858 Wed Mar 29 12:01:30 1995 Ian Lance Taylor <ian@cygnus.com>
859
860 * coff-i960.c (coff_i960_relocate): Cache the section symbol in
861 the used_by_bfd field of the section, to avoid looping for each
862 reloc.
863
864 * cpu-h8500.c (arch_info_struct): Change name from "H8/300" to
865 "h8300" for consistency with other cpu-* files.
866
867 Tue Mar 28 15:14:11 1995 Ian Lance Taylor <ian@cygnus.com>
868
869 * bout.c (b_out_canonicalize_reloc): Handle SEC_CONSTRUCTOR
870 sections.
871 (b_out_get_reloc_upper_bound): Likewise.
872
873 * linker.c (generic_link_add_symbol_list): Skip constructor
874 symbols which the main linker code did not do anything with.
875 (_bfd_generic_link_output_symbols): Use udata.p if it is set,
876 rather than looking the symbol up in the hash table. Just pass
877 through constructor symbols for which udata.p is not set. If the
878 linker defined the symbol, clear the constructor flag.
879
880 Tue Mar 21 10:50:32 1995 Jeff Law (law@snake.cs.utah.edu)
881
882 * som.c (som_set_reloc_info): Sign extend constants from
883 R_DATA_OVERRIDE fixups.
884 * libhppa.h (sign_extend): Renamed from sign_ext. Fix.
885 (low_sign_extend): Likewise.
886
887 Mon Mar 20 22:39:10 1995 Jeff Law (law@snake.cs.utah.edu)
888
889 * som.c (som_slurp_symbol_table): Tighten test to determine
890 what symbols are section symbols.
891
892 Sat Mar 18 01:54:45 1995 Ian Lance Taylor <ian@cygnus.com>
893
894 * elfcode.h (elf_bfd_link_add_symbols): An empty archive is OK.
895
896 Fri Mar 17 16:29:02 1995 Jeff Law (law@snake.cs.utah.edu)
897
898 * som.c (som_bfd_copy_private_section_data): Just return true when
899 either the input or output section isn't attached to a SOM BFD.
900 (som_bfd_copy_private_bfd_data): Similarly for BFD private data.
901
902 Fri Mar 17 11:50:34 1995 Ian Lance Taylor <ian@cygnus.com>
903
904 * elfcode.h (elf_link_add_object_symbols): Check whether a dynamic
905 object has already been included, and ignore it the second time.
906
907 Wed Mar 15 11:56:40 1995 Ian Lance Taylor <ian@cygnus.com>
908
909 * elf32-sparc.c (elf_sparc_howto_table): Change R_SPARC_GOT13 from
910 complain_overflow_bitfield to complain_overflow_signed.
911
912 * libelf.h (bfd_elf32__write_relocs): Don't declare.
913 (bfd_elf64__write_relocs): Don't declare.
914
915 Tue Mar 14 05:54:33 1995 Ken Raeburn (raeburn@kr-pc.cygnus.com)
916
917 * stab-syms.c (aout_stab_name): Moved aout_stab_names to be local
918 to this function. Recoded function to stop using table, to
919 improve performance (on i486-netbsd host). Left old version
920 intact under "#if 0" for further performance testing.
921
922 Mon Mar 13 13:48:49 1995 Ian Lance Taylor <ian@cygnus.com>
923
924 * elfcode.h (write_relocs): Make static. Use PTR argument as a
925 pointer to a boolean variable set to true if something fails.
926 Cast to PTR rather than void *.
927 (sym_is_global): Rewrite for clarity.
928 (map_program_segments): If the program header size is too small,
929 call _bfd_error_handler and return failure rather than aborting.
930 (NAME(bfd_elf,write_object_contents)): Pass boolean variable when
931 calling write_relocs.
932 (elf_symbol_from_bfd_symbol): Use BFD_ASSERT rather than abort.
933 (struct elf_info_failed): Define.
934 (NAME(bfd_elf,size_dynamic_sections)): Declare variables in inner
935 blocks. Pass elf_info_failed structure when calling
936 elf_export_symbol and elf_adjust_dynamic_symbol.
937 (elf_export_symbol): Treat data argument as elf_info_failed rather
938 than bfd_link_info. Set failed field on error.
939 (elf_adjust_dynamic_symbol): Likewise.
940 (struct elf_finfo_failed): Define.
941 (elf_bfd_final_link): Pass elf_finfo_failed structure when calling
942 elf_link_output_extsym. Use BFD_ASSERT rather than abort.
943 (elf_link_output_extsym): Treat data argument as elf_finfo_failed
944 rather than elf_final_link_info. Set failed field on error.
945 (elf_link_input_bfd): Use BFD_ASSERT rather than abort.
946 (elf_reloc_link_order): Likewise.
947
948 * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Only write
949 out PLTRELSZ, PLTREL and JMPREL relocs if there is a .rela.plt
950 section. Solaris 2.4 apparently does not handle empty reloc
951 information correctly.
952
953 * archive.c (bsd_write_armap): Cast getuid and getgid results to
954 long, and print with %ld.
955
956 start-sanitize-arc
957 Sun Mar 12 05:22:10 1995 Doug Evans <dje@chestnut.cygnus.com>
958
959 * elf32-arc.c (elf_arc_howto_table): Relocs with implicit addends
960 don't work too well with zero src_masks. Correct values.
961 end-sanitize-arc
962
963 Fri Mar 10 16:41:05 1995 Ian Lance Taylor <ian@cygnus.com>
964
965 * aoutx.h (translate_to_native_sym_flags): Always use the output
966 section if it is not NULL.
967
968 Thu Mar 9 15:06:25 1995 Ian Lance Taylor <ian@cygnus.com>
969
970 * coffswap.h (coff_swap_scnhdr_out): If the line number count or
971 the reloc count does not fit, print an error and return 0.
972 * coffcode.h (coff_write_object_contents): Check return value of
973 coff_swap_scnhdr_out.
974 * ecoff.c (_bfd_ecoff_write_object_contents): Check return value
975 of bfd_coff_swap_scnhdr_out.
976
977 * bfd.c: Include <stdarg.h> or <varargs.h>, depending upon
978 ANSI_PROTOTYPES.
979 (bfd_error_handler_type): New global type.
980 (_bfd_error_program_name): New static variable.
981 (_bfd_default_error_handler): New static function.
982 (_bfd_error_handler): New BFD private global variable.
983 (bfd_set_error_handler): New globally visible function.
984 (bfd_set_error_program_name): New globally visible function.
985 * libbfd-in.h (_bfd_error_handler): Declare.
986 * bfd-in2.h, libbfd.h: Rebuild.
987
988 * aoutx.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter,
989 and use it instead of bfd_get_symcount. Check r_index after
990 setting r_extern based on whether this is a base relative reloc.
991 (NAME(aout,swap_std_reloc_IN)): Add symcount parameter, and use it
992 instead of bfd_get_symcount.
993 (NAME(aout,slurp_reloc_table)): Pass bfd_get_symcount to reloc
994 swap routines.
995 * libaout.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter
996 to declaration.
997 (NAME(aout,swap_std_reloc_in)): Likewise.
998 * sunos.c (sunos_canonicalize_dynamic_reloc): Pass
999 info->dynsym_count to reloc swap routines.
1000 * aout-ns32k.c (MY_swap_std_reloc_in): Add symcount parameter.
1001 * hp300hpux.c (MY(swap_std_reloc_in)): Likewise.
1002 (MY(slurp_reloc_table)): Pass bfd_get_symcount to reloc swap
1003 routine.
1004 * i386lynx.c (NAME(lynx,swap_ext_reloc_in)): Add symcount
1005 parameter.
1006 (NAME(lynx,swap_std_reloc_in)): Likewise.
1007 (NAME(lynx,slurp_reloc_table)): Pass bfd_get_symcount to reloc
1008 swap routines.
1009
1010 Thu Mar 9 12:04:05 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1011
1012 * bfd.c (bfd_merge_private_bfd_data): New function vector to be
1013 called by the linker to merge any private bfd data of the input
1014 files and the output file. Used by the PowerPC ELF support to
1015 check whether -mrelocatable is used for all modules.
1016 (bfd_set_private_flags): New function vector to be called by the
1017 assembler to set private flags. Used by the PowerPC ELF support
1018 to set that a particular object file was assembled with the
1019 -mrelocatable option.
1020
1021 * targets.c (BFD_JUMP_TABLE_COPY): Add intiialization of the
1022 bfd_merge_private_bfd_data and bfd_set_private_flags function
1023 vectors.
1024
1025 * bfd-in2.h, libbfd-in.h: Rebuild with bfd.c and targets.c
1026 changes.
1027
1028 * elf32-ppc.c (ppc_elf_set_private_flags): New function to set the
1029 ELF e_flags field.
1030 (ppc_elf_copy_private_bfd_data): Copy the e_flags field from the
1031 input file to the output file.
1032 (ppc_elf_merge_private_bfd_data): Check for a mismatch between the
1033 e_flags field of all of the linker input files.
1034
1035 * libelf.h (elf_obj_tdata): Add ppc_flags_init field so that the
1036 PowerPC support can check if compataible e_flags are present.
1037
1038 * aout-target.h: Add NOP for the bfd_merge_private_bfd_data
1039 and bfd_set_private_flags function vectors.
1040 * coffcode.h: Ditto.
1041 * elf32-target.h: Ditto.
1042 * elf64-target.h: Ditto.
1043 * libbfd.h: Ditto.
1044 * libecoff.h: Ditto.
1045 * som.c: Ditto.
1046
1047 Wed Mar 8 00:53:54 1995 Ian Lance Taylor <ian@cygnus.com>
1048
1049 * cpu-mips.c (arch_info_struct): Add mips:8000 entry.
1050
1051 * elfcode.h (swap_out_syms): Mark an undefined BSF_WEAK symbol as
1052 STB_WEAK rather than STB_GLOBAL.
1053
1054 start-sanitize-arc
1055 Tue Mar 7 20:34:43 1995 Doug Evans <dje@chestnut.cygnus.com>
1056
1057 * configure.in (SELECT_VECS): Split bfd_elf32_arc_vec into big/little.
1058 * targets.c (bfd_target_vector): Likewise.
1059 * elf32-arc.c (TARGET_BIG_SYM): Define.
1060 (TARGET_BIG_NAME): Define.
1061 * config/arc-elf.mt (DEFAULT_VECTOR): Set to bfd_elf32_littlearc_vec.
1062 (SELECT_VECS): Add bfd_elf32_bigarc_vec.
1063 end-sanitize-arc
1064
1065 Tue Mar 7 12:23:47 1995 Ian Lance Taylor <ian@cygnus.com>
1066
1067 * coffcode.h (bfd_coff_backend_data): Add new field
1068 _bfd_coff_adjust_symndx.
1069 (bfd_coff_adjust_symndx): Define.
1070 (coff_adjust_symndx): Define as NULL if not already defined.
1071 (bfd_coff_std_swap_table): Initialize new field to
1072 coff_adjust_symndx.
1073 * cofflink.c (coff_link_input_bfd): Call coff_adjust_symndx if it
1074 is defined.
1075 * coff-a29k.c (coff_a29k_adjust_symndx): New static function.
1076 (coff_adjust_symndx): Define before including coffcode.h.
1077 * libcoff.h: Rebuild.
1078
1079 * format.c (bfd_check_format_matches): Skip binary_vec when
1080 searching through bfd_target_vector.
1081
1082 * elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking
1083 sh_size.
1084
1085 Mon Mar 6 23:31:36 1995 Doug Evans <dje@chestnut.cygnus.com>
1086
1087 * elfcode.h (elf_sort_hdrs): Keep SHT_NOBITS sections after
1088 !SHT_NOBITS ones.
1089
1090 Mon Mar 6 09:53:08 1995 Jeff Law (law@snake.cs.utah.edu)
1091
1092 * cpu-hppa.c (arch_info_struct): Support both PA1.0 and PA1.1
1093 machine types.
1094 (bfd_hppa_arch): Link in both PA1.0 and PA1.1 architecture info
1095 structures.
1096 * libhppa.h (enum pa_arch): New enumeration to describe the
1097 different variants of the PA architecture.
1098 * som.c (som_object_setup): Use new enumeration to set machine
1099 type.
1100 (som_finish_writing): If the machine type is PA1.1, then use the
1101 PA1.1 machine identifier in the output file.
1102
1103 Thu Mar 2 15:58:24 1995 Ian Lance Taylor <ian@cygnus.com>
1104
1105 * aoutx.h (NAME(aout,swap_ext_reloc_in)): Treat the index of a
1106 base relative reloc as an index into the symbol table, regardless
1107 of the setting of r_extern.
1108 (NAME(aout,swap_std_reloc_in)): Likewise.
1109
1110 * aoutx.h (NAME(aout,set_section_contents)): Double check that the
1111 caller is writing to a valid section.
1112
1113 Thu Mar 2 14:37:57 1995 Bryan Ford <baford@cs.utah.edu>
1114
1115 * binary.c: Add support for reading binary files. Loads the raw
1116 contents of the file into a data section and wraps some symbols
1117 around it. The symbols `_binary_<filename>_start' and
1118 `_binary_<filename>_end' indicate the start and end of the data,
1119 while `_binary_<filename>_size' is an absolute symbol whose value
1120 is the size of the data. <filename> is the name of the binary
1121 input file, with all non-alphanumeric characters converted to
1122 underscores.
1123
1124 * archures.c (bfd_arch_get_compatible): Assume users knows what
1125 they're doing if one of the architectures is bfd_arch_unknown.
1126
1127 Wed Mar 1 17:30:46 1995 Michael Meissner <meissner@cygnus.com>
1128
1129 * elf32-ppc.c (elf_powerpc_howto_table): For relocation
1130 R_PPC_GOT16, change complain_on_overflow to be
1131 complain_overflow_signed.
1132
1133 Wed Mar 1 11:52:55 1995 Jason Molenda <crash@phydeaux.cygnus.com>
1134
1135 * configure.host: Recognize powerpc-*-aix*.
1136
1137 Wed Mar 1 11:57:39 1995 Ian Lance Taylor <ian@cygnus.com>
1138
1139 * coff-i960.c (COFF_PAGE_SIZE): Define.
1140
1141 * configure.in: Rewrite output of TDEFAULTS to avoid relying on
1142 semantics of single quotes in parameter substitution.
1143
1144 Tue Feb 28 12:53:09 1995 Ian Lance Taylor <ian@cygnus.com>
1145
1146 * elfcode.h (elf_sort_hdrs): Sort empty sections before non-empty
1147 sections, if they have the same VMA.
1148
1149 * config.bfd (i[345]86-*-linuxelf*): New target. Use i386-lelf.
1150 (i[345]86-*-gnuelf*): New target. Use i386-gelf.
1151 * config/i386-lelf.mt: New file.
1152 * config/i386-gelf.mt: New file.
1153
1154 Mon Feb 27 12:58:25 1995 Kung Hsu <kung@mexican.cygnus.com>
1155
1156 * config.bfd: add a29k-*-vxworks configuration.
1157
1158 Wed Feb 22 14:40:26 1995 Ian Lance Taylor <ian@cygnus.com>
1159
1160 * libaout.h (NAME(aout,slurp_reloc_table)): Change declaration to
1161 use reloc_howto_type rather than const struct reloc_howto_struct.
1162
1163 Tue Feb 21 18:19:22 1995 Ian Lance Taylor <ian@cygnus.com>
1164
1165 * bout.c (b_out_slurp_reloc_table): Don't return an error if asked
1166 for relocations for the .bss section.
1167
1168 Tue Feb 21 15:13:05 1995 Jeff Law (law@snake.cs.utah.edu)
1169
1170 * som.c (som_bfd_ar_write_symbol_stuff): Handle objects with odd
1171 lengths.
1172
1173 Fri Feb 17 12:34:36 1995 Michael Meissner <meissner@cygnus.com>
1174
1175 * elf32-ppc.c (ppc_elf_got16_reloc): Make GOT style relocs add
1176 32768, so the GOT pointer can point to 16384 pointers, instead of
1177 8192.
1178
1179 Fri Feb 17 11:45:38 1995 Ian Lance Taylor <ian@cygnus.com>
1180
1181 * hosts/sysv4.h: Include <unistd.h>, <stdlib.h>, and <time.h>.
1182 Only define SEEK_SET and SEEK_CUR if they are not already defined.
1183 Remove all external function declarations.
1184
1185 * syms.c (bfd_decode_symclass): Return 'W' for a weak symbol.
1186
1187 * coffgen.c (coff_real_object_p): Set start address and flags
1188 before calling coff_mkobject_hook. Restore them on failure.
1189 * ecoff.c (_bfd_ecoff_mkobject_hook): If not ECOFF_AOUT_ZMAGIC,
1190 clear D_PAGED.
1191
1192 * coffgen.c: Reindented.
1193
1194 Thu Feb 16 14:37:23 1995 Doug Evans <dje@cygnus.com>
1195
1196 * reloc.c (bfd_perform_relocation): Don't use bitpos in overflow
1197 calculations.
1198 (bfd_install_relocation): Likewise.
1199
1200 Thu Feb 16 13:22:29 1995 Ian Lance Taylor <ian@cygnus.com>
1201
1202 * hosts/std-host.h: Remove all function declarations which return
1203 int or void, except the one for free.
1204
1205 Wed Feb 15 14:54:18 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1206
1207 * elf32-ppc.c (elf_powerpc_howto_table): Use a destination mask of
1208 0xffffffff for R_PPC_REL32, not 0.
1209 (powerpc_reloc_map): Add low 16 bit, high 16 bit, and high 16 bit
1210 adjusted relocations.
1211
1212 Tue Feb 14 17:47:17 1995 Ian Lance Taylor <ian@cygnus.com>
1213
1214 * elf32-mips.c (struct mips_elf_find_line): Define.
1215 (mips_elf_find_nearest_line): New static function.
1216 (bfd_elf32_find_nearest_line): Define.
1217 * libelf.h (struct elf_obj_tdata): Add find_line_info field.
1218
1219 * ecoff.c (_bfd_ecoff_swap_tir_in): Move to ecofflink.c.
1220 (_bfd_ecoff_swap_tir_out): Likewise.
1221 (_bfd_ecoff_swap_rndx_in): Likewise.
1222 (_bfd_ecoff_swap_rndx_out): Likewise.
1223 (cmp_fdrtab_entry): Likewise.
1224 (mk_fdrtab): Likewise.
1225 (lookup): Likewise.
1226 (_bfd_ecoff_find_nearest_line): Just call _bfd_ecoff_locate_line
1227 to do most of the work. Allocate find_line_info if necessary.
1228 * ecofflink.c: Include "aout/stab_gnu.h".
1229 (_bfd_ecoff_swap_tir_in): Move in from ecoff.c.
1230 (_bfd_ecoff_swap_tir_out): Likewise.
1231 (_bfd_ecoff_swap_rndx_in): Likewise.
1232 (_bfd_ecoff_swap_rndx_out): Likewise.
1233 (cmp_fdrtab_entry): Likewise. Use PTR instead of void *.
1234 (mk_fdrtab): Move in from ecoff.c. Add debug_info, debug_swap,
1235 and line_info arguments, and use them instead of ecoff_data.
1236 (fdrtab_lookup): Move in from lookup in ecoff.c. Remove abfd
1237 argument, add line_info argument. Use it instead of ecoff_data.
1238 (_bfd_ecoff_locate_line): New function, mostly from the old
1239 _bfd_ecoff_find_nearest_line in ecoff.c.
1240 * libecoff.h (ecoff_data_type): Remove find_buffer, fdrtab_len and
1241 fdrtab fields, replacing them find_line_info field.
1242 (_bfd_ecoff_swap_tir_in): Declare.
1243 (_bfd_ecoff_swap_tir_out): Declare.
1244 (_bfd_ecoff_swap_rndx_in): Declare.
1245 (_bfd_ecoff_swap_rndx_out): Declare.
1246 * libbfd-in.h (_bfd_ecoff_locate_line): Declare.
1247 * libbfd.h: Rebuild.
1248 * configure.in: Don't use ecoff.o for bfd_elf32_bigmips_vec or
1249 bfd_elf32_littlemips_vec.
1250 * Makefile.in: Rebuild dependencies.
1251
1252 Tue Feb 14 14:04:22 1995 Michael Meissner <meissner@tiktok.cygnus.com>
1253
1254 * libelf.h (elf_backend_data): Add fields elf_machine_alt1 and
1255 elf_machine_alt2 which provide alternate versions of the machine
1256 code.
1257
1258 * elf32-ppc.c (ELF_MACHINE_ALT1, ELF_MACHINE_ALT2): Define to
1259 recognize old versions of the PowerPC machine code.
1260
1261 * elf32-target.h (elf32_bed): Initialize alternate machine code
1262 fields defined by ELF_MACHINE_ALT1 and ELF_MACHINE_ALT2.
1263
1264 * elf64-target.h (elf64_bed): Initialize alternate machine code
1265 fields defined by ELF_MACHINE_ALT1 and ELF_MACHINE_ALT2.
1266
1267 * elfcode.h (elf_object_p, elf_core_file_p): In addition to the
1268 main machine code field, check the two alternate machine code
1269 fields.
1270
1271 Tue Feb 14 12:46:48 1995 Ian Lance Taylor <ian@cygnus.com>
1272
1273 * aoutf1.h (MACHTYPE_OK): Don't define if already defined. Don't
1274 accept M_SPARC if bfd_arch_sparc is not in the list of supported
1275 architectures, and don't accept a 680x0 machine type if
1276 bfd_arch_m68k is not in the list of supported architectures.
1277 * aout0.c (MACHTYPE_OK): Define.
1278
1279 Mon Feb 13 23:25:38 1995 Ian Lance Taylor <ian@cygnus.com>
1280
1281 * aoutx.h (NAME(aout,swap_ext_reloc_in)): Don't return a pointer
1282 to garbage if the symbol index is out of range.
1283 (NAME(aout,swap_std_reloc_in)): Likewise.
1284
1285 start-sanitize-arc
1286 Mon Feb 13 09:35:30 1995 Doug Evans <dje@canuck.cygnus.com>
1287
1288 * elf32-arc.c (reloc_type): New type R_ARC_B26.
1289 (elf_arc_howto_table): Likewise.
1290 * reloc.c (BFD_RELOC_ARC_B26): Likewise.
1291
1292 Thu Feb 9 17:31:40 1995 Doug Evans <dje@canuck.cygnus.com>
1293
1294 * archures (bfd_mach_arc_base): #define.
1295 (bfd_mach_arc_host, bfd_mach_arc_graphics, bfd_mach_arc_audio): Ditto.
1296 * cpu-arc.c (arch_info_struct): Define entries for each cpu variant.
1297 (bfd_arc_arch): Link each one in.
1298 (arc_get_mach): New function.
1299 * elf32-arc.c (arc_info_to_howto_rel): Renamed from arc_info_to_howto.
1300 (elf_info_to_howto_rel): Update.
1301 (arc_elf_object_p, arc_elf_final_write_processing): New functions.
1302 (elf_backend_object_p): Define.
1303 (elf_backend_final_write_processing): Define.
1304 (USE_REL): Define.
1305 end-sanitize-arc
1306
1307 Thu Feb 9 18:36:52 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
1308
1309 * Makefile.in (BFD32_BACKENDS): Add i386msdos.o.
1310
1311 Thu Feb 9 12:02:35 1995 Ian Lance Taylor <ian@cygnus.com>
1312
1313 * i386linux.c (NEEDS_SHRLIB): Define.
1314 (linux_tally_symbols): Crash if a NEEDS_SHRLIB symbol is
1315 undefined. From hjl@nynexst.com (H.J. Lu).
1316
1317 Wed Feb 8 17:26:00 1995 Ian Lance Taylor <ian@cygnus.com>
1318
1319 * linker.c (generic_link_check_archive_element): Allocate common
1320 symbol information structure. Don't bother to check for common
1321 symbol size overflow.
1322 (_bfd_generic_link_add_one_symbol): Likewise.
1323 * aoutx.h (aout_link_check_ar_symbols): Likewise.
1324 * linker.c (generic_link_check_archive_element): Adjust references
1325 to common symbol information for new structure.
1326 (_bfd_generic_link_add_one_symbol): Likewise.
1327 * aoutx.h (aout_link_check_ar_symbols): Likewise.
1328 (aout_link_add_symbols): Likewise.
1329 * ecoff.c (ecoff_link_add_externals): Likewise.
1330 * elfcode.h (elf_link_add_object_symbols): Likewise.
1331 (elf_link_output_extsym): Likewise.
1332 * sunos.c (sunos_add_one_symbol): Likewise.
1333
1334 Wed Feb 8 09:53:42 1995 Doug Evans <dje@canuck.cygnus.com>
1335
1336 * elfcode.h (elf_sort_hdrs): Put SHT_NOBITS sections after !SHT_NOBITS.
1337
1338 Tue Feb 7 16:27:33 1995 Jeff Law (law@snake.cs.utah.edu)
1339
1340 * som.c (som_bfd_find_nearest_line): Just return false, don't
1341 abort.
1342
1343 Tue Feb 7 14:43:33 1995 Ken Raeburn (raeburn@kr-pc.cygnus.com)
1344
1345 * ecoff.c: Reformatted some comments and brace constructs in
1346 recent changes to GNU style.
1347 (cmp_fdrtab_entry, mk_fdrtab, lookup): Use old-style function
1348 definitions.
1349
1350 Tue Feb 7 14:21:28 1995 Ian Lance Taylor <ian@cygnus.com>
1351
1352 * ecoffswap.h (ecoff_swap_pdr_in): Zero out intern before setting
1353 any of the fields.
1354
1355 Mon Feb 6 20:01:24 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
1356
1357 Sat Feb 4 14:20:24 1995 David Mosberger-Tang <davidm@piston.cs.arizona.edu>
1358
1359 * ecoffswap.h (ecoff_swap_pdr_in, ecoff_swap_pdr_out): added
1360 internalizing/externalizing new "prof" field.
1361
1362 * libecoff.h (ecoff_tdata): added fdrtab.
1363
1364 * ecoff.c (_bfd_ecoff_find_nearest_line): Fixed.
1365
1366 Mon Feb 6 14:25:24 1995 Ian Lance Taylor <ian@cygnus.com>
1367
1368 * libelf.h (struct elf_link_hash_table): Add saw_needed field.
1369 * elfcode.h (elf_link_add_object_symbols): Set saw_needed if
1370 DT_NEEDED seen in .dynamic section.
1371 (elf_link_output_extsym): Warn if an undefined symbol is
1372 only referenced from a dynamic object, and not making a shared
1373 object, and saw_needed is false.
1374 * elf.c (_bfd_elf_link_hash_table_init): Initialize saw_needed.
1375
1376 * libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Don't define.
1377 * elfcode.h (elf_link_add_object_symbols): Don't clear or set
1378 ELF_LINK_HASH_DEFINED_WEAK.
1379 (elf_link_output_extsym): Don't check ELF_LINK_HASH_DEFINED_WEAK.
1380
1381 Distinguish a weak defined symbol from a regular defined symbol.
1382 * linker.c (enum link_action): Add DEFW.
1383 (link_action): Add bfd_link_hash_defweak column.
1384 (_bfd_generic_link_add_one_symbol): Add DEFW case. Handle
1385 bfd_link_hash_defweak in a few other cases.
1386 * Many files (bfd_link_hash_undefweak): Renamed from
1387 bfd_link_hash_weak.
1388 * aoutx.h (aout_link_write_symbols): Handle bfd_link_hash_defweak.
1389 (aout_link_write_other_symbol): Likewise.
1390 (aout_link_input_section_std): Likewise.
1391 (aout_link_input_section_ext): Likewise.
1392 * bout.c (get_value): Likewise.
1393 * coff-a29k.c (coff_a29k_relocate_section): Likewise.
1394 * coff-alpha.c (alpha_convert_external_reloc): Likewise.
1395 (alpha_relocate_section): Likewise.
1396 * coff-mips.c (mips_relocate_section): Likewise.
1397 (mips_relax_section): Likewise.
1398 (bfd_mips_ecoff_create_embedded_relocs): Likewise.
1399 * cofflink.c (coff_write_global_sym): Likewise.
1400 (_bfd_coff_generic_relocate_section): Likewise.
1401 * ecoff.c (ecoff_link_add_externals): Likewise.
1402 (ecoff_link_write_external): LIkewise.
1403 * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
1404 (elf32_hppa_size_stubs): Likewise.
1405 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Likewise.
1406 (elf_i386_relocate_section): Likewise.
1407 (elf_i386_finish_dynamic_symbol): Likewise.
1408 * elf32-mips.c (mips_elf_output_extsym): Likewise.
1409 (mips_elf_relocate_section): Likewise.
1410 * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
1411 (elf32_sparc_relocate_section): Likewise.
1412 * elfcode.h (elf_link_add_object_symbols): Likewise.
1413 (elf_adjust_dynamic_symbol): Likewise.
1414 (elf_bfd_final_link): Likewise.
1415 (elf_link_output_extsym): Likewise.
1416 * i386linux.c (linux_add_one_symbol): Likewise.
1417 (linux_tally_symbols): Likewise.
1418 (linux_finish_dynamic_link): Likewise.
1419 * linker.c (_bfd_generic_link_output_symbols): Likewise.
1420 (set_symbol_from_hash): Likewise.
1421 * reloc16.c (bfd_coff_reloc16_get_value): Likewise.
1422 (bfd_perform_slip): Likewise.
1423 * sunos.c (sunos_add_one_symbol): Likewise.
1424 (sunos_scan_std_relocs): Likewise.
1425 (sunos_scan_ext_relocs): Likewise.
1426 (sunos_scan_dynamic_symbol): Likewise.
1427 (sunos_write_dynamic_symbol): Likewise.
1428
1429 Mon Feb 6 03:20:17 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
1430
1431 Changes from Bryan Ford, baford@schirf.cs.utah.edu:
1432 * config.bfd (i[345]86-*-msdos*): New target.
1433 * configure.in (i386msdos_vec): Handle it.
1434 * i386msdos.c: New file.
1435 * config/i386-msdos.mt: New file.
1436 * bfd.c (enum bfd_error): Added new value bfd_error_file_too_big.
1437 (bfd_errmsgs): Added string to table.
1438 * libaout.h (reloc_type-lookup): Declare it.
1439 * targets.c (enum bfd_flavour): Added bfd_target_msdos_flavour.
1440 (i386msdos_vec): Declare.
1441 (bfd_target_vector): Add it to the list.
1442 * bfd-in2.h: Regenerated.
1443
1444 Wed Feb 1 01:32:14 1995 Jeff Law (law@snake.cs.utah.edu)
1445
1446 * som.c (som_set_reloc_info, case R_DATA_ONE_SYMBOL): If there's
1447 nothing in R_DATA_OVERRIDE, then try to find the addend in the
1448 section's contents.
1449 (som_write_fixups): Ignore the addend in a R_DATA_ONE_SYMBOL fixup.
1450
1451 * som.c (som_object_setup): More heruistics to detect the
1452 braindamaged HP OSF1 linker.
1453 (setup_sections): Don't forget to free subspace_sections if we get
1454 an error.
1455 (som_slurp_string_table): Allocate strings on this bfd's obstack
1456 rather than directly out of the heap.
1457 (som_slurp_symbol_table): Likewise for the saved copy of the
1458 canonical symbols.
1459 (som_slurp_reloc_table): Likewise for the saved copy of the
1460 canonical relocations. Free the native relocations when we're
1461 done with them.
1462
1463 Tue Jan 31 21:53:28 1995 Doug Evans <dje@canuck.cygnus.com>
1464
1465 * libelf.h (struct elf_obj_tdata): New member program_header_size.
1466 * elfcode.h (get_program_header_size): New parameters sorted_hdrs,
1467 count, and maxpagesize. All callers updated.
1468 If sorted_hdrs is non-NULL, use it to compute the number of segments.
1469 Save result in case called again.
1470 (assign_file_positions_except_relocs): Sort headers before calling
1471 get_program_header_size.
1472
1473 Tue Jan 31 15:27:53 1995 Ian Lance Taylor <ian@cygnus.com>
1474
1475 * elfcode.h (map_program_segments): Add sorted_hdrs parameter.
1476 Search through it rather than through unsorted section headers.
1477 (assign_file_positions_except_relocs): Pass sorted_hdrs to
1478 map_program_segments.
1479
1480 Mon Jan 30 22:04:53 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
1481
1482 * ecoff.c (_bfd_ecoff_find_nearest_line): Fix problems in range
1483 checking. Expect argument OFFSET to be section-relative. From
1484 David Mosberger-Tang, davidm@piston.cs.arizona.edu.
1485
1486 Mon Jan 30 11:22:11 1995 Ian Lance Taylor <ian@cygnus.com>
1487
1488 * elfcode.h (NAME(bfd_elf,record_link_assignment)): Don't do
1489 anything if we are not linking an ELF file.
1490 (NAME(bfd_elf,size_dynamic_sections)): Likewise.
1491
1492 Sat Jan 28 12:48:57 1995 Jeff Law (law@snake.cs.utah.edu)
1493
1494 * som.c (compare_subspaces): New function to sort subspaces by
1495 their location in the object file.
1496 (setup_sections): When computing the index for each subspace,
1497 handle case where setup_sections reads the subspaces in a
1498 different order that they appear in the object file.
1499 (som_is_space): Also examine the output section for the containing
1500 section.
1501 (som_is_subspace, som_is_container): Likewise.
1502 (som_begin_writing): Don't prepare or write fixups here. When
1503 writing the symbol strings, use the unsorted symbol table.
1504 (som_write_object_contents): Don't write the symbol table here.
1505 (som_finish_writing): Prepare and write the fixups here. Likewise
1506 for the symbol table.
1507 (som_bfd_derive_misc_symbol_info): Undefined symbols always have
1508 type SS_UNSAT regardless of BSF_EXPORT.
1509 (som_set_reloc_info): Unpack and attach argument location
1510 information for R_PCREL_CALL and R_ABS_CALL relocations.
1511
1512 * som.c (som_object_setup): New heuristic to determine if the
1513 entry and flags fields are switched in the exec header.
1514
1515 Sat Jan 28 00:16:01 1995 Ian Lance Taylor <ian@cygnus.com>
1516
1517 * elfcode.h (elf_link_add_object_symbols): Use *sym_hash instead
1518 of h if we might not be doing an ELF link.
1519
1520 Fri Jan 27 16:13:42 1995 Ian Lance Taylor <ian@cygnus.com>
1521
1522 * elf32-mips.c (mips_elf_final_link): If the size of an input
1523 .reginfo section is zero, force it to the correct size, since the
1524 linker emulation code may have clobbered it.
1525
1526 * elfcode.h (elf_sort_hdrs): Correct SHF_ALLOC test.
1527 (assign_file_positions_except_relocs): Free sorted_hdrs.
1528
1529 Thu Jan 26 09:00:12 1995 Steve Chamberlain <sac@splat>
1530
1531 * srec.c (srec_set_section_contents): Fix off by
1532 one end address calculation.
1533
1534 * config.bfd: (m68*-est-coff): New configuration.
1535
1536 Thu Jan 26 11:39:21 1995 Ian Lance Taylor <ian@cygnus.com>
1537
1538 * elfcode.h (elf_link_add_object_symbols): Only examine weakdef if
1539 we are using an ELF hash table.
1540
1541 * aoutx.h (NAME(aout,some_aout_object_p)): Always set EXEC_P if
1542 the start address is in the .text section, even if STAT_FOR_EXEC
1543 is set. Just use STAT_FOR_EXEC as an additional test.
1544
1545 Thu Jan 26 11:12:54 1995 Michael Meissner <meissner@cygnus.com>
1546
1547 * elfcode.h (prep_headers): Use EM_PPC instead of
1548 EM_CYGNUS_POWERPC.
1549
1550 * elf32-ppc.c (reloc_type): Add all System V.4 and eABI
1551 relocations currently defined.
1552 (powerpc_reloc_map): Adjust to new relocation names.
1553 (elf_powerpc_howto_table): Add most of the new relocations.
1554 (ELF_MACHINE_CODE): Use EM_PPC instead of EM_CYGNUS_POWERPC.
1555
1556 * config.bfd: Add support for powerpc-*-eabi.
1557
1558 * config/ppc-elf.mt: Add rs6000 architecture support to the
1559 PowerPC. Also add XCOFF support.
1560
1561 Wed Jan 25 23:26:13 1995 Ian Lance Taylor <ian@cygnus.com>
1562
1563 * coff-sh.c (CALC_ADDEND): Don't define.
1564 (coff_sh_relocate_section): Remove.
1565 (coff_relocate_section): Use _bfd_coff_generic_relocate_section.
1566
1567 Tue Jan 24 14:22:47 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
1568
1569 * elf32-mips.c (mips_elf_output_extsym): Set the value of the
1570 ECOFF symbol from the hash table entry.
1571
1572 Mon Jan 23 14:53:35 1995 Steve Chamberlain <sac@splat>
1573
1574 * coff-sh.c (coff_sh_relocate_section): Don't subtract
1575 vma twice.
1576
1577 Mon Jan 23 13:33:18 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
1578
1579 * coff-sh.c (sh_reloc): Don't ignore the previous contents of an
1580 R_SH_IMM32 reloc.
1581
1582 * config.bfd (i[345]86-*-gnu*): Set bfd_name to i386-gnu.
1583 * config/i386-gnu.mt: New file. Include ELF support.
1584
1585 * opncls.c (bfd_openstreamr): Call bfd_cache_init.
1586
1587 Fri Jan 20 11:44:45 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
1588
1589 * sunos.c (sunos_add_one_symbol): Only set the sunos specific
1590 fields if we are doing a sunos link.
1591
1592 Wed Jan 18 12:28:17 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
1593
1594 * cpu-h8300.c (h8300_info_struct): Change name from "H8/300" to
1595 "h8300" for consistency with other cpu-* files.
1596 (h8300h_info_struct): Change name from "H8/300H" to "h8300h".
1597 * coff-h8300.c (special): Remove unused variable diff.
1598
1599 Tue Jan 17 10:52:32 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
1600
1601 * bfd-in.h (bfd_byte, reloc_howto_type): Define here, not...
1602 * reloc.c (bfd_byte, reloc_howto_type): here.
1603 * Changed all occurrences of ``const struct reloc_howto_struct''
1604 to be ``reloc_howto_type'' instead.
1605 * bfd-in2.h, libbfd.h, libcoff.h: Rebuilt.
1606
1607 * opncls.c (bfd_openstreamr): New function.
1608 * bfd-in2.h: Rebuilt.
1609
1610 * elf32-mips.c (enum reloc_type): Define new relocs used on Irix.
1611 (elf_mips_howto_table): Add entries for new relocs.
1612 (mips_elf_section_from_shdr): Handle SHT_MIPS_MSYM,
1613 SHT_MIPS_DWARF, and SHT_MIPS_EVENTS.
1614 (mips_elf_fake_sections): Handle sections named .msym, .debug_*
1615 and .MIPS.events.*.
1616
1617 * srec.c (srec_init): Remove unused local variable i.
1618
1619 Sat Jan 14 19:09:48 1995 Steve Chamberlain <sac@jonny>
1620
1621 * archures.c, Makefile.in, targets.c, bfd-in2.h, coffcode.h,
1622 config.bfd, configure.in, config/w65.mt: Initial support for the W65.
1623
1624 Sun Jan 15 13:57:45 1995 Steve Chamberlain <sac@splat>
1625
1626 * opncls.c (bfd_fdopenr): Configure for WIN32.
1627
1628 Thu Jan 12 16:30:47 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
1629
1630 * Makefile.in (diststuff): Include `headers'.
1631
1632 * sunos.c (m68k_plt_first_entry, sparc_plt_first_entry): Now
1633 const.
1634 * tekhex.c (digs): Ditto.
1635 * elf32-i386.c (elf_i386_plt0_entry, elf_i386_plt_entry): Ditto.
1636
1637 * srec.c, tekhex.c: Include libiberty.h. Delete static array
1638 hex_value and replace references to it with references to
1639 hex_init, hex_p, and hex_value.
1640 * Makefile.in: Updated dependencies.
1641
1642 * archures.c (archures_init_table): Now const.
1643 (bfd_arch_init): Adjusted type of local var `ptable'.
1644 start-sanitize-rce
1645
1646 * Makefile.in (ALL_MACHINES): Include cpu-rce.o.
1647 (BFD32_BACKENDS): Include aout-rce.o.
1648 end-sanitize-rce
1649 start-sanitize-arc
1650
1651 * Makefile.in (ALL_MACHINES): Include cpu-arc.o.
1652 (BFD32_BACKENDS): Include elf32-arc.o.
1653 end-sanitize-arc
1654
1655 Thu Jan 12 09:33:24 1995 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
1656
1657 * hosts/symmetry.h: Redefine `shared' to enable compilation
1658 with the native Dynix cc compiler.
1659 * i386dynix.c: Include aoutx.h instead of using routines
1660 from aout32.c.
1661
1662 Wed Jan 11 21:31:41 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
1663
1664 * reloc.c (reloc_howto_type): Make typedef include `const'.
1665 * aout-ns32k.c, aoutx.h, bout.c, cf-m68klynx.c, coff-i386.c,
1666 coff-i960.c, coff-m68k.c, cofflink.c, cpu-ns32k.c, ecoff.c,
1667 elf32-hppa.c, elf32-i386.c, elf32-mips.c, elf32-sparc.c,
1668 elfcode.h, libbfd-in.h, linker.c, mipsbsd.c, nlm32-ppc.c, oasys.c,
1669 reloc.c, som.c: Don't use `const' in combination with
1670 `reloc_howto_type'.
1671 start-sanitize-arc
1672 * elf32-arc.c: Ditto.
1673 end-sanitize-arc
1674 * bfd-in2.h, libbfd.h: Regenerated.
1675
1676 * ecoff.c (ecoff_type_to_string): Local variable `buffer1' doesn't
1677 need to be static.
1678
1679 Wed Jan 11 14:36:41 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
1680
1681 * sunos.c (sunos_add_one_symbol): Don't core dump if a multiple
1682 definition of an absolute symbol is encountered.
1683
1684 * linker.c (_bfd_generic_link_add_one_symbol): Ignore
1685 redefinitions of an absolute symbol to the same value.
1686
1687 Mon Jan 9 15:51:32 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
1688
1689 * elfcode.h (elf_link_add_object_symbols): It's reasonable for no
1690 flags to be set, so don't insist otherwise.
1691
1692 Fri Jan 6 16:39:40 1995 Ian Lance Taylor <ian@sanguine.cygnus.com>
1693
1694 * elfcode.h (elf_slurp_symbol_table): Don't set BSF_GLOBAL for an
1695 undefined or common symbol.
1696 (elf_link_add_object_symbols): Likewise.
1697
1698 Wed Jan 4 14:14:05 1995 Jeff Law (law@snake.cs.utah.edu)
1699
1700 * som.c (bfd_section_from_som_symbol): Only return sections which
1701 correspond to subspaces.
1702
1703 * som.c (som_begin_writing): Don't forget to bump the
1704 total_subspaces when writing the unloadable subspaces.
1705
1706 Wed Dec 28 20:54:47 1994 Jeff Law (law@snake.cs.utah.edu)
1707
1708 * som.c (som_write_fixups): Use SEC_HAS_CONTENTS to identify
1709 bss-like sections.
1710 (som_get_section_contents): Likewise.
1711 (som_set_section_contents): Likewise.
1712
1713 Tue Dec 27 14:03:47 1994 Jeff Law (law@snake.cs.utah.edu)
1714
1715 * som.c (setup_sections): Turn off SEC_HAS_CONTENTS for bss-like
1716 sections.
1717
1718 Tue Dec 20 15:30:12 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
1719
1720 * coffgen.c (bfd_debug_section): Deleted.
1721 (coff_section_from_bfd_index): Return absolute section for debug
1722 symbol.
1723 (coff_write_symbol): Set BSF_DEBUGGING for C_FILE symbols. If
1724 BSF_DEBUGGING is set, set section to N_DEBUG.
1725 (coff_bfd_make_debug_symbol): Use absolute section.
1726
1727 * elfcode.h (assign_file_positions_except_relocs): In assertion,
1728 force all values to the same type.
1729
1730 Tue Dec 20 11:11:58 1994 Steve Chamberlain (sac@jonny.cygnus.com)
1731
1732 * coff-h8300.c (howto_table): All relocs get a special function.
1733 (special): Never do anything when linking -r.
1734
1735 Tue Dec 20 13:58:01 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1736
1737 * i386linux.c (linux_add_one_symbol): Don't do anything Linux
1738 specific if this is not a Linux hash table. From Eric Youngdale
1739 <eric@aib.com>.
1740
1741 Patches from kkojima@mix.or.jp (Kazumoto Kojima):
1742 * mipsbsd.c (mips_howto_table_ext): Change sizes of memory relocs
1743 apply to from two bytes to four bytes.
1744 * MY(reloc_howto_type_lookup): Handle BFD_RELOC_CTOR.
1745
1746 * elf32-i386.c (elf_i386_relocate_section): Correct and expand the
1747 list of cases for which relocation need not be computed.
1748 * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
1749
1750 start-sanitize-arc
1751 Tue Dec 20 09:01:01 1994 Doug Evans <dje@canuck.cygnus.com>
1752
1753 * elf32-arc.c (elf_arc_howto_table, R_ARC_B22_PCREL): Value is
1754 right-shifted 2 bits. Fix dst_mask.
1755 end-sanitize-arc
1756
1757 Mon Dec 19 23:09:16 1994 Jeff Law (law@snake.cs.utah.edu)
1758
1759 * elf32-hppa.c (elf32_hppa_read_symext_info): Delete do_locals and
1760 do_globals arguments, always read symbol extension information for
1761 globals and locals. All callers changed.
1762 (elf32_hppa_size_stubs): Rework to only read symbol extension
1763 information once for each input bfd. 10% improvement in linker
1764 performance.
1765
1766 Fri Dec 16 12:28:46 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1767
1768 * elfcode.h (elf_section_from_bfd_section): Check
1769 bfd_is_abs_section, etc., only after checking for the section in
1770 the BFD and after calling the backend routine.
1771
1772 Wed Dec 14 20:21:58 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1773
1774 * elfcode.h (elf_map_symbols): Only use section symbols whose
1775 value is the start of the section, checking output_offset when
1776 using output_section. When creating a new symbol, set the value
1777 to 0, since BFD symbol values are section relative.
1778
1779 Tue Dec 13 13:31:06 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1780
1781 * cpu-z8k.c (arch_info_struct): Make z8002 the default
1782 architecture.
1783
1784 Fri Dec 9 12:43:05 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1785
1786 * elfcode.h (elf_bfd_link_add_symbols): If the first object in the
1787 archive is not an ELF object, pass the archive to the add_symbols
1788 entry point appropriate for the first object. From Eric Youngdale
1789 <eric@aib.com>.
1790 * aoutx.h (NAME(aout,link_add_symbols)): Similar change if the
1791 first object is not an a.out object.
1792
1793 * elf32-i386.c (elf_i386_relocate_section): Don't compute
1794 relocation in cases where we won't use it.
1795 * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
1796
1797 Thu Dec 8 14:19:41 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
1798
1799 * pc532-mach.c (NAME): Define to use ns32kaout prefix.
1800 * ns32knetbsd.c (NAME): Ditto.
1801 (ns32kaout_32_get_section_contents): Define to standard aout-32
1802 version.
1803
1804 Fri Dec 2 13:56:49 1994 Ian Lance Taylor <ian@rtl.cygnus.com>
1805
1806 * coff-mips.c (mips_read_relocs): New static function, broken out
1807 of mips_relax_section.
1808 (mips_relax_section): Call mips_read_relocs.
1809 (bfd_mips_ecoff_create_embedded_relocs): New function.
1810 * bfd-in.h (bfd_mnips_ecoff_create_embedded_relocs): Declare.
1811 * bfd-in2.h: Rebuild.
1812
1813 Wed Nov 30 14:12:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
1814
1815 * coff-sh.c: Use _bfd_dummy_target instead of no_archive.
1816
1817 start-sanitize-arc
1818 Tue Nov 29 17:14:21 1994 Doug Evans <dje@canuck.cygnus.com>
1819
1820 * archures.c: Initial support for the ARC.
1821 * reloc.c, targets.c, config.bfd, configure.in, elfcode.h: Likewise.
1822 * bfd-in2.h: Regenerated.
1823 * libbfd.h: Likewise.
1824 * config/arc-elf.mt: New file.
1825 end-sanitize-arc
1826
1827 Tue Nov 29 14:00:19 1994 J.T. Conklin <jtc@.rtl.cygnus.com>
1828
1829 * config.bfd (i[345]86-*-freebsd*): Use i386-bsd as bfd_name.
1830 * configure.host (i[345]86-*-freebsd*): Use i386bsd as my_host.
1831
1832 Mon Nov 28 15:36:04 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
1833
1834 * config/m68k-nbsd.mt (DEFAULT_VECTOR): set to m68knetbsd_vec.
1835 * Makefile.in: Rebuilt dependancies.
1836 (CFILES): Added m68knetbsd.c.
1837 (HFILES): Added netbsd.h.
1838
1839 Wed Nov 23 19:21:41 1994 Steve Chamberlain (sac@jonny.cygnus.com)
1840
1841 * coff-sh.c (shlcoff_vec): New target vector.
1842 (no_archive): New function.
1843 * coffcode.h (coff_set_arch_mach_hook, coff_set_flags): Handle
1844 little endian SH.
1845 * configure.in: Handle shl.
1846 * targets.c (bfd_target_vector): Add shlcoff_vec.
1847 * config/sh-coff.mt (SELECT_VECS): Handle shl_coff_vec.
1848
1849 Wed Nov 23 10:50:13 1994 Jeff Law (law@snake.cs.utah.edu)
1850
1851 * elfcode.h (write_relocs): Do not subtract the section's vma from
1852 the reloc's offset when writing .o's. Instead add the section's
1853 vma to the reloc's offset when writing an executable or shared
1854 library.
1855
1856 Tue Nov 22 23:34:37 1994 Jeff Law (law@snake.cs.utah.edu)
1857
1858 * elf32-hppa.c (elf32_hppa_bfd_final_link_relocate): Do not add
1859 input_section->vma to the relocation's offset.
1860
1861 Mon Nov 21 12:37:25 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1862
1863 * srec.c (srec_get_reloc_upper_bound): Define.
1864 (srec_canonicalize_reloc): Define.
1865 (srec_bfd_reloc_type_lookup): Define.
1866 (srec_vec, symbolsrec_vec): Use BFD_JUMP_TABLE_RELOCS (srec).
1867
1868 Sat Nov 19 03:10:51 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
1869
1870 * configure.host (i[345]86-*-solaris*): Use solaris2 to
1871 enable extraction of procfs info from core file for GDB.
1872
1873 Thu Nov 17 17:37:39 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
1874
1875 * reloc.c (bfd_reloc_code_type): Add new value BFD_RELOC_12_PCREL.
1876 * bfd-in2.h, libbfd.h: Rebuilt.
1877
1878 Thu Nov 17 13:12:08 1994 Jeff Law (law@snake.cs.utah.edu)
1879
1880 * bfd/elf32-hppa.c (elf32_hppa_bfd_final_link_relocated): Use the
1881 vma from the output_section containing $global$ when computing
1882 global_vlaue.
1883
1884 Thu Nov 17 14:29:13 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1885
1886 * archive.c (_bfd_write_archive_contents): Round up the archive
1887 header size of the extended name table to an even number.
1888
1889 Wed Nov 16 16:08:06 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
1890
1891 * coff-sh.c: Deleted some code that was commented out or inside
1892 "#if 0".
1893 (COFF_LONG_FILENAMES): Define.
1894
1895 * cpu-sh.c (arch_info_struct): Convert name to lowercase, for
1896 consistency with other architectures.
1897
1898 Sat Nov 12 23:50:10 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
1899
1900 * elfcode.h (elf_export_symbol): Also export symbols which are
1901 referenced by a regular file.
1902
1903 Fri Nov 11 14:29:31 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1904
1905 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add
1906 export_dynamic argument, and handle it.
1907 (elf_export_symbol): New function.
1908 * bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration.
1909 (bfd_elf64_size_dynamic_sections): Update declaration.
1910 * bfd-in2.h: Rebuild.
1911
1912 Fri Nov 11 10:35:33 1994 Jeff Law (law@snake.cs.utah.edu)
1913
1914 * hpux-core.c (hpux_core_struct): Delete handles for the
1915 data, reg and stack sections. They're never used. Delete
1916 accessor macros.
1917 (make_bfd_asection): Use bfd_make_section_anyway since debugging
1918 cores from dynamic executables may have several sections with the
1919 same logical name.
1920 (hpux_core_core_file_p): Don't save handles to data, reg and
1921 stack sections. Handle CORE_TEXT, CORE_MMF and CORE_SHM.
1922
1923 Tue Nov 8 13:03:30 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1924
1925 * bout.c (callj_callback): Add new argument shrinking. Change all
1926 callers. Handle relocs against section symbols correctly. If not
1927 shrinking, don't subtract out dstidx; the subtraction is already
1928 in the object file.
1929
1930 Sun Nov 6 12:52:00 1994 Jeff Law (law@snake.cs.utah.edu)
1931
1932 * som.h: Conditionally include <shl.h> and <dl.h>.
1933
1934 Thu Nov 3 18:19:13 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
1935
1936 * Makefile.in (ALL_MACHINES): Include m68knetbsd.o.
1937
1938 * config/i386linux.mh (EXTRALIBS): Include -lm.
1939
1940 Patches from DJ Delorie:
1941 * coff-go32.c: Replacement file, uses coff-i386.c with minor
1942 changes.
1943 * coff-i386.c (TARGET_UNDERSCORE): allow other files to override
1944 underscore also
1945 * makefile.dos: del ctor.o, add cofflink.o and elf32.o
1946
1947 * aoutx.h (adjust_o_magic): If user set data section vma, use it
1948 to determine the default bss vma. Patch from Takada Hiroaki,
1949 hiro@is.s.u-tokyo.ac.jp.
1950 (machine_type, case bfd_arch_vax): Set *unknown to false. Patch
1951 from John David Anglin <dave@hiauly1.hia.nrc.ca>.
1952
1953 * configure.in (tb): Rename ns32knetbsd_vec to pc532netbsd_vec,
1954 since that's what it's called.
1955
1956 Wed Nov 2 15:24:51 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1957
1958 * archive.c (normalize): Change to take a BFD as an argument.
1959 Change VMS version to use bfd_alloc rather than malloc, so that we
1960 don't lose the memory forever.
1961 (_bfd_construct_extended_name_table): Check the name of an archive
1962 entry which is not being extended, and correct it if it is wrong.
1963 This is necessary in case the archive was constructed by another
1964 program which put an entry in the extended name table which we
1965 don't plan to put in ourselves. From jjc@jclark.com (James
1966 Clark).
1967 (bfd_dont_truncate_arname): Check return value of normalize.
1968
1969 Mon Oct 31 14:19:08 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
1970
1971 * elf32-hppa.c (ELF32_PARISC_SX_SIZE): Define.
1972 (ELF32_PARISC_SX_GET, ELF32_PARISC_SX_PUT): Define.
1973 (symextn_entry): Don't define.
1974 (symext_chain_size): Change type to bfd_size_type.
1975 (symextn_contents): Change type to bfd_byte *.
1976 (elf32_hppa_backend_begin_write_processing): Use
1977 ELF32_PARISC_SX_SIZE instead of sizeof (symext_entryS).
1978 (elf32_hppa_size_symext): Likewise. Also, change type of sizep to
1979 bfd_size_type *.
1980 (elf_hppa_tc_make_sections): Cast symextn_contents assignment to
1981 bfd_byte *. Use ELF32_PARISC_SX_PUT instead of direct assignment.
1982 (elf32_hppa_backend_symbol_table_processing): Use
1983 ELF32_PARISC_SX_SIZE instead of sizeof (symext_entryS). Use
1984 ELF32_PARISC_SX_GET insetad of direct assignment.
1985 (elf32_hppa_read_symext_info): Change type of contents, and its
1986 assignment cast, to bfd_byte *. Use ELF32_PARISC_SX_SIZE instead
1987 of sizeof (symextn_entry). Use symext_entryS instead of
1988 symextn_entry. Use ELF32_PARISC_SX_GET instead of direct
1989 assignment.
1990
1991 * archive.c (bfd_dont_truncate_arname): Add the ar padding
1992 character, if there is room for it, even if the name is the
1993 maximum length.
1994
1995 * elfcode.h (assign_file_positions_except_relocs): Sort the ELF
1996 headers by section address when assigning file positions.
1997 (elf_sort_hdrs): New static function.
1998
1999 Sun Oct 30 18:56:58 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2000
2001 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Create DT_INIT
2002 and DT_FINI dynamic entries based on the existence of _init and
2003 _fini symbols, not on the .init and .fini sections. This is
2004 compatible with some SVR4 linkers.
2005 (elf_bfd_final_link): Corresponding change.
2006
2007 Sat Oct 29 12:18:10 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
2008
2009 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't move a
2010 symbol with a PLT entry into the .plt section if it is defined in
2011 a regular file.
2012 * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
2013
2014 * linker.c (_bfd_generic_link_add_archive_symbols): It's not an
2015 error if an empty archive has no symbol table.
2016 * ecoff.c (ecoff_link_add_archive_symbols): Likewise.
2017 * elfcode.h (elf_link_add_archive_symbols): Likewise.
2018
2019 Fri Oct 28 10:08:41 1994 J.T. Conklin (jtc@rtl.cygnus.com)
2020
2021 NetBSD/m68k support, based on work by mikeb@snow.datametrics.com:
2022 * config.bfd (m68*-*-netbsd*): Use m68k-nbsd as bfd_name.
2023 * configure.in (m68knetbsd_vec): Added.
2024 * targets.c (bfd_m68knetbsd_vec): Added.
2025 * hosts/m68knbsd.h, config/m68k-nbsd.mt, m68knetbsd.c: New files.
2026 * Makefile.in (BFD32_BACKENDS, CFILES): Add m68knetbsd.c.
2027
2028 miscellaneous cleanup required by all netbsd targets, based on work
2029 by Andrew Cagney <cagney@highland.com.au>:
2030 * netbsd.h (N_MAGIC, N_SET_MAGIC, N_GETMAGIC, N_GETMAGIC2, N_TXTADDR,
2031 N_TXTOFF, N_ALIGN, N_DATADDR, N_DATOFF): Removed. Generic a.out
2032 definitions work.
2033 * i386nbsd.c, ns32knbsd.c, sparcnbsd.c (__LDPGSZ): Removed.
2034 (MY(write_object_contents)): Use NetBSD's magic numbers
2035
2036 Thu Oct 27 16:59:52 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2037
2038 * libelf.h (struct bfd_elf_section_data): Add field dynindx.
2039 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Don't finalize
2040 the .dynsym, .dynstr or .hash sections until after the backend
2041 size_dynamic_sections routine, so that it can add dynamic symbols
2042 if it wants to.
2043 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't define the
2044 symbol to be in the .plt section when generating a shared library
2045 if it is a defined symbol.
2046 * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
2047 (elf32_sparc_size_dynamic_sections): When generating a shared
2048 library, allocate space for a dynamic symbol for each output
2049 section, storing the index in the dynindx field of the ELF section
2050 data. Adjust the other dynindx fields to account for this.
2051 (elf32_sparc_adjust_dynindx): New static function.
2052 (elf32_sparc_relocate_section): When copying a reloc into a shared
2053 library, use the original addend as appropriate. Convert an
2054 R_SPARC_32 reloc into an R_SPARC_RELATIVE reloc. Use the dynamic
2055 symbol index of the output section, not the normal symbol index.
2056 (elf32_sparc_finish_dynamic_sections): Don't die if a section does
2057 not exist when setting the value of the dynamic tags. Write out
2058 a dynamic symbol for each output section.
2059
2060 Wed Oct 26 01:15:51 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
2061
2062 * aoutx.h (aout_link_input_section): Don't bother to read or write
2063 the relocs if there aren't any.
2064
2065 Tue Oct 25 11:44:38 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2066
2067 * Makefile.in (ALL_MACHINES): Add tekhex.o.
2068 * targets.c (bfd_target_vector): If SELECT_VECS is not defined,
2069 include tekhex_vec.
2070 * tekhex.c (NIBBLE, ISHEX): Cast array arguments to unsigned char.
2071 (getvalue, getsym, out): Likewise.
2072 (find_chunk): Remove unused variable s.
2073 (first_phase): Remove unused variable s.
2074 (pass_over): Remove unused variable address.
2075 (tekhex_object_p): Remove unused variable section.
2076 (move_section_contents): Change return type from boolean to void.
2077 (tekhex_write_object_contents): Remove unused variables tdata and
2078 list.
2079
2080 * linker.c (enum link_action): Add CIND.
2081 (link_action): Change COMMON_ROW\indr from MDEF to CREF. Change
2082 INDR_ROW\common from MDEF to CIND.
2083 (_bfd_generic_link_add_one_symbol): In CREF case, handle an
2084 existing symbol which is indirect rather than defined. Add new
2085 CIND case.
2086
2087 Mon Oct 24 15:33:16 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2088
2089 Change S-record backend to use multiple sections to handle gaps in
2090 file.
2091 * srec.c (srec_data_list_struct): Move field next from last place
2092 to first. Change type of data to bfd_byte *.
2093 (struct srec_symbol): Define.
2094 (tdata_type): Remove done_symbol_read, count, strings, symbol_idx,
2095 string_size, string_idx. Change type of symbols to struct
2096 srec_symbol *. Add symtail and csymbols.
2097 (low, high): Remove.
2098 (size_symbols, fillup_symbols, size_srec, fillup): Remove.
2099 (white, skipwhite, pass_over, object_p): Remove.
2100 (srec_mkobject): Call srec_init. Adjust tdata initialization for
2101 field changes.
2102 (srec_get_byte, srec_bad_byte): New static functions.
2103 (srec_new_symbol, srec_scan): New static functions.
2104 (srec_object_p): Change type of b to bfd_byte. Explicitly set
2105 wrong_format error. Call srec_mkobject and srec_scan instead of
2106 object_p.
2107 (symbolsrec_object_p): Likewise. Also, change b to be only two
2108 bytes.
2109 (srec_read_section): New static function.
2110 (srec_get_section_contents): Call srec_read_section rather than
2111 pass_over. Handle zero length section correctly.
2112 (set_set_arch_mach): Change from function to macro.
2113 (srec_set_section_contents): Change data to bfd_byte *.
2114 (srec_write_record): Change data, end and src to bfd_byte *.
2115 (srec_write_header): Change buffer and dst to bfd_byte *.
2116 (srec_write_section): Change location to bfd_byte *.
2117 (srec_write_terminator): Change buffer to bfd_byte *.
2118 (srec_get_symtab_upper_bound): Don't call
2119 srec_get_section_contents.
2120 (srec_get_symtab): Rewrite.
2121
2122 * ecoff.c (ecoff_set_symbol_info): Set udata.i to 0, not NULL.
2123
2124 Fri Oct 21 16:43:13 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
2125
2126 * libaout.h (machine_type): added M_68K_NETBSD and M_SPARC_NETBSD.
2127 * i386netbsd.c, ns32knetbsd.c, sparcnetbsd.c: removed RCS Id's.
2128 changed how PAGE_SIZE and SEGMENT_SIZE are defined so they are
2129 consistant with each other.
2130 * netbsd.h (N_HEADER_IN_TEXT, TEXT_START_ADDR): NetBSD fits its
2131 header into the start of its text segment.
2132
2133 Fri Oct 21 17:13:07 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2134
2135 * targets.c (BFD_JUMP_TABLE_ARCHIVE): Add case for
2136 _construct_extended_name_table.
2137 (bfd_target): Add _bfd_construct_extended_name_table.
2138 * archive.c (_bfd_archive_bsd_construct_extended_name_table): New
2139 function.
2140 (_bfd_archive_coff_construct_extended_name_table): New function.
2141 (_bfd_construct_extended_name_table): Renamed by adding a leading
2142 underscore, and made externally visible. Added trailing_slash
2143 argument, and used it instead of elf_style. Changed type of
2144 tablen to bfd_size_type *.
2145 (_bfd_write_archive_contents): Use BFD_SEND to call
2146 construct_extended_name_table. Use the returned name.
2147 * libbfd-in.h (_bfd_construct_extended_name_table): Declare.
2148 (_bfd_noarchive_construct_extended_name_table): Define.
2149 (_bfd_archive_bsd_construct_extended_name_table): Declare.
2150 (_bfd_archive_coff_construct_extended_name_table): Declare.
2151 * bfd-in2.h: Rebuild.
2152 * libbfd.h: Rebuild.
2153 * som.c (som_construct_extended_name_table): New static function.
2154 * aout-target.h (MY_construct_extended_name_table): Define.
2155 * coff-rs6000.c (rs6000coff_construct_extended_name_table):
2156 Define.
2157 * ieee.c (ieee_construct_extended_name_table): Define.
2158 * libecoff.h (_bfd_ecoff_construct_extended_name_table): Define.
2159 * oasys.c (oasys_construct_extended_name_table): Define.
2160
2161 Fix the ELF linker to not require an interpreter if no dynamic
2162 objects were seen, even when linking PIC code.
2163 * libelf.h (ELF_LINK_HASH_NEEDS_PLT): Define.
2164 (struct elf_link_hash_table): Add field dynamic_sections_created.
2165 * elfcode.h (elf_link_record_dynamic_symbol): Create dynstr if it
2166 doesn't already exist.
2167 (elf_link_add_object_symbols): Create dynamic sections based on
2168 dynamic_sections_created field, not dynobj field. Don't bother to
2169 set dynobj.
2170 (elf_link_create_dynamic_sections): If dynamic sections were
2171 already created, don't do anything. If dynobj is already set, use
2172 it; otherwise, set it to the bfd argument. Don't initialize
2173 dynsymcount. Only create dynstr if it does not exist. Set
2174 dynamic_sections_created to true.
2175 (NAME(bfd_elf,size_dynamic_sections)): Skip most of this function
2176 if no dynamic objects were seen.
2177 (elf_adjust_dynamic_symbol): If a symbol has the
2178 ELF_LINK_HASH_NEEDS_PLT flag set, let the backend adjust it.
2179 (elf_bfd_final_link): Change most decisions based on dynobj to
2180 check dynamic_sections_created instead.
2181 (elf_link_output_extsym): Only handle dynamic symbols if a dynamic
2182 object was seen.
2183 * elf.c (_bfd_elf_link_hash_table_init): Initialize new field
2184 dynamic_sections_created. Set dynsymcount to 1, not 0.
2185 * elf32-i386.c (elf_i386_create_dynamic_sections): Call
2186 elf_i386_create_got_section rather than creating the .got and
2187 .got.plt sections.
2188 (elf_i386_create_got_section): New static function.
2189 (elf_i386_check_relocs): Just call elf_i386_create_got_section if
2190 a GOT table is needed, not bfd_elf32_link_create_dynamic_sections.
2191 Only create the .rel.got section, and only make space for a reloc,
2192 for a global symbol or when generating a shared object. For a
2193 R_386_PLT32 reloc, just set the ELF_LINK_HASH_NEEDS_PLT flag.
2194 (elf_i386_adjust_dynamic_symbol): Rework initial assertion to
2195 permit ELF_LINK_HASH_NEEDS_PLT non dynamic symbols. Create a
2196 procedure linkage table entry for such symbols. But, if no
2197 dynamic objects were seen, never create a PLT entry.
2198 (elf_i386_size_dynamic_sections): If no dynamic objects were seen,
2199 skip most of this function, and force the size of the .rel.got
2200 section to zero.
2201 (elf_i386_relocate_section): For a R_386_GOT32 reloc against a global
2202 symbol when no dynamic object was seen, initialize the contents of
2203 the .got section. For a R_386_GOT32 against a local symbol, only
2204 create a R_386_RELATIVE reloc when generating a shared object.
2205 Treat a R_386_PLT32 reloc against a symbol for which we did not
2206 create a PLT entry as a R_386_PC32 reloc.
2207 (elf_i386_finish_dynamic_sections): Only fiddle with the dynamic
2208 entries and the PLT if we saw a dynamic object.
2209 * elf32-sparc.c (elf_sparc_howto_table): Fix R_SPARC_PC22 by
2210 setting rightshift to 10. Fix R_SPARC_WPLT20 by setting
2211 rightshift to 2, size to 2, bitsize to 30, and dst_mask to
2212 0x3fffffff.
2213 (elf32_sparc_create_dynamic_sections): Don't set the size of the
2214 .plt section. Call elf32_sparc_create_got_section rather than
2215 creating the .got section.
2216 (elf32_sparc_check_relocs): Call elf32_sparc_create_got_section if
2217 a GOT table is needed, not bfd_elf32_link_create_dynamic_sections.
2218 Only create the .rela.got section, and only make space for a
2219 reloc, for a global symbol or when generating a shared object.
2220 Set the alignment of the .rela.got section to 2. For a
2221 R_SPARC_WPLT30 reloc, just set the ELF_LINK_HASH_NEEDS_PLT flag.
2222 (elf32_sparc_adjust_dynamic_symbol): Rework initial assertion to
2223 permit ELF_LINK_HASH_NEDS_PLT non dynamic symbols. Create a
2224 procedure linkage table for such symbols. But, if no dynamic
2225 objects were seen, never create a PLT entry. Initialize the size
2226 of the .plt section.
2227 (elf32_sparc_size_dynamic_sections): If no dynamic objects were
2228 seen, skip most of this function, and force the size of the
2229 .rela.got section to zero. Strip empty reloc sections, and strip
2230 an empty .plt section.
2231 (elf32_sparc_relocate_section): For a GOT reloc against a global
2232 symbol when no dynamic object was seen, initialize the contents of
2233 the .got section. For a GOT reloc against a local symbol, only
2234 create a R_SPARC_RELATIVE reloc when generating a shared object.
2235 Treat a R_SPARC_WPLT30 reloc against a symbol for which we did not
2236 create a PLT entry as a R_SPARC_WDISP30 reloc.
2237 (elf32_sparc_finish_dynamic_sections): Only fiddle with the
2238 dynamic entries and the PLT if we saw a dynamic object.
2239
2240 Thu Oct 20 13:28:45 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
2241
2242 * elfcode.h (elf_map_symbols): Don't worry about section symbols
2243 in a section not owned by any BFD.
2244 (elf_section_from_bfd_section): Separate out loop which calls
2245 backend routine. Check bfd_section and call the backend routine
2246 even for a section not owned by any BFD.
2247 * elf32-mips.c (mips_elf_section_from_bfd_section): Handle
2248 .acommon section.
2249
2250 Wed Oct 19 13:28:29 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
2251
2252 * coffgen.c (coff_print_symbol): Make names for section number and
2253 storage class slightly more verbose. It's not clear how many
2254 characters I can justify using up, but before this change they
2255 both were abbreviated "sc" which is (IMHO) clearly unacceptable.
2256
2257 Wed Oct 19 01:26:39 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
2258
2259 * binary.c (binary_set_section_contents): Set the base file
2260 position from the lowest section VMA, not the start address.
2261
2262 * aoutx.h (NAME(aout,slurp_symbol_table)): Don't return an error
2263 if there are no symbols.
2264 * coffgen.c (coff_get_normalized_symtab): Likewise.
2265 * hp300hpux.c (MY(slurp_symbol_table)): Likewise.
2266
2267 Tue Oct 18 12:56:43 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2268
2269 * aout-target.h (MY_bfd_copy_private_section_data): Only copy
2270 subformat to another bfd_target_aout_flavour file.
2271
2272 * binary.c: New file for raw binary output format.
2273 * Makefile.in (BFD_LIBS): Add binary.o.
2274 (CFILES): Add binary.c.
2275 * targets.c (binary_vec): Declare.
2276 (bfd_target_vector): Include binary_vec.
2277
2278 * srec.c (tdata_type): Add field tail.
2279 (srec_mkobject): Initialize tail.
2280 (srec_set_section_contents): Sort S record list by address.
2281
2282 Mon Oct 17 11:38:16 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2283
2284 * elfcode.h (elf_map_symbols): Sort the symbols into a new array,
2285 rather than messing with Elf_Sym_Extra. Store the symbol index in
2286 the udata.i field.
2287 (swap_out_syms): Use outbound_syms as a pointer rather than as an
2288 array. Don't worry about elf_sym_num.
2289 * libelf.h (struct elf_sym_extra): Don't define.
2290 (Elf_Sym_Extra): Don't define.
2291 (struct elf_obj_tdata): Remove sym_extra field.
2292 (elf_sym_extra): Don't define.
2293 * elf32-hppa.c (elf32_hppa_backend_final_write_processing): Use
2294 udata.i rather than elf_sym_extra array.
2295
2296 * syms.c (asymbol): Change udata field into a union.
2297 * bfd-in2.h: Rebuild.
2298 * aoutx.h (NAME(aout,translate_symbol_table)): Use udata.p rather
2299 than just udata.
2300 * bout.c (perform_slip): Likewise.
2301 * hp300hpux.c (MY(slurp_symbol_table)): Likewise.
2302 * ieee.c (ieee_slurp_external_symbols): Likewise.
2303 * linker.c (generic_link_add_symbol_list): Likewise.
2304 (default_indirect_link_order): Likewise.
2305 * oasys.c (oasys_slurp_symbol_table): Likewise.
2306 * reloc16.c (bfd_perform_slip): Likewise.
2307 * srec.c (fillup_symbols): Likewise.
2308 * coffcode.h (get_index): Use udata.i rather than just udata.
2309 (coff_slurp_symbol_table): Likewise.
2310 * coffgen.c (set_index): Likewise.
2311 * ecoff.c (ecoff_set_symbol_info): Likewise.
2312 * elfcode.h (elf_symbol_from_bfd_symbol): Likewise.
2313 * libecoff.h (ecoff_get_sym_index, ecoff_set_sym_index): Likewise.
2314 * som.c (compare_syms): Likewise.
2315 (som_prep_for_fixups): Likewise.
2316 (som_write_fixups): Likewise.
2317
2318 Use a hash table when writing out ELF symbol names.
2319 * elfcode.h (elf_stringtab_init): New static function.
2320 (bfd_new_strtab, bfd_add_to_strtab, bfd_add_2_to_strtab): Remove.
2321 Change all callers to use elf_stringtab_init or
2322 _bfd_stringtab_add, and get stringtab lengths using
2323 _bfd_stringtab_size.
2324 (elf_fake_sections): Change ignored argument to pointer to
2325 boolean, and set the boolean to true if an error occurs. If an
2326 error has already occurred, don't do anything.
2327 (assign_section_numbers): Just set sh_size, not contents.
2328 (elf_compute_section_file_positions): Pass the address of a
2329 boolean to elf_fake_sections. Pass the address of a
2330 bfd_strtab_hash to swap_out_syms. Write out the .strtab section.
2331 (prep_headers): Change shstrtab to bfd_strtab_hash.
2332 (swap_out_syms): Take a pointer to a bfd_strtab_hash as an
2333 argument. Set it to the symbol names.
2334 (NAME(bfd_elf,write_object_contents)): Write out the section
2335 header names using _bfd_stringtab_emit.
2336 (elf_debug_section): Remove first argument; get the section name
2337 via the bfd_section pointer. Change caller.
2338 (elf_bfd_final_link): Write out the symbol names using
2339 _bfd_stringtab_emit. Likewise for the .dynstr section contents.
2340 Free the symbol names at the end of the function.
2341 (elf_link_input_bfd): Remove the last argument, output_names,
2342 from relocate_section. Save the old symbol contents before
2343 calling elf_link_output_sym, and restore them afterward.
2344 * libelf.h (struct elf_link_hash_table): Change dynstr field to
2345 struct bfd_strtab_hash.
2346 (struct elf_backend_data): Remove last argument, output_names,
2347 from elf_backend_relocate_section field.
2348 (struct strtab): Don't define.
2349 (struct elf_obj_tdata): Change strtab_ptr field to struct
2350 bfd_strtab_hash.
2351 * elf32-hppa.c (elf32_hppa_relocate_section): Remove last
2352 argument, output_names.
2353 * elf32-i386.c (elf_i386_relocate_section): Likewise.
2354 * elf32-mips.c (mips_elf_relocate_section): Likewise.
2355 * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
2356
2357 * libbfd-in.h (DEFAULT_STRING_SPACE_SIZE): Don't define.
2358 (bfd_add_to_string_table): Don't declare.
2359 * libbfd.h: Rebuild.
2360 * libbfd.c (bfd_add_to_string_table): Remove.
2361
2362 * elfcode.h (elf_swap_shdr_in): Use bfd_section, not rawdata.
2363 Clear contents field.
2364 (bfd_section_from_shdr): In SHT_STRTAB case, check bfd_section,
2365 not rawdata. Don't set rawdata if e_shstrndx. Use bfd_section
2366 rather than rawdata in commented out code. In SHT_REL[A] case,
2367 don't bother to check elf_section_data of section returned by
2368 section_from_elf_index.
2369 (elf_fake_sections): Set bfd_section, not rawdata. Don't set
2370 size.
2371 (elf_map_symbols): Don't set elf_num_section_syms. Don't create
2372 section symbols that already exist.
2373 (assign_file_position_for_section): Use bfd_section, not rawdata.
2374 (section_from_elf_index): Just check bfd_section field.
2375 (elf_section_from_bfd_section): Likewise.
2376 (elf_debug_section): Don't print rawdata, contents, or size.
2377 (elf_link_add_object_symbols): Don't error out if
2378 section_from_elf_index returns NULL.
2379 (elf_bfd_final_link): Check return value from
2380 section_from_elf_index against NULL, not bfd_is_abs_section.
2381 (elf_link_input_bfd): Don't check section_from_elf_index return
2382 value.
2383 * libelf.h (struct elf_obj_tdata): Remove num_section_syms field.
2384 (elf_num_section_syms): Don't define.
2385 * elf.c (elf_get_str_section): Store section contents in contents
2386 field rather than rawdata field.
2387 (elf_string_from_elf_section): Likewise.
2388 (_bfd_elf_make_section_from_shdr): Store BFD section pointer in
2389 bfd_section field rather than rawdata field.
2390 * elf32-hppa.c (elf32_hppa_read_symext_info): Use bfd_section
2391 rather than rawdata.
2392 (elf32_hppa_size_stubs): Likewise.
2393 (elf32_hppa_backend_symbol_table_processing): Don't set
2394 symextn_hdr->size; just use sh_size.
2395 * elf32-mips.c (mips_elf_final_write_processing): Use bfd_section
2396 rathern than rawdata.
2397 (mips_elf_section_from_shdr): Likewise.
2398 (mips_elf_section_processing): Likewise.
2399 (mips_elf_section_from_bfd_section): Remove rawdata check.
2400
2401 * srec.c (pass_over): Set the start address for S7, S8 or S9.
2402
2403 Fri Oct 14 19:15:46 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
2404
2405 * VERSION: Updated to 2.5.
2406
2407 Fri Oct 14 11:07:50 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2408
2409 * bfd.c (bfd_scan_vma): Cast end to be non const before passing it
2410 to strtoul.
2411
2412 Thu Oct 13 14:40:41 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2413
2414 * bfd.c (bfd_scan_vma): Pass end argument on to strtoul.
2415
2416 Wed Oct 12 16:46:43 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
2417
2418 * opncls.c (bfd_realloc): Deleted, since it's broken and fixing it
2419 would make it slow. Besides, it isn't used much.
2420 * elfcode.h (elf_map_symbols): Always allocate new storage for the
2421 symbol table.
2422
2423 Wed Oct 12 11:54:37 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2424
2425 * ecoff.c (ecoff_set_symbol_info): Mark local stProc, stLabel or
2426 stabs symbols as BSF_DEBUGGING.
2427
2428 * rs6000-core.c (rs6000coff_core_file_matches_executable_p): Make
2429 str1 and str2 const pointers.
2430
2431 * Makefile.in (INSTALL): Use top level install.sh script.
2432 * config/README (INSTALL): Remove.
2433 * config/delta88.mh (INSTALL): Remove.
2434 * config/i386v4.mh (INSTALL): Remove.
2435 * config/irix4.mh (INSTALL): Remove.
2436 * config/irix5.mh (INSTALL): Remove.
2437 * config/ncrt3000.mh (INSTALL): Remove.
2438
2439 Tue Oct 11 13:57:56 1994 Eric Youngdale (eric@andante.aib.com)
2440
2441 * elf32-i386.c (elf_i386_check_relocs): Make sure that a symbol
2442 with a global offset table entry or a procedure linkage table
2443 entry is added to the dynamic symbol table.
2444 * elf32-sparc.c (elf32_sparc_check_relocs): Likewise.
2445 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): If a symbol has
2446 already gotten a procedure linkage table entry, change the
2447 definition to the PLT entry.
2448 * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
2449
2450 Tue Oct 11 17:12:00 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2451
2452 * lynx-core.c (lynx_core_file_p): SPARC Lynx appears to start
2453 dumping the .data section in a core file at a page boundary.
2454
2455 Mon Oct 10 16:24:44 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
2456
2457 * cofflink.c (_bfd_coff_final_link): Cast argument to bfd_h_put_32
2458 to correct type.
2459 (coff_read_string_table): Cast argument to bfd_h_get_32 to correct
2460 type.
2461 * elfcode.h (elf_link_output_extsym): Cast argument to
2462 bfd_elf_hash to correct type.
2463
2464 * elf32-sparc.c (elf_sparc_howto_table): The PC10, PC22, and
2465 WPLT30 relocations are PC-relative.
2466
2467 Thu Oct 6 12:57:26 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org)
2468
2469 * aoutx.h (adjust_o_magic): Correctly initialize vma if the vma of
2470 the text section was user-defined.
2471
2472 Wed Oct 5 14:42:12 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2473
2474 * archive.c (bfd_construct_extended_name_table): SVR4 uses slash
2475 newline at the end of the file name, not just newline.
2476
2477 Tue Oct 4 11:23:12 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2478
2479 * ecoff.c (_bfd_ecoff_new_section_hook): Default section alignment
2480 power to 4, rather than using align_power_min.
2481
2482 * coffcode.h (coff_new_section_hook): Don't use align_power_min;
2483 use COFF_DEFAULT_SECTION_ALIGNMENT_POWER instead. Force the .stab
2484 and .stabstr sections to be aligned to no more than 2. Remove
2485 COFF_SPARC special cases.
2486 * coff-a29k.c: Define COFF_DEFAULT_SECTION_ALIGNMENT_POWER.
2487 * coff-apollo.c, coff-go32.c, coff-h8300.c: Likewise.
2488 * coff-h8500.c, coff-i386.c, coff-i960.c, coff-m68k.c: Likewise.
2489 * coff-m88k.c, coff-rs6000.c, coff-sh.c, coff-sparc.c: Likewise.
2490 * coff-we32k.c, coff-z8k.c: Likewise.
2491
2492 * configure.in: Use ${config_shell} when running config.bfd.
2493
2494 * cofflink.c (coff_link_input_bfd): Don't try to convert a long
2495 filename if the offset field is zero.
2496
2497 * elfcode.h (swap_out_syms): If the alignment of a common symbol
2498 was not set, use a sensible default rather than zero.
2499
2500 Mon Oct 3 16:04:29 1994 H.J. Lu (hjl@nynexst.com)
2501
2502 * opncls.c (bfd_close): Honor umask when setting execution bits.
2503 (bfd_close_all_done): Likewise.
2504
2505 Mon Oct 3 04:41:49 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
2506
2507 * rs6000-core.c (rs6000coff_core_p): Set SEC_HAS_CONTENTS flag
2508 for .stack and .ldinfo sections. Cast coredata.c_tab to a
2509 file_ptr to avoid warnings from gcc.
2510
2511 Fri Sep 30 13:11:38 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
2512
2513 * elfcode.h (elf_bfd_final_link): Remove assertion when a non
2514 SEC_IN_MEMORY section is found in dynobj. This can happen when
2515 linking PIC compiled code.
2516
2517 Thu Sep 29 15:21:44 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
2518
2519 * reloc.c (bfd_install_relocation): Change type of "data" to
2520 bfd_byte *, to go along with yesterday's change.
2521
2522 * elf.c (bfd_elf_print_symbol): Moved here from elf_print_symbol
2523 in elfcode.h. (case bfd_print_symbol_all): Print symbol's size
2524 field, except for common symbols; print their alignment.
2525 * elfcode.h (elf_print_symbol): Deleted.
2526 * libelf.h (bfd_elf_print_symbol): Declare.
2527 (bfd_elf{32,64}_print_symbol): Replace declarations with macros.
2528
2529 * syms.c (bfd_print_symbol_vandf): Show BSF_LOCAL and BSF_GLOBAL
2530 in one column. Use the column freed up to show BSF_FUNCTION and
2531 BSF_FILE.
2532
2533 Thu Sep 29 12:29:01 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2534
2535 * syms.c (stt): Add .rdata and .rodata.
2536
2537 Wed Sep 28 13:35:05 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2538
2539 * reloc.c (bfd_install_relocation): Cast data_start to bfd_byte *
2540 before trying to add values to it.
2541
2542 Tue Sep 27 16:47:58 1994 Ken Raeburn <raeburn@cujo.cygnus.com>
2543
2544 * elf32-hppa.c (elf32_hppa_backend_final_write_processing): Cast
2545 return value from elf_sym_extra.
2546 (elf32_hppa_build_stubs): Cast return value from bfd_zalloc.
2547 (elf32_hppa_size_stubs): Cast return value from malloc.
2548
2549 * gen-aout.c (main): Declare and initialize "arch".
2550
2551 * cofflink.c (coff_link_add_symbols): Cast return value of
2552 bfd_hash_allocate.
2553
2554 * riscix.c (riscix_callback): Use PARAMS macro in prototype.
2555
2556 * reloc.c (bfd_install_relocation): New function, mostly copied
2557 from bfd_perform_relocation, adjusted for the assembler's needs.
2558 * bfd-in2.h: Regenerated.
2559
2560 Mon Sep 26 11:00:14 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2561
2562 * elfcode.h (assign_file_positions_except_relocs): Align the
2563 section VMA and the file position even if D_PAGED is not set.
2564
2565 * bfd-in.h (bfd_seek): Change declaration to not mark fp const.
2566 * bfd-in2.h: Rebuild.
2567 * libbfd.c (bfd_seek): Don't mark parameters const, to avoid
2568 conflicts with declaration.
2569
2570 Fri Sep 23 15:15:31 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2571
2572 * elfcode.h (map_program_segments): Don't abort if we allocated
2573 too much space for the program header, only if we allocated too
2574 little.
2575 (assign_file_positions_except_relocs): Similar change.
2576
2577 Tue Sep 20 13:17:07 1994 J.T. Conklin (jtc@phishhead.cygnus.com)
2578
2579 * libaout.h: Fix comment.
2580 * ns32knbsd.h: Changed M_NS32K_NETBSD to M_532_NETBSD to match
2581 libaout.h.
2582
2583 Tue Sep 20 15:23:21 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2584
2585 * Makefile.in: Rebuilt dependencies.
2586 (BFD32_BACKENDS): Add sparcnetbsd.o.
2587 (CFILES): Add ns32knetbsd.c and sparcnetbsd.c.
2588 * targets.c: ns32knetbsd_vec was renamed to pc532netbsd_vec.
2589
2590 * coff-sh.c (rtype2howto): Remove; unused.
2591 (coff_sh_relocate_section): Remove unused local variable rstat.
2592 (reloc_processing): Comment out; unused.
2593
2594 Fri Sep 16 12:12:27 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2595
2596 * aoutx.h (aout_link_write_other_symbol): If h->indx is -2, then
2597 always write it out even if it would normally be stripped.
2598 (aout_link_input_section_std): If we find a reloc against a
2599 stripped global symbol, force it to be written out rather than
2600 merely calling unattached_reloc.
2601 (aout_link_input_section_ext): Likewise.
2602 (aout_link_reloc_link_order): Likewise.
2603
2604 Wed Sep 14 15:37:19 1994 Jeff Law (law@snake.cs.utah.edu)
2605
2606 * som.h (struct somdata): New field sorted_syms.
2607 (obj_som_sorted_syms): Accessor macro.
2608 * som.c (som_object_setup): Initialize sorted_syms to NULL.
2609 (som_prep_for_fixups): Sort a copy of the BFD's symbol table;
2610 store the sorted symbol table in sorted_syms.
2611 (som_write_fixups): Initalize tmp_reloc to NULL to make GCC happy.
2612 (som_begin_writing): Similarly for exec_header. Pass the sorted
2613 symbol table to som_write_symbol_strings.
2614 (som_build_and_write_symbol_table): Use the sorted symbols rather
2615 than the canonical symbol table.
2616
2617 * som.h (som_symbol_type): Add "stringtab_offset" field.
2618 * som.c (som_write_symbol_strings): Use "stringtab_offset"
2619 rather than destroying the "name" field in the BFD symbol.
2620 (som_build_and_write_symbol_table): Likewise.
2621
2622 Wed Sep 14 15:06:55 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2623
2624 * aoutx.h (aout_link_write_symbols): Rename skip_indirect to
2625 skip_next. If we find an N_WARNING symbol which has already been
2626 written out, set skip_next.
2627
2628 * libecoff.h (struct ecoff_tdata): Add field find_buffer.
2629 * ecoff.c: Include aout/stab_gnu.h.
2630 (ecoff_find_nearest_line): Handle stabs debugging information.
2631
2632 * elfcode.h (elf_link_output_extsym): Keep a symbol marked as weak
2633 even if it is referenced by another object.
2634
2635 Tue Sep 13 17:57:00 1994 Jeff Law (law@snake.cs.utah.edu)
2636
2637 * som.c (som_fixup_formats): Case R_ENTRY (0xb3), set both
2638 'T' and 'U' to grab all the unwind information.
2639 (som_set_reloc_info): Make 'U' unwind bits persist across
2640 multiple SOM relocations. Set the addend field of an R_ENTRY
2641 relocation to the value in 'T'; set the addend field on an
2642 R_EXIT relocation to the value in 'U'.
2643
2644 * som.h (som_symbol_type): Delete unwind field.
2645
2646 * som.c (som_write_fixups): For R_ENTRY fixups, get 32bits of
2647 unwind information from the addend field of the R_ENTRY, get the
2648 other 32bits from the addend field of the R_EXIT.
2649 (bfd_som_attach_unwind_info): Delete function and all references.
2650
2651 * som.h (som_symbol_type): Delete unused a.out-related fields.
2652
2653 * som.c (bfd_section_from_som_symbol): Use bfd_abs_section_ptr
2654 instead of &bfd_abs_section.
2655
2656 * som.c (som_object_setup): Handle exec_entry and exec_flags being
2657 switched in executables created by the OSF1 linker.
2658 (som_write_fixups): Handle R_EXIT just like the R_{F,L,R}SEL
2659 fixups. Support R_ALT_ENTRY (handle just like R_EXIT).
2660
2661 Tue Sep 13 16:04:07 1994 Steve Chamberlain (sac@jonny.cygnus.com)
2662
2663 * cofflink.c (coff_link_input_bfd): syment_base is unsigned
2664 so can't compare -ve numbers with it.
2665
2666 Mon Sep 12 20:31:17 1994 Steve Chamberlain (sac@jonny.cygnus.com)
2667
2668 * configure.in (shcoff_vec): Use cofflink.o now.
2669 * coff-sh.c: Rewritten to use new fast coff backend.
2670
2671 Tue Sep 13 16:23:57 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2672
2673 * aoutx.h (NAME(aout,final_link)): Don't assume that all the input
2674 files are a.out.
2675
2676 Tue Sep 13 11:09:39 1994 J.T. Conklin (jtc@rtl.cygnus.com)
2677
2678 * configure.host (sparc-*-netbsd): use sparcnbsd.
2679 (ns32k-*-netbsd): use ns32knbsd.
2680
2681 * hosts/{nbsd,i386nbsd,ns32knbsd,sparcnbsd}.h: New files, NetBSD
2682 host support.
2683
2684 * sparcnetbsd.c: New file, adds support for NetBSD/sparc.
2685 * config/sparc-nbsd.mt: Likewise.
2686
2687 * netbsd.h: New file, definitions common to all netbsd ports.
2688 * i386netbsd.c: Use it.
2689 * ns32knetbsd.c: Use it.
2690
2691 * Makefile.in, configure.in, targets.c, config/i386-nbsd.mt,
2692 config/ns32k-nbsd.mt: canonicalize netbsd targets to conform to
2693 file/variable naming conventions.
2694 * i386netbsd.c: New file, renamed from netbsd386.c.
2695 * ns32knetbsd.c: New file, renamed from netbsd532.c.
2696
2697 Mon Sep 12 21:56:20 1994 Jeff Law (law@snake.cs.utah.edu)
2698
2699 * som.c (som_reloc_skip): Correct off-by-one error for 4-byte
2700 R_NO_RELOCATION fixups.
2701 (bfd_section_from_som_symbol): Return the absolute section if the
2702 symbol isn't contained in any section in the output file.
2703 (som_slurp_symbol_table): ST_PRI_PROG and ST_SEC_PROG symbols are
2704 not function symbols (they are magic code labels which *can* be the
2705 targets of cross space branches). $START$ is not a section symbol.
2706
2707 Mon Sep 12 11:43:08 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2708
2709 * coff-alpha.c (ecoffalpha_little_vec): Add SEC_CODE and SEC_DATA
2710 to section_flags.
2711 * coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
2712
2713 * elfcode.h (swap_out_syms): Set the type of an undefined symbol
2714 to STT_FUNC if the BSF_FUNCTION flag is set.
2715
2716 * cofflink.c (coff_link_input_bfd): If r_symndx is -1, don't
2717 change it.
2718 (_bfd_coff_generic_relocate_section): If r_symndx is -1, it is an
2719 absolute reloc. Don't dump core using r_symndx as an array index.
2720 * cf-m68klynx.c (coff_bfd_link_add_symbols): Define.
2721 (lynx_link_add_symbols): New static function (copy of function in
2722 coff-i386.c).
2723 (coff_m68k_lynxrtype_to_howto): sym argument may be NULL.
2724 * coff-i386.c (coff_i386_rtype_to_howto): Likewise.
2725 * coff-a29k.c (coff_a29k_relocate_section): Handle an r_symndx
2726 value of -1, meaning an absolute reloc.
2727
2728 * ctor.c: Remove; obsolete.
2729 * Makefile.in: Rebuild dependencies.
2730 (BFD_LIBS): Remove ctor.o.
2731 (CFILES): Remove ctor.c.
2732 * libbfd.h: Rebuild.
2733
2734 Mon Sep 12 01:58:47 1994 Jeff Law (law@snake.cs.utah.edu)
2735
2736 * elf32-hppa.c (elf32_hppa_relocate_section): If there was a link
2737 error of some sort (for example, undefined symbols), then do not
2738 apply any relocs, just notify the user of the errors.
2739 (elf32_hppa_backend_begin_write_processing): Do not build a symbol
2740 extension section for an executable (it's useless).
2741 (elf32_hppa_link_output_symbol_hook): Do nothing if there was a
2742 link error of some sort (for example, undefined symbols).
2743 (elf32_hppa_read_symext_info): Kludge. Turn off SEC_HAS_CONTENTS
2744 for all the input symbol extension sections to keep the generic
2745 BFD code happy. Temporarily turn it on to read the contents of
2746 the symbol extension section.
2747
2748 Sun Sep 11 21:58:59 1994 Jeff Law (law@snake.cs.utah.edu)
2749
2750 * config/hppaosf.mh (RANLIB): Do not set.
2751 * config/hppabsd.mh (RANLIB): Likewise.
2752
2753 Sun Sep 11 22:50:49 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
2754
2755 * cf-i386lynx.c: Remove #if 0 code.
2756 (i386_lynxos_coff_object_p): Remove unused function.
2757 (coff_bfd_link_add_symbols): Define.
2758 (lynx_link_add_symbols): New static function.
2759 * coffcode.h (coff_bfd_link_hash_table_create): If
2760 coff_relocate_section is defined, only define this if not already
2761 defined.
2762 (coff_bfd_link_add_symbols, coff_bfd_final_link): Likewise.
2763
2764 * linker.c (_bfd_generic_final_link): Handle
2765 bfd_indirect_link_order explicitly, rather than via
2766 _bfd_default_link_order.
2767 (set_symbol_from_hash): New static function, broken out of
2768 _bfd_generic_link_write_global_symbol.
2769 (_bfd_generic_link_write_global_symbol): Symbol setting code moved
2770 to set_symbol_from_hash; call it.
2771 (default_indirect_link_order): Add generic_linker argument.
2772 Change all callers. If false, set the generic symbols based on
2773 the hash table entries.
2774
2775 Fri Sep 9 11:51:49 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2776
2777 * coffgen.c (coff_get_symtab): Reindented. Removed commented out
2778 call to bfd_constructor_entry.
2779
2780 Convert m68k COFF to use new COFF backend linker.
2781 * coff-m68k.c (coff_relocate_section): Define.
2782 * cf-m68klynx.c (coff_rtype_to_howto): Define.
2783 (coff_m68k_lynx_rtype_to_howto): New static function.
2784 * configure.in (m68kcoff_vec): Build cofflink.o.
2785 (m68kcoffun_vec, m68klynx_coff_vec): Likewise.
2786
2787 Thu Sep 8 16:20:38 1994 Steve Chamberlain (sac@jonny.cygnus.com)
2788
2789 * coff-h8300.c (h8300_reloc16_extra_cases, case RELBYTE): Flag
2790 overflows correctly.
2791
2792 Wed Sep 7 19:01:42 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2793
2794 * libelf.h (struct elf_backend_data): Change second argument of
2795 elf_backend_final_write_processing hook to boolean.
2796 (struct elf_obj_tdata): Add linker field.
2797 * elfcode.h (NAME(bfd_elf,write_object_contents)): Pass value of
2798 tdata linker field to final_write_processing, rather than NULL.
2799 (elf_bfd_final_link): Don't call final_write_processing hook. Set
2800 tdata linker field to true.
2801 * elf32-mips.c (mips_elf_final_write_processing): Change type of
2802 second argument to boolean.
2803 * elf32-hppa.c (elf32_hppa_backend_final_write_processing):
2804 Likewise.
2805
2806 * coff-go32.c (RTYPE2HOWTO): Fully parenthesize arguments.
2807 * coff-i960.c (RTYPE2HOWTO): Likewise.
2808 * coff-m88k.c (RTYPE2HOWTO): Likewise.
2809 * coff-we32k.c (RTYPE2HOWTO): Likewise.
2810
2811 Make i386 COFF use new COFF backend linker.
2812 * coff-i386.c (RTYPE2HOWTO): Fully parenthesize arguments.
2813 (coff_relocate_section): Define.
2814 (coff_i386_rtype_to_howto): New function.
2815 * configure.in (i386coff_vec): Use cofflink.o.
2816 (i386lynx_coff_vec): Likewise.
2817
2818 * coffcode.h (bfd_coff_backend_data): Add new field
2819 _bfd_coff_rtype_to_howto.
2820 (bfd_coff_rtype_to_howto): Define.
2821 (coff_rtype_to_howto): Define to use RTYPE2HOWTO, if not already
2822 defined.
2823 (bfd_coff_std_swap_table): Initialize new field.
2824 * cofflink.c (_bfd_coff_final_link): Allocate section_count + 1
2825 section_info structures, since the target_index is 1 based.
2826 (coff_link_input_bfd): Set *secpp to bfd_com_section_ptr for a
2827 common symbol. Adjust rel_hash by the output reloc count.
2828 (_bfd_coff_generic_relocate_section): New function.
2829 * libcoff-in.h (_bfd_coff_generic_relocate_section): Declare.
2830 * libcoff.h: Rebuild.
2831 * coff-alpha.c (alpha_ecoff_backend_data): Initialize new field.
2832 * coff-mips.c (mips_ecoff_backend_data): Likewise.
2833
2834 Tue Sep 6 23:28:52 1994 Jeff Law (law@snake.cs.utah.edu)
2835
2836 * som.c (som_bfd_derive_misc_symbol_info): Treat undefined code
2837 symbols and undefined symbols which no type in the same manner
2838 if the associated BFD symbol has BSF_FUNCTION set. For a defined
2839 symbol which no type, select a SOM type based on the flags of the
2840 section containing the symbol.
2841 (som_slurp_symbol_type): Set BSF_FUNCTION for undefined ST_STUB
2842 or ST_CODE symbols (importing a non-function code symbol is
2843 meaningless in SOM).
2844 (som_set_reloc_info): Don't set "offset" to the section's vma; it
2845 should always start at zero.
2846
2847 Tue Sep 6 14:51:11 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2848
2849 Add new style linker support to COFF backend. a29k only for now.
2850 * cofflink.c: New file.
2851 * libcoff-in.h: Include bfdlink.h.
2852 (obj_coff_external_syms, obj_coff_strings): Define accessor macro.
2853 (obj_coff_sym_hashes): Define accessor macro.
2854 (struct coff_tdata): Add fields external_syms, strings, and
2855 sym_hashes.
2856 (struct coff_link_hash_entry): Define.
2857 (struct coff_link_hash_table): Define.
2858 (coff_link_hash_lookup, coff_link_hash_traverse): Define.
2859 (coff_hash_table): Define.
2860 (_bfd_coff_link_hash_table_create): Declare.
2861 (_bfd_coff_link_add_symbols, _bfd_coff_final_link): Declare.
2862 * coffcode.h (bfd_coff_backend_data): Add fields _bfd_relsz,
2863 _bfd_coff_swap_reloc_in, _bfd_coff_sym_is_global,
2864 _bfd_coff_compute_section_file_positions,
2865 _bfd_coff_relocate_section.
2866 (bfd_coff_relsz, bfd_coff_swap_reloc_in): Define.
2867 (bfd_coff_sym_is_global): Define.
2868 (bfd_coff_compute_section_file_positions): Define.
2869 (bfd_coff_relocate_section): Define.
2870 (coff_mkobject_hook): Initialize obj_raw_syment_count and
2871 obj_conv_table_size.
2872 (coff_compute_section_file_positions): Set target_index of all
2873 sections. Set output_has_begun field.
2874 (coff_write_object_contents): Don't set target_index; now done by
2875 coff_compute_section_file_positions. Remove obsolete handling of
2876 scn_base and data_base. Don't bother to check that target_index
2877 is positive, since it always is. Remove use of pad, which is
2878 always zero. Check obj_raw_syment_count, not bfd_get_symcount,
2879 for the number of symbols, but only write them out if
2880 bfd_get_symcount is non-zero. Don't check obj_raw_syment_count
2881 until after coff_write_symbols is called.
2882 (coff_slurp_symbol_table): Use obj_raw_syment_count, not
2883 bfd_get_symcount for the number of symbols. Don't set
2884 obj_conv_table_size.
2885 (coff_sym_is_global): New static function or macro.
2886 (coff_slurp_reloc_table): Call coff_swap_reloc_in, not
2887 bfd_swap_reloc_in.
2888 (coff_bfd_link_hash_table_create): If coff_relocate_section is
2889 defined, define as _bfd_coff_link_hash_table_create.
2890 (coff_bfd_link_add_symbols): Similar change.
2891 (coff_bfd_final_link): Similar change.
2892 (coff_relocate_section): Define as NULL if not defined.
2893 (bfd_coff_std_swap_table): Initialize new fields.
2894 * coffgen.c (coff_real_object_p): Don't set obj_raw_syment_count
2895 and obj_conv_table_size here.
2896 (coff_count_linenumbers): Reindent. If bfd_get_symcount is zero,
2897 add up the line numbers from the sections.
2898 (coff_write_symbols): Set obj_raw_syment_count, not
2899 bfd_get_symcount.
2900 (coff_pointerize_aux): Don't pointerize a nonpositive x_endndx
2901 field.
2902 (coff_get_normalized_symtab): Use obj_raw_syment_count, not
2903 bfd_get_symcount.
2904 (coff_print_symbol): If auxp->fix_end, print x_endndx value.
2905 * coffswap.h (coff_swap_reloc_in): Rename from bfd_swap_reloc_in.
2906 Reindent. Change argument type to PTR.
2907 * coff-a29k.c (coff_a29k_relocate_section): New static function.
2908 (coff_relocate_section): Define.
2909 * configure.in (a29kcoff_big_vec): Compile cofflink.o.
2910 * coff-alpha.c (alpha_ecoff_backend_data): Initialize new fields.
2911 * coff-mips.c (mips_ecoff_backend_data): Likewise.
2912 * libcoff.h: Rebuilt.
2913 * Makefile.in: Rebuilt dependencies.
2914 (BFD32_BACKENDS): Add cofflink.o.
2915 (CFILES): Add cofflink.c.
2916
2917 Tue Sep 6 14:00:45 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
2918
2919 * coffgen.c (coff_print_symbol, case bfd_symbol_print_all): Check
2920 for section symbol, and print its aux fields with appropriate
2921 labels.
2922
2923 * Makefile.in (ALL_MACHINES): Added cpu-arm.o.
2924
2925 Sun Sep 04 17:58:10 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org)
2926
2927 * aoutx.h (NAME(aout,machine_type)): Recognize the ARM processor.
2928 * archures.c, config.bfd, configure.host, libaout.h, reloc.c,
2929 targets.c: Add support for the ARM.
2930 * cpu-arm.c, riscix.c, config/riscix.mh, config/riscix.mt: New files.
2931
2932 * aoutx.h (add_to_stringtable): Check that str isn't a NULL pointer.
2933
2934 Fri Sep 2 14:10:30 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
2935
2936 * reloc.c (enum bfd_reloc_code_real): Rewrote definition to use
2937 new "chew" commands for simultaneous definition of enumerator and
2938 enumerator name table.
2939 (bfd_get_reloc_code_name): New function, for retrieving a symbolic
2940 name associated with an enumerator.
2941 * libbfd.h, bfd-in2.h: Regenerated.
2942
2943 Tue Aug 30 21:24:54 1994 Jeff Law (law@snake.cs.utah.edu)
2944
2945 * som.c (som_write_fixups, case R_ENTRY): Handle case where no
2946 unwind descriptor information is available.
2947
2948 Tue Aug 30 11:43:30 1994 Eric Youngdale (ericy@cais.cais.com)
2949
2950 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add soname
2951 argument, and use it to set DT_SONAME dynamic entry.
2952 * bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
2953 (bfd_elf64_size_dynamic_sections): Update prototype.
2954 * bfd-in2.h: Rebuilt.
2955
2956 Fri Aug 26 15:47:57 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2957
2958 * coffgen.c (coff_real_object_p): Set obj_raw_syment_count.
2959 (coff_get_normalized_symtab): Verify obj_raw_syment_count, rather
2960 than setting it.
2961
2962 Thu Aug 25 10:44:53 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2963
2964 * archive.c (bsd_write_armap): Remove host dependencies.
2965
2966 * aoutx.h (add_to_stringtab): Check for _bfd_stringtab_add error
2967 before adding BYTES_IN_WORD.
2968
2969 * coffgen.c (coff_find_nearest_line): Look for the best C_FILE,
2970 not merely the first.
2971
2972 * coffgen.c (coff_write_alien_symbol): If we are not using the
2973 symbol, clear the name so that it is not put in the string table.
2974 From Antti.Miettinen@ntc.nokia.com.
2975
2976 Wed Aug 24 11:49:19 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
2977
2978 * coffgen.c (coff_print_symbol): Cast pointer different to long
2979 and use %ld to print it.
2980 * osf-core.c (osf_core_core_file_p): Remove unused variable
2981 dseccnt.
2982 * ecoffswap.h (ecoff_swap_ext_out): If ECOFF_64, clear remaining
2983 bytes in bits2.
2984
2985 * configure.host, config.bfd: Change i[34]86 to i[345]86.
2986 * coffgen.c (coff_real_object_p): Set obj_conv_table_size here,
2987 rather than waiting until coff_slurp_symbol_table.
2988 (coff_write_alien_symbol): Just ignore BSF_DEBUGGING symbols.
2989 From Antti.Miettinen@ntc.nokia.com.
2990
2991 * section.c (bfd_make_section_anyway): Fix failure check of
2992 bfd_make_empty_symbol. From Antti.Miettinen@ntc.nokia.com.
2993
2994 * aoutx.h (translate_to_native_sym_flags): Use the output_section
2995 (and output_offset) if there is one.
2996
2997 * aoutx.h (aout_link_check_archive_element): Discard the symbols
2998 if the archive element was not needed.
2999
3000 * aoutx.h (aout_get_external_symbols): Ensure that a zero string
3001 index yields an empty string.
3002 (aout_link_write_symbols): If info->keep_memory is false, use name
3003 from original hash table entry, not from entry in *sym_hash.
3004
3005 * aoutx.h (struct aout_final_link_info): Add fields contents,
3006 relocs, symbol_map and output_syms.
3007 (NAME(aout,final_link)): Work out the largest section size, reloc
3008 size, and number of symbols. Use them to preallocate buffers that
3009 are large enough for all cases.
3010 (aout_link_input_bfd): Use preallocated symbol_map.
3011 (aout_link_write_symbols): Remove symbol_map argument; use
3012 preallocated symbol_map instead. Change all callers. Use
3013 preallocated output_syms.
3014 (aout_link_input_section): Remove symbol_map argument. Change all
3015 callers. Use preallocated contents and relocs.
3016 (aout_link_input_section_std): Remove symbol_map argument; use
3017 preallocated symbol_map instead. Change all callers.
3018 (aout_link_input_section_ext): Likewise.
3019
3020 Tue Aug 23 10:51:09 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3021
3022 * archive.c (_bfd_write_archive_contents): Don't update the
3023 symbol map timestamp if there is no symbol map. From
3024 schwab@issan.informatik.uni-dortmund.de (Andreas Schwab).
3025
3026 Mon Aug 22 12:26:42 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3027
3028 * targets.c (BFD_JUMP_TABLE_ARCHIVE): Add _update_armap_timestamp.
3029 (bfd_target): Add field _bfd_update_armap_timestamp.
3030 * bfd.c (bfd_update_armap_timestamp): Define.
3031 * bfd-in2.h: Rebuilt.
3032 * libbfd-in.h (_bfd_noarchive_update_armap_timestamp): Define.
3033 (_bfd_archive_bsd_update_armap_timestamp): Declare.
3034 (_bfd_archive_coff_update_armap_timestamp): Define.
3035 * libbfd.h: Rebuilt.
3036 * archive.c (_bfd_write_archive_contents): Call
3037 bfd_update_armap_timestamp instead of checking for a BSD archive
3038 and calling bsd_update_armap_timestamp.
3039 (_bfd_archive_bsd_update_armap_timestamp): Rename from
3040 _bsd_update_armap_timestamp. Don't assume that armap_datepos is
3041 already set.
3042 * aout-target.h (MY_update_armap_timestamp): Define if not already
3043 defined.
3044 * coff-rs6000.c (rs6000coff_update_armap_timestamp): Define.
3045 * ieee.c (ieee_update_armap_timestamp): Define.
3046 * libecoff.h (_bfd_ecoff_update_armap_timestamp): Define.
3047 * oasys.c (oasys_update_armap_timestamp): Define.
3048 * som.c (som_update_armap_timestamp): Define.
3049
3050 * hash.c: Copy string hash functions from aoutx.h.
3051 * aoutx.h: String hash functions moved to hash.c. Retain
3052 simplified versions of add_to_stringtab and emit_stringtab.
3053 Change all callers to use new function and structure names.
3054 * libbfd-in.h (_bfd_stringtab_init, _bfd_stringtab_free): Declare.
3055 (_bfd_stringtab_size, _bfd_stringtab_add): Declare.
3056 (_bfd_stringtab_emit): Declare.
3057 * libbfd.h: Rebuilt.
3058
3059 Mon Aug 22 10:49:37 1994 Eric Youngdale (ericy@cais.cais.com)
3060
3061 * i386linux.c (linux_add_one_symbol): Create a fixup for any
3062 defined absolute symbol, not just GOT or PLT symbols.
3063 (linux_tally_symbols): Correct handling of references to defined
3064 symbols.
3065
3066 Thu Aug 18 16:29:57 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3067
3068 Get ld -x -r to handle a.out set symbols correctly.
3069 * aoutx.h (adjust_o_magic): If the .bss VMA was set outside of
3070 BFD, pad the .data section up to the VMA of the .bss section.
3071 (aout_link_add_symbols): If a set symbol does not get modified,
3072 treat it as a local symbol.
3073 (aout_link_write_symbols): Set the value of set symbols
3074 correctly. Don't discard set symbols even if discarding local
3075 symbols.
3076 (aout_link_write_other_symbol): Don't abort on bfd_link_hash_new,
3077 since it can now happen for set symbols.
3078
3079 * elfcode.h (elf_fake_sections): Just check for ".rela" and
3080 ".rel", not ".rela." and ".rel."; make this work by checking
3081 use_rela_p.
3082 * elf32-i386.c (elf_i386_check_relocs): Just check for ".rel", not
3083 ".rel."
3084 (elf_i386_size_dynamic_sections): Likewise.
3085 (elf_i386_relocate_section): Likewise.
3086 * elf32-sparc.c (elf32_sparc_check_relocs): Just check for
3087 ".rela", not ".rela."
3088 (elf32_sparc_size_dynamic_sections): Likewise.
3089 (elf32_sparc_relocate_section): Likewise.
3090
3091 Wed Aug 17 16:54:18 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3092
3093 * linker.c (_bfd_generic_link_add_archive_symbols): Initialize
3094 PASS to the old value + 1.
3095
3096 * coffgen.c (coff_get_normalized_symtab): If a C_FILE symbol has
3097 no aux entries, use the symbol name as the file name.
3098 (coff_find_nearest_line): Look for the right C_FILE symbol, rather
3099 than always using the first one. If there is a debugging symbol
3100 after a function symbol, skip it. Add the section VMA to the line
3101 offset, since it was subtracted out in coff_slurp_line_table.
3102
3103 Tue Aug 16 16:53:00 1994 Jeff Law (law@snake.cs.utah.edu)
3104
3105 * som.c (som_prep_headers): If writing some form of an executable,
3106 allocate and attach an exec header to the BFD private data.
3107 (som_begin_writing): Don't fill fields of the exec header based
3108 on BFD private data here (like the exec flags). Do not write
3109 the exec header here.
3110 (som_write_headers): Instead do it here.
3111 * som.h (struct somdata): New field "exec_hdr" for the executable
3112 file header.
3113 (obj_som_exec_hdr): New accessor macro.
3114
3115 Tue Aug 16 00:12:31 1994 Eric Youngdale (ericy@cais.cais.com)
3116
3117 * i386linux.c (linux_link_create_dynamic_sections): Create section
3118 named .linux-dynamic, not .dynamic.
3119 (linux_add_one_symbol): Use .linux-dynamic, not .dynamic.
3120 (bfd_linux_size_dynamic_sections): Likewise.
3121 (linux_finish_dynamic_link): Likewise.
3122
3123 Mon Aug 15 12:16:56 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3124
3125 * coffgen.c (STRING_SIZE_SIZE): Define.
3126 (coff_fix_symbol_name): Use STRING_SIZE_SIZE, not 4.
3127 (coff_write_symbols, build_string_table): Likewise.
3128 (coff_get_normalized_symtab): Likewise.
3129
3130 * libcoff-in.h (obj_symbol_slew): Don't define.
3131 (struct coff_tdata): Remove unused fields index_slew, raw_linenos,
3132 and flags.
3133 * libcoff.h: Rebuilt.
3134 * coffcode.h (coff_mkobject): Don't initialize raw_linenos.
3135 (coff_mkobject_hook): Don't initialize flags.
3136
3137 * aout-target.h (MY_zmagic_contiguous): Define as 0 if not already
3138 defined.
3139 (MY(backend_data)): Use MY_zmagic_contiguous, not hardcoded 0.
3140 * i386linux.c (MY_zmagic_contiguous): Define.
3141
3142 * elfcode.h (bfd_section_from_shdr): If a SHT_SYMTAB section in a
3143 shared object has SHF_ALLOC set, create a BFD section for it.
3144 (elf_section_from_bfd_section): There may be a BFD section for a
3145 SHT_SYMTAB section.
3146
3147 * coffcode.h (styp_to_sec_flags): Add name argument. If no flags
3148 are recognized, chose section flags based on the name.
3149 (bfd_coff_backend_data): _bfd_styp_to_sec_flags_hook field: Add
3150 name argument.
3151 (bfd_coff_styp_to_sec_flags_hook): Add name argument.
3152 (coff_compute_section_file_positions): Don't adjust the section
3153 position by COFF_PAGE_SIZE unless SEC_ALLOC is set.
3154 * libcoff.h: Rebuilt.
3155 * coffgen.c (make_a_section_from_file): Pass section name to
3156 bfd_coff_styp_to_sec_flags_hook.
3157 * ecoff.c (_bfd_ecoff_styp_to_sec_flags): Add unused name
3158 argument.
3159 * libecoff.h (_bfd_ecoff_styp_to_sec_flags): Add name argument to
3160 prototype.
3161
3162 Fri Aug 12 11:22:40 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3163
3164 * elfcode.h (section_from_elf_index): Correct check for invalid
3165 section index.
3166
3167 * elfcode.h (elf_link_add_object_symbols): If there is no symbol
3168 table, try using the dynamic symbol table. From Eric Youngdale
3169 <ericy@cais.cais.com>.
3170
3171 * configure.host (sparc-*-solaris2*): Use solaris2, not sysv4.
3172 The linker depends upon configuring for solaris2.
3173 * hosts/solaris2.h: New file; include hosts/sysv4.h.
3174 * config/solaris2.mh: New file; copy of config/sysv4.mh.
3175
3176 Wed Aug 10 13:09:38 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3177
3178 * aoutx.h (adjust_z_magic): Make sure data section is padded to
3179 page boundary when the VMA is set by the calling program. From
3180 Eric Youngdale <ericy@cais.cais.com>.
3181
3182 Mon Aug 8 17:18:49 1994 Stan Shebs (shebs@andros.cygnus.com)
3183
3184 Update to ns32k support, from Ian Dall (dall@hfrd.dsto.gov.au).
3185 * aout-ns32k.c: Add declarations that were in aout-ns32k.h, change
3186 declarations to traditional form.
3187 (MY_reloc_howto, MY_put_reloc): Change from macro to function.
3188 (ns32k_relocate_contents): New function.
3189 * aout-ns32k.h: Remove.
3190 * cpu-ns32k.c: Add declarations that were in aout-ns32k.h, change
3191 declarations to traditional form.
3192 (ns32k_final_link_relocate): Call ns32k_relocate_contents.
3193 * netbsd532.c: Reformat to standards, add copyright notice.
3194 (ARCH): Don't define.
3195 (aout-ns32k.h): Don't include.
3196 * pc532-mach.c: Ditto.
3197
3198 Mon Aug 8 17:55:52 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3199
3200 * coff-i960.c (coff_i960_relocate): Don't try to convert relocs
3201 against common symbols.
3202
3203 Sat Aug 6 22:27:30 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
3204
3205 * irix-core.c (irix_core_core_file_p): Ignore sections that
3206 are not contained in the core file.
3207
3208 Thu Aug 4 11:32:23 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3209
3210 * coff-m68k.c (m68k_reloc_type_lookup): New function.
3211 (coff_bfd_reloc_type_lookup): Define.
3212 * cf-m68klynx.c (_bfd_m68kcoff_reloc_type_lookup): Define.
3213
3214 * elfcode.h (elf_bfd_final_link): Force the vma of sections which
3215 do not have SEC_ALLOC set to be 0. This is needed to handle
3216 relocs against debugging sections.
3217
3218 Wed Aug 3 16:45:41 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3219
3220 * coff-i960.c (coff_i960_relocate): Rewrote to change relocs
3221 against locally defined symbols into relocs against section
3222 symbols, for VxWorks 5.1.
3223
3224 Wed Aug 3 10:34:37 1994 Eric Youngdale (ericy@cais.cais.com)
3225
3226 * i386linux.c (linux_add_one_symbol): Only handle
3227 SHARABLE_CONFLICTS specially if BSF_CONSTRUCTOR is set. Set hashp
3228 for a GOT or PLT symbol. Set jump field of fixup for a PLT symbol.
3229 (linux_tally_symbols): Check section of real symbol. When looking
3230 for a builtin fixup, check builtin and jump flags. Create no more
3231 than one fixup, and always create one if the real symbol is in the
3232 absolute section. Only strip absolute symbols.
3233
3234 Wed Aug 3 05:08:24 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
3235
3236 * coffcode.h (coff_write_object_contents): set internal_a.magic to
3237 LYNXCOFFMAGIC whenever 68k, SPARC or i386 LynxOS
3238 (yes, they have the same magic number!)
3239
3240 Tue Aug 2 10:43:21 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3241
3242 * hp300hpux.c (BMAGIC): Define as HPUX_DOT_O_MAGIC, to make test
3243 in aoutx.h work correctly.
3244
3245 * coff-i960.c (coff_i960_relocate): New function.
3246 (howto_rellong, howto_iprmed): Use it as special_function.
3247
3248 * libbfd-in.h: Move declarations of bfd_read, bfd_write, bfd_seek,
3249 bfd_tell, bfd_flush, and bfd_stat from here...
3250 * bfd-in.h: ...to here, to make them visible to programs which
3251 know more about the object file format than BFD does.
3252 * libbfd.h, bfd-in2.h: Rebuilt.
3253
3254 Mon Aug 1 17:55:53 1994 Fred Fish (fnf@cygnus.com)
3255
3256 * ptrace-core.c (ptrace_unix_core_file_p): Convert zalloc usage
3257 to bfd_zalloc.
3258
3259 Mon Aug 1 12:04:40 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3260
3261 * elf64-sparc.c (ELF_MAXPAGESIZE): Define.
3262
3263 ELF linker patches from Eric Youngdale <ericy@cais.cais.com>.
3264 * elfcode.h (elf_link_create_dynamic_sections): Set type of
3265 _DYNAMIC to STT_OBJECT.
3266 (NAME(bfd_elf,record_link_assignment)): Always create hash table
3267 entry. Set type to STT_OBJECT.
3268 (elf_link_output_extsym): Don't set type of weak defined symbol to
3269 STB_WEAK if symbol was referenced.
3270 (map_program_segments): Check DYNAMIC as well as EXEC_P.
3271 (assign_file_positions_except_relocs): Likewise.
3272 * elf32-i386.c (elf_i386_create_dynamic_sections): Set type of
3273 _GLOBAL_OFFSET_TABLE to STT_OBJECT.
3274 (elf_i386_check_relocs): Ignore local PLT32 relocs.
3275 (elf_i386_relocate_section): Treat local PLT32 relocs as PC32.
3276
3277 * elfcode.h (elf_adjust_dynamic_symbol): Correct weak symbol
3278 handling again.
3279
3280 * elfcode.h (elf_slurp_reloc_table): Don't try to read the relocs
3281 if there aren't any.
3282
3283 * configure.host (sparc-*-solaris2*): Use sysv4, not solaris2.
3284 * hosts/solaris2.h: Remove.
3285 * config/solaris2.mh: Remove.
3286
3287 Sun Jul 31 14:27:04 1994 Jeff Law (law@snake.cs.utah.edu)
3288
3289 * elf32-hppa.c, elf32-hppa.h: Update comment reflecting which
3290 HPPA ELF spec the code implements.
3291
3292 Tue Jul 26 17:38:01 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
3293
3294 * cpu-i960.c (MAX_ARCH): New macro.
3295 (compatible): Use it in computing array bounds. Put comma after
3296 last entry in array, for regularity.
3297 (arch_info_struct): Adjust spacing for easier reading.
3298
3299 * coff-i960.c (howto_rellong, howto_iprmed, howto_optcall): Use
3300 HOWTO macro.
3301
3302 start-sanitize-i960xl
3303 * cpu-i960.c (XL): Define as bfd_mach_i960_xl.
3304 (scan_960_mach): Recognize xl machine.
3305 (MAX_ARCH): Define to be XL.
3306 (compatible): Add XL row to array.
3307 (arch_info_struct): Add XL entry.
3308
3309 * archures.c (bfd_mach_i960_xl): New macro.
3310 * bfd-in2.h: Regenerated.
3311
3312 * coffcode.h (coff_set_arch_mach_hook): For F_I960XL, set machine
3313 to bfd_mach_i960_xl.
3314 (coff_set_flags): For bfd_mach_i960_xl, set F_I960XL.
3315 end-sanitize-i960xl
3316
3317 Tue Jul 26 11:04:00 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3318
3319 * elfcode.h (elf_adjust_dynamic_symbol): When handling a weak
3320 symbol, correct check to see whether the equivalent normal symbol
3321 was referenced.
3322
3323 Add support for creating shared libraries under i386 ELF and SPARC
3324 ELF. Based on patches by Eric Youngdale <ericy@cais.cais.com>.
3325 * libelf.h (struct elf_link_hash_entry): Remove copy_offset field.
3326 Add got_offset and plt_offset fields.
3327 (ELF_LINK_HASH_REF_DYNAMIC_MULTIPLE): Don't define.
3328 (ELF_LINK_HASH_DEF_DYNAMIC_MULTIPLE): Don't define.
3329 (ELF_LINK_HASH_NEEDS_COPY): Define.
3330 (struct elf_backend_data): Add check_relocs field.
3331 (struct bfd_elf_section_data): Change relocs from PTR to
3332 Elf_Internal_Rela *.
3333 (struct elf_obj_tdata): Add local_got_offsets field.
3334 (elf_local_got_offsets): Define accessor macro.
3335 (bfd_elf32_link_create_dynamic_sections): Declare.
3336 (bfd_elf32_link_record_dynamic_symbol): Declare.
3337 (bfd_elf64_link_create_dynamic_sections): Declare.
3338 (bfd_elf64_link_record_dynamic_symbol): Declare.
3339 * elfcode.h (elf_slurp_reloc_table): Don't use the section data
3340 relocs field.
3341 (elf_link_record_dynamic_symbol): Make globally visible. Use
3342 macro to rename to NAME(bfd_elf,link_record_dynamic_symbol).
3343 (elf_link_add_object_symbols): If creating a shared library, put
3344 make all local symbols dynamic. Don't bother with the
3345 DYNAMIC_MULTIPLE flags. Call the check_relocs backend function if
3346 it is defined.
3347 (elf_link_create_dynamic_sections): Make globally visible. Use
3348 macro to rename to NAME(bfd_elf,link_create_dynamic_sections). If
3349 creating a shared library, make sure that _DYNAMIC is added as a
3350 dynamic symbol.
3351 (elf_link_read_relocs): New function.
3352 (NAME(bfd_elf,record_link_assignment)): If creating a shared
3353 library, always create symbols, and always make them dynamic.
3354 (elf_bfd_final_link): Permit creation of shared libraries.
3355 (elf_link_input_bfd): Use elf_link_read_relocs to get the relocs.
3356 * elf.c (_bfd_elf_link_hash_newfunc): Don't initialize
3357 copy_offset. Initialize got_offset and plt_offset.
3358 * elf32-target.h (elf_backend_check_relocs): Define as 0 if not
3359 defined.
3360 (elf32_bed): Initialize check_relocs field.
3361 * elf64-target.h (elf_backend_check_relocs): Define as 0 if not
3362 defined.
3363 (elf64_bed): Initialize check_relocs field.
3364 * elf32-i386.c (elf_howto_table): Change R_386_PLT32 and
3365 R_386_GOTPC to be pc_relative and pcrel_offset.
3366 (elf_i386_pic_plt0_entry): Define.
3367 (elf_i386_pic_plt_entry): Define.
3368 (elf_i386_create_dynamic_sections): Create a .got.plt section, and
3369 define _GLOBAL_OFFSET_TABLE_ at the start of it. If creating a
3370 shared library, make sure that _GLOBAL_OFFSET_TABLE_ is added as a
3371 dynamic symbol. Don't create .rel.bss if creating a shared
3372 library.
3373 (elf_i386_check_relocs): New function.
3374 (elf_i386_adjust_dynamic_symbol): Don't make a PLT entry if the
3375 symbol already has one. When making a PLT entry, set plt_offset.
3376 Don't create a copy reloc when creating a shared library. Don't
3377 set copy_offset, just set ELF_LINK_HASH_NEEDS_COPY.
3378 (elf_i386_allocate_dynamic_section): Remove.
3379 (elf_i386_size_dynamic_sections): Look through all the sections
3380 rather than assuming we know their names. Remove any empty reloc
3381 or plt sections. Only add a DT_DEBUG entry if not creating a
3382 shared library. Only add a DT_PLTGOT entry if there is a PLT.
3383 Add a DT_TEXTREL entry if required.
3384 (elf_i386_relocate_section): Permit undefined symbols when
3385 creating a shared library. Handle the special relocation types
3386 specially.
3387 (elf_i386_finish_dynamic_symbol): Create a PLT entry if plt_offset
3388 is set. If creating a shared library, produce a PIC PLT entry.
3389 Only mark a PLT symbol as undefined if it was not defined by a
3390 regular object file. Create a GOT entry if got_offset is set.
3391 Create a copy reloc if ELF_LINK_HASH_NEEDS_COPY is set.
3392 (elf_i386_finish_dynamic_sections): Change the handling of
3393 DT_RELSZ to simply subtract out the size of .rel.plt. If creating
3394 a shared library, produce PIC PLT code.
3395 (elf_backend_check_relocs): Define.
3396 * elf32-sparc.c (elf_sparc_howto_table): Change R_SPARC_GOT10,
3397 R_SPARC_GOT22, and R_SPARC_PC10 to not warn about reloc overflow.
3398 (elf32_sparc_create_dynamic_sections): If creating a shared
3399 library, make sure that _GLOBAL_OFFSET_TABLE_ is added as a
3400 dynamic symbol, and set the type to STT_OBJECT. Likewise for
3401 _PROCEDURE_LINKAGE_TABLE_. Don't create .rel.bss if creating a
3402 shared library.
3403 (elf32_sparc_check_relocs): New function.
3404 (elf32_sparc_adjust_dynamic_symbol): Don't make a PLT entry if the
3405 symbol already has one. When making a PLT entry, set plt_offset.
3406 Don't create a copy reloc when creating a shared library. Don't
3407 set copy_offset, just set ELF_LINK_HASH_NEEDS_COPY.
3408 (elf32_sparc_allocate_dynamic_section): Remove.
3409 (elf32_sparc_size_dynamic_sections): Look through all the sections
3410 rather than assuming we know their names. Only add a DT_DEBUG
3411 entry if not creating a shared library. Add a DT_TEXTREL entry if
3412 required.
3413 (elf32_sparc_relocate_section): Permit undefined symbols when
3414 creating a shared library. Handle the special relocation types
3415 specially.
3416 (elf32_sparc_finish_dynamic_symbol): Create a PLT entry if plt_offset
3417 is set. Only mark a PLT symbol as undefined if it was not defined
3418 by a regular object file. Create a GOT entry if got_offset is
3419 set. Create a copy reloc if ELF_LINK_HASH_NEEDS_COPY is set.
3420 (elf32_sparc_finish_dynamic_sections): Store dynobj in a local
3421 variable.
3422 (elf_backend_check_relocs): Define.
3423
3424 Mon Jul 25 12:21:07 1994 Stan Shebs (shebs@andros.cygnus.com)
3425
3426 * configure.in (pc532mach_vec): Change to pc532machaout_vec.
3427 * config.bfd (ns32k-*-netbsd*): Use ns32k-nbsd as bfd_name.
3428 * Makefile.in (ALL_MACHINES): Add cpu-ns32k.o.
3429 (BFD32_BACKENDS): Add aout-ns32k.o, netbsd532.o, m88kmach3.o,
3430 pc532-mach.o.
3431 * targets.c (pc532machaout_vec): Use instead of pc532mach_vec.
3432 * config/pc532-mach.mt (DEFAULT_VECTOR): Ditto.
3433 (SELECT_VECS): Remove.
3434 * config/ns32k-nbsd.mt: New file, was ns32k-netbsd.mt.
3435 * config/ns32k-netbsd.mt: Remove, name too long.
3436
3437 Fri Jul 22 11:07:14 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3438
3439 * linker.c (generic_link_check_archive_element): When changing a
3440 symbol to common, set the alignment.
3441 (_bfd_generic_link_add_one_symbol): When creating a common symbol,
3442 set the alignment.
3443 * aoutx.h (aout_link_check_ar_symbols): When changing a symbol to
3444 common, set the alignment.
3445 (aout_link_add_symbols): Restrict the alignment of a common symbol
3446 to the alignment power given by the architecture.
3447 * libelf.h (struct elf_link_hash_entry): Remove align field. Add
3448 copy_offset field.
3449 * elfcode.h (elf_link_add_object_symbols): Store alignment in
3450 new bfd_link_hash_entry field, not in elf_link_hash_entry field.
3451 (elf_link_output_extsym): Similar change when getting alignment.
3452 * elf.c (_bfd_elf_link_hash_newfunc): Don't initialize align. Do
3453 initialize copy_offset.
3454 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Use copy_offset
3455 field rather than align field. Get alignment using bfd_log2
3456 rather than switch.
3457 * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
3458 * elf32-i386.c (elf_i386_finish_dynamic_symbol): Use copy_offset,
3459 not align.
3460 * elf32-sparc.c (elf32_sparc_finish_dynamic_symbol): Likewise.
3461
3462 * aoutx.h (NAME(aout,some_aout_object_p)): Just check
3463 STAT_FOR_EXEC, don't check MACH.
3464 * m88kmach3.c (MACH): Don't define.
3465 * config/i386-mach3.mt (TDEFINES): Define STAT_FOR_EXEC.
3466 * config/m88k-mach3.mt (TDEFINES): Likewise.
3467 * config/mips-mach3.mt (TDEFINES): Likewise.
3468
3469 Thu Jul 21 17:24:31 1994 Stan Shebs (shebs@andros.cygnus.com)
3470
3471 * i386mach3.c: Reverted to version from before Jul 5 1994 changes.
3472
3473 Thu Jul 21 12:26:01 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3474
3475 * reloc.c (struct reloc_howto_struct): Remove special_function1.
3476 It's the wrong way to do things.
3477 (HOWTO): Change accordingly.
3478 (HOWTO2): Remove.
3479 (_bfd_final_link_relocate): Remove references to
3480 special_function1.
3481 * bfd-in2.h: Rebuilt.
3482 * aoutx.h (aout_link_input_section_std): Remove references to
3483 special_function1.
3484 (aout_link_reloc_link_order): Likewise.
3485
3486 Wed Jul 20 15:46:44 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3487
3488 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add rpath
3489 argument. If it is not NULL, use it to set DT_RPATH.
3490 * bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
3491 (bfd_elf64_size_dynamic_sections): Likewise.
3492 * bfd-in2.h: Rebuilt.
3493
3494 Sat Jul 16 21:10:39 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3495
3496 * elfcode.h (elf_get_dynamic_symtab_upper_bound): If there is no
3497 dynamic symtab, return error.
3498
3499 * libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Define.
3500 * elfcode.h (elf_link_add_object_symbols): If symbol is defined as
3501 weak, set ELF_LINK_HASH_DEFINED_WEAK.
3502 (elf_link_output_extsym): If symbol is defined as weak, mark it
3503 STB_WEAK.
3504
3505 * libelf.h (struct bfd_elf_section_data): Add relocs field.
3506 (shdr_name): Remove; unused.
3507 * elfcode.h (elf_slurp_reloc_table): Rewrote to handle both REL
3508 and RELA relocs. Free up the unswapped relocs. Permit the relocs
3509 to be cached in the section_data. Correct the reloc address.
3510 (elf_slurp_reloca_table): Remove.
3511 (elf_canonicalize_reloc): Rewrote.
3512 (elf_link_input_bfd): Permit the relocs to be cached in the
3513 section data.
3514
3515 Sat Jul 16 13:55:38 1994 Stan Shebs (shebs@andros.cygnus.com)
3516
3517 * config.bfd (m88*-harris-cxux*): Recognize.
3518 * hosts/harris.h (POSIX_UTIME, HAVE_PROCFS): Define.
3519
3520 * configure.host (m68*-atari-sysv4*): New host.
3521 (m68*-cbm-sysv4*): Use m68kv4 instead of amix.
3522 * hosts/amix.h: Remove.
3523 * hosts/m68kv4.h: New file, was amix.h.
3524
3525 Thu Jul 14 15:12:24 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
3526
3527 * reloc.c (enum bfd_reloc_code_real, bfd_type, struct
3528 reloc_howto_struct, reloc_howto_type, HOWTO, HOWTO2): Copied
3529 changes over from bfd-in2.h so they get generated properly next
3530 time someone runs "make headers".
3531 * bfd-in2.h: Rebuilt.
3532
3533 * targets.c (netbsd532_vec, pc532mach_vec): Declare const.
3534 (m88kmach3_vec): Restore deleted declaration.
3535
3536 * configure.in: Alphabetize target vector names.
3537
3538 * config/pc532mach.mh: New file.
3539 (HDEPFILES, HDEFINES): Define here.
3540 * config/pc532-mach.mt (HDEPFILES, HDEFINES): Deleted.
3541 * config/ns32k-netbsd.mt (HDEPFILES, HDEFINES): Deleted.
3542
3543 Sun Jul 10 00:04:20 1994 Ian Dall (dall@hfrd.dsto.gov.au)
3544
3545 * pc532-mach.c: New File. pc532-mach a.out format.
3546
3547 * netbsd532.c: New file. pc532-netbsd532 a.out format.
3548
3549 * hosts/pc532mach.h: New file. pc532-mach host support.
3550
3551 * cpu-ns32k.c: New file. ns32k support cpu specific code rather
3552 than format specific code.
3553
3554 * config/pc532-mach.mt: New file. Support for pc532-mach target.
3555
3556 * config/ns32k-netbsd.mt: New file. Support for netbsd532 target.
3557
3558 * aout-ns32k.c, aout-ns32k.h: New files supporting aout format for
3559 ns32k series.
3560
3561 * targets.c: Add netbsd532_vec and pc532machaout_vec into
3562 bfd_target_vector array. Move netbsd386_vec to alphabetic order
3563 location.
3564
3565 * reloc.c (_bfd_final_link_relocate) Add support for
3566 special_function1 in howto.
3567
3568 * libaout.h: add M_NS32032, M_NS32532, M_532_NETBSD entries in
3569 machine_type enum.
3570
3571 * configure.in: add pc532mach_vec and netbsd532_vec entries.
3572
3573 * config.bfd: add pc532mach host entries. Use for both
3574 ns32k-pc532-mach and ns32k-pc532-netbsd.
3575
3576 * config.bfd: it doesn't work to use i386-mach3 for ns32k*-*-mach.
3577 add ns32k-pc532-mach* and ns32k-*-netbsd* entries.
3578
3579 * bfd-in2.h: Add ns32k specific relocations to bfd_reloc_code_real
3580 enum.
3581
3582 * bfd-in2.h: Add special_function1 to struct howto. Change HOWTO
3583 and NEWHOWTO macros to make special_function1 NULL. Neww HOWTO2
3584 macro.
3585
3586 * bfd-in2.h: Split definition of struct reloc_howto_struct
3587 and corresponding typedef into two statements.
3588
3589 * bfd-in2.h: Add entry bfd_arch_ns32k to bfd_architecture enum.
3590
3591 * archures.c: Add bfd_ns32k_arch prototype, and entry in
3592 archures_init_table.
3593
3594 * aoutx.h (aout_link_reloc_link_order): Allow for target dependent
3595 MY_put_reloc macro. Allow for target dependent special_function1
3596 to apply the relocation.
3597
3598 * aoutx.h (aout_link_input_section_std): Allow for target
3599 dependent determination of reloc howto. Allow for target dependent
3600 special_function1 to apply the relocation.
3601
3602 * aoutx.h (get_reloc_upper_bound): Detect bss and return 0.
3603
3604 * aoutx.h (slurp_reloc_table): Detect bss and succesfully read
3605 zero reloc entries.
3606
3607 * aoutx.h (machine_type): Add bfd_arch_ns32k case.
3608
3609 * aoutx.h: Stat to determine executable status if STAT_FOR_EXEC
3610 is defined (not just MACH). Use fstat instead of stat and check
3611 for fstat error.
3612
3613 * aoutx.h: Allow target dependent swap_std_reloc_{in,out}.
3614
3615 * aoutx.h: Allow CTORS reloc info to be in target dependent reloc
3616 table.
3617
3618 * aout-target.h: Apply SWAP_MAGIC (if defined) after
3619 swap_exec_header_in, otherwise we have magic in the wrong order.
3620
3621 Thu Jul 14 11:47:27 1994 Stan Shebs (shebs@andros.cygnus.com)
3622
3623 * coff-sparc.c (sparccoff_vec): Have leading underscores.
3624
3625 Tue Jul 12 12:08:10 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
3626
3627 * aix386-core.c, aoutf1.h, cisco-core.c, elfcode.h, hppabsd-core.c,
3628 hpux-core.c, irix-core.c, lynx-core.c, osf-core.c, ptrace-core.c,
3629 rs6000-core.c, trad-core.c: Remove SEC_ALLOC flag from .reg
3630 sections, .reg sections are not allocated and contain debug
3631 information only.
3632 * osf-core.c (make_bfd_asection, osf_core_core_file_p): Use
3633 bfd_make_section_anyway instead of building unique section names.
3634
3635 Tue Jul 12 11:41:22 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3636
3637 * libelf.h (bfd_elf32_swap_symbol_in): Declare.
3638 (bfd_elf32_swap_symbol_out): Declare.
3639 (bfd_elf64_swap_symbol_in, bfd_elf64_swap_symbol_out): Declare.
3640 * elf32-hppa.c (elf32_hppa_args_hash_table_init): Correct cast.
3641
3642 * aout-encap.c (ARCH): Don't define. Obsolete.
3643 * aout0.c, aoutx.h, gen-aout.c, hp300bsd.c, hp300hpux.c: Likewise.
3644 * i386aout.c, i386bsd.c, i386dynix.c, i386linux.c: Likewise.
3645 * i386lynx.c, m68klynx.c, mipsbsd.c, netbsd386.c: Likewise.
3646 * newsos3.c, sparclynx.c, sunos.c: Likewise.
3647
3648 Mon Jul 11 20:08:23 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3649
3650 * section.c (STD_SECTION): Make the sixth argument boolean, not
3651 the seventh. From gary@tuva.pacsemi.oz.au (gary kopff).
3652
3653 Sun Jul 10 09:12:02 1994 D. V. Henkel-Wallace (gumby@cygnus.com)
3654
3655 * aoutx.h (bfd_free_cached_info): Change name of FREE to BFCI_FREE
3656 in order not to collide with LynxOS's definition of FREE in
3657 /usr/include/sys/proc.h
3658
3659 Thu Jul 7 14:18:06 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3660
3661 * reloc.c (bfd_perform_relocation): Don't clobber the relocation
3662 value for coff-Intel-little or coff-Intel-big. Hack upon hack.
3663
3664 Thu Jul 7 10:10:34 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
3665
3666 * aoutx.h (howto_table_std): Add entry for GOT relocations
3667 which are present in sun3 shared libraries, to avoid assertions
3668 when reading the dynamic relocations.
3669
3670 Thu Jul 7 10:19:20 1994 Jeff Law (law@snake.cs.utah.edu)
3671
3672 * som.h (R_HPPA_COMPLEX): Fix dumb typo.
3673
3674 Wed Jul 6 19:21:57 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3675
3676 * hosts/sysv4.h (qsort, strtol): Don't declare.
3677
3678 * elfcode.h (elf_link_output_sym): Don't call output_symbol_hook
3679 if it is NULL.
3680
3681 * elf32-mips.c (mips_elf_final_write_processing): Add ignored info
3682 argument to correspond to recent libelf.h change.
3683
3684 Wed Jul 6 00:48:57 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
3685
3686 * coff-alpha.c (alpha_ecoff_mkobject_hook): New hook to
3687 additionally copy object type information from the alpha file
3688 header to the BFD flags.
3689 (alpha_ecoff_backend_data): Use it.
3690 (ecoffalpha_little_vec): Add DYNAMIC to object_flags.
3691 * aout64.c: Fix typo in conditional QMAGIC definition.
3692
3693 Wed Jul 6 00:13:17 1994 Jeff Law (law@snake.cs.utah.edu)
3694
3695 * hppabsd-core.c (hppabsd_core_core_file_p): Sanity check the
3696 value of clicksz to help weed out non HPPA BSD core files.
3697
3698 Tue Jul 5 13:26:02 1994 Stan Shebs (shebs@andros.cygnus.com)
3699
3700 Mach 3 support.
3701 * config.bfd (m88*-*-mach3*, mips*-dec-mach3*, mips*-*-mach3*):
3702 New targets.
3703 * configure.host (i[34]86-*-mach3*, ns32k-*-mach3*): Recognize
3704 "mach3" instead of "mach".
3705 (m88*-*-mach3*, mips*-dec-mach3*, mips*-*-mach3*): New hosts.
3706 * targets.c (m88kmach3_vec): New target vector.
3707 (bfd_target_vector): Add i386mach3_vec and m88kmach3_vec, but
3708 inside #if 0.
3709 * aoutx.h (some_aout_object_p) [MACH]: Recognize executables by
3710 checking for execute permission, instead of looking at entry
3711 point.
3712 * i386mach3.c: Update, define MACH, N_TXTOFF, N_TXTADDR,
3713 N_SHARED_LIB, don't include aout/*.h files, etc.
3714 * m88kmach3.c: New file, m88k Mach 3 target.
3715 * config/m88k-mach3.mt, config/mips-mach3.mt: New files, target
3716 makefile fragments.
3717 * config/i386mach3.mh, config/m88kmach3.mh, config/mipsmach3.mh:
3718 New files, host makefile fragments.
3719 * hosts/m88kmach3.h, hosts/mipsmach3.h: New files, host definitions.
3720
3721 Tue Jul 5 13:56:52 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3722
3723 * elfcode.h (swap_out_syms): Get alignment of common symbol from
3724 st_value field of saved ELF symbol information, if there is any.
3725
3726 Mon Jul 4 19:13:32 1994 Jeff Law (law@snake.cs.utah.edu)
3727
3728 * som.h (R_HPPA_COMPLEX): Define.
3729 * elf32-hppa.h (R_HPPA_COMPLEX): Define.
3730 (elf32_hppa_reloc_type): Delete R_PARISC_STUB_CALL_17.
3731
3732 Fri Jul 1 12:07:41 1994 Jeff Law (law@snake.cs.utah.edu)
3733
3734 * Support code for enabling the new style linker for PA ELF.
3735 * elfcode.h (swap_symbol_in, swap_symbol_out): Externalize.
3736 (elf_compute_section_file_positions): Pass link_info to
3737 the begin_write_processing hook.
3738 (bfd_elf_write_object_contents): Pass NULL for new link_info
3739 argument to final_write_processing hook.
3740 (elf_link_output_sym): Accept new "input_section" argument for
3741 the symbols's input section. All callers changed. Call the
3742 link_output_symbol_hook if it's defined.
3743 (elf_bfd_final_link): Call the final_write_processing hook if
3744 it's defined.
3745 * libelf.h (elf_backend_link_output_symbol_hook): Declare.
3746 (elf_backend_begin_write_processing): Add new "info" argument.
3747 (elf_backend_final_write_processing): Likewise.
3748 * elf32-target.h (elf_backend_link_output_symbol_hook): Provide
3749 a default definition.
3750 (elf32_bed): Add elf_backend_link_output_symbol_hook.
3751 * elf64-target.h: Likewise.
3752
3753 * Major rework of the PA ELF code. Uses the new style BFD
3754 linker, major cleanups.
3755 * hppa_stubs.h: Rewrite from scratch. Much smaller and simpler.
3756 * elf32-hppa.h: Delete all symbol extension related code.
3757 (hppa_look_for_stubs_in_section): Delete decl.
3758 (elf32_hppa_size_stubs, elf32_hppa_build_stubs): New decls.
3759 * elf32-hppa.c: Symbol extension stuff moved form elf32-hppa.h
3760 into elf32-hppa.c. Do not include aout64.h.
3761 (typdef hppa_stub_type): Delete.
3762 (elf32_hppa_stub_name_list_struct): Delete.
3763 (elf32_hppa_stub_description_struct): Delete.
3764 (arg_reloc_type): Use simpler enumerations. All references changed.
3765 (arg_location, arg_reloc_relocation): Likewise.
3766 (elf32_hppa_symextn_map_struct): Delete.
3767 (get_symbol_value): Delete.
3768 (elf32_hppa_get_sym_extn): Delete.
3769 (find_stubs, new_stubs, type_of_mismatch): Delete.
3770 (find_stub_by_name, add_stub_by_name): Delete.
3771 (hppa_elf_stub_finish, hppa_elf_stub_reloc): Delete.
3772 (hppa_elf_arg_reloc_needed): Renamed. Simplify.
3773 (hppa_elf_build_linker_stub, hppa_elf_create_stub_sec): Delete.
3774 (hppa_elf_long_branch_needed_p): Delete.
3775 (hppa_look_for_stubs_in_section): Delete.
3776 (hppa_elf_get_section_contents): Delete.
3777 (elf32_hppa_backend_symbol_processing): Delete.
3778 (elf32_hppa_backend_section_processing): Delete.
3779 (elf32_hppa_backend_section_from_shdr): Delete.
3780 (elf32_hppa_backend_fake_sections): Delete.
3781 (elf32_hppa_backend_section_from_bfd_section): Delete.
3782 (NEW_INSTRUCTION): Delete.
3783 (CURRENT_STUB_OFFSET): Delete.
3784 (elf32_hppa_relocate_section): New function.
3785 (elf32_hppa_bfd_final_link_relocate): New function.
3786 (elf32_hppa_size_symext): New function.
3787 (elf32_hppa_link_output_symbol_hook): New function.
3788 (elf32_hppa_read_symext_info): New function.
3789 (elf32_hppa_add_symbol_hook): New function.
3790 (elf32_hppa_name_of_stub): New function.
3791 (elf32_hppa_size_of_stub): New function.
3792 (elf32_hppa_build_one_sub): New function.
3793 (elf32_hppa_build_stubs): New function.
3794 (elf32_hppa_size_stubs): New function.
3795 (linker, stub and argument hash tables): Add appropriate
3796 structures, definitions and functions to implement all three
3797 hash tables.
3798 (hppa_elf_relocate_insn): Don't need argument location information
3799 in this function.
3800 (add_entry_to_symext_chain): Accept a symbol's argument location
3801 information rather than the symbol itself. All callers changed.
3802 (hppa_elf_gen_reloc_type): Simplify.
3803 (hppa_elf_set_section_contents): Stub section is no longer special.
3804 (hppa_elf_reloc): Greatly simplify.
3805 (elf32_hppa_begin_write_processing): Accept link_info argument.
3806 Handle being called from the BFD backend linker.
3807 (elf32_hppa_final_write_processing): Likewise.
3808 (elf_hppa_tc_make_sections): No longer call stub_finish.
3809
3810 Mon Jun 27 18:07:06 1994 Steve Chamberlain (sac@cirdan.cygnus.com)
3811
3812 * section.c (bfd_get_section_contents): Put in parens to get
3813 precedence right.
3814
3815 Sun Jun 26 18:08:29 1994 Jeff Law (law@snake.cs.utah.edu)
3816
3817 * libelf.h (relocate_section): New argument "output_names" added
3818 to prototype.
3819 * elfcode.h (elf_link_input_bfd): New argument "output_names"
3820 added to prototype of relocate_section. Pass the output symbol
3821 names to relocate_section.
3822 * elf32-i386.c (elf_i386_relocate_section): Use "output_names" to
3823 determine the name of a local symbol.
3824 * elf32-mips.c (mips_elf_relocate_section): Likewise.
3825 * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
3826
3827 Fri Jun 24 08:15:42 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
3828
3829 Add Solaris BCP (the part of Solaris which allows it to run
3830 SunOS4 a.out files) core file handling.
3831 * aoutf1.h (external_solaris_bcp_core, swapcore_solaris_bcp):
3832 New structure and its swap in function.
3833 (internal_sunos_core): New member c_data_addr, to receive the
3834 start address of the data section in the core file.
3835 (swapcore_sun3, swapcore_sparc, sunos4_core_file_p): Use it.
3836 (sunos4_core_file_p): Recognize Solaris BCP core file.
3837 (sunos4_core_file_matches_executable_p): Always indicate match
3838 for Solaris BCP core files.
3839
3840 Thu Jun 23 15:31:28 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3841
3842 Preliminary support for generating shared libraries, from Eric
3843 Youngdale <ericy@cais.cais.com>.
3844 * elfcode.h (prep_headers): If DYNAMIC, set e_type to ET_DYN.
3845 (elf_link_add_object_symbols): If generating a shared library,
3846 create dynamic sections for first input BFD with the right format.
3847 (elf_link_create_dynamic_sections): Don't create .interp section
3848 if creating a shared library.
3849 (elf_link_input_bfd): Skip dynamic sections in input file.
3850 (elf_bfd_final_link): If creating a shared library, it's OK for
3851 dynobj to have sections which are not SEC_IN_MEMORY.
3852 * elf32-i386.c (elf_i386_size_dynamic_sections): Only set .interp
3853 section if not creating a shared library.
3854 * elf32-sparc.c (elf_sparc_size_dynamic_sections): Likewise.
3855
3856 * elfcode.h (elf_object_p): Don't set DYNAMIC just because there
3857 is an SHT_DYNAMIC section.
3858
3859 * cf-i386lynx.c (i386coff_vec): Don't include DYNAMIC in
3860 object_flags.
3861 * coff-sparc.c (sparccoff_vec): Likewise.
3862 * hppabsd-core.c (hppabsd_core_vec): Likewise.
3863
3864 * aoutx.h (NAME(aout,some_aout_object_p)): Don't set SEC_RELOC
3865 just because DYNAMIC is set.
3866
3867 Thu Jun 23 12:53:41 1994 David J. Mackenzie (djm@rtl.cygnus.com)
3868
3869 * configure.in: Change --with-targets to --enable-targets and
3870 --with-64-bit-bfd to --enable-64-bit-bfd.
3871 * Makefile.in, mpw-make.in, targets.c: Change comments.
3872
3873 Wed Jun 22 17:59:59 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
3874
3875 * config.bfd (powerpc-*-elf*): New target, just like
3876 powerpc-*-sysv4*.
3877
3878 * linker.c (FAIL): Undefine macro before defining as enum.
3879
3880 Wed Jun 22 10:52:47 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3881
3882 * linker.c (_bfd_generic_link_add_archive_symbols): Initialize
3883 pass from abfd->archive_pass, and save it there as well.
3884
3885 * hash.c (bfd_hash_allocate): Don't call bfd_set_error if
3886 obstack_alloc returns NULL unless the size is non-zero.
3887
3888 * linker.c (archive_hash_allocate): Define.
3889 (_bfd_generic_link_add_archive_symbols): Use archive_hash_allocate
3890 rather than obstack_alloc, for clarity.
3891
3892 * elfcode.h (elf_get_reloc_upper_bound): Correct.
3893
3894 * aout64.c (BMAGIC, QMAGIC): Define if not already defined. From
3895 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>.
3896
3897 Linux ZMAGIC support from Eric Youngdale <ericy@cais.cais.com>.
3898 * libaout.h (struct aoutdata): Add field zmagic_disk_block_size.
3899 * aout-target.h (MY(callback)): Only set alignment according to
3900 architecture if the section sizes are aligned to that alignment,
3901 for backward compatibility.
3902 (MY(set_sizes)): Initialize zmagic_disk_block_size field.
3903 * aoutx.h (adjust_z_magic): Set ztih if using q_magic_format. Set
3904 text section filepos to zmagic_disk_block_size if not ztih. Use a
3905 different padding algorithm if not ztih.
3906 * i386linux.c (MY_text_includes_header): Don't define.
3907
3908 * aoutx.h (aout_link_check_ar_symbols): Just skip N_STAB and N_FN
3909 symbols; don't look them up in the hash table. From
3910 ralphc@pyramid.com (Ralph Campbell).
3911
3912 Tue Jun 21 11:47:20 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3913
3914 * coff-go32.c (go32coff_archive_p): Remove unused function.
3915
3916 * section.c (bfd_abs_section): Make const.
3917 (bfd_abs_section_ptr, bfd_is_abs_section): Define.
3918 (bfd_und_section): Make const.
3919 (bfd_und_section_ptr, bfd_is_und_section): Define.
3920 (bfd_com_section): Make const.
3921 (bfd_com_section_ptr): Define.
3922 (bfd_ind_section): Make const.
3923 (bfd_ind_section_ptr, bfd_is_ind_section): Define.
3924 (bfd_abs_symbol, bfd_com_symbol): Make const.
3925 (bfd_und_symbol, bfd_ind_symbol): Likewise.
3926 (global_syms): Cast initialization of section field.
3927 (STD_SECTION): Define as const, and cast initializations.
3928 * bfd-in2.h: Rebuilt.
3929 * Many files: Change uses of bfd_abs_section, etc., to use
3930 bfd_abs_section_ptr or bfd_is_abs_section, etc.
3931
3932 Mon Jun 20 11:06:27 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
3933
3934 * Many files: change all bfd_target vectors to be const. Change
3935 all uses of bfd_target * to be const bfd_target *. Change
3936 bfd_target_vector and bfd_default_vector arrays to be const
3937 bfd_target * const *.
3938
3939 * ecoff.c, libecoff.h, ecoffswap.h, coff-alpha.c, coff-mips.c,
3940 elf32-mips.c: Renamed all externally visible ECOFF routines which
3941 are local to BFD to start with _bfd_ecoff instead of just ecoff.
3942
3943 * ecoff.c (ecoff_swap_tir_in): Change input argument to const.
3944 (ecoff_swap_tir_out): Likewise.
3945 (ecoff_swap_rndx_in, ecoff_swap_rndx_out): Likewise.
3946 (ecoff_slurp_symbolic_info): Add new arguments to correspond to
3947 read_debug_info entry point in ecoff_debug_swap structure.
3948 Change all calls.
3949 * libecoff.h (ecoff_slurp_symbolic_info): Change declaration.
3950 * ecoffswap.h (ecoff_swap_tir_in, ecoff_swap_tir_out): Declare.
3951 (ecoff_swap_rndx_in, ecoff_swap_rndx_out): Declare.
3952 * coff-alpha.c (alpha_ecoff_backend_data): Initialize new
3953 ecoff_debug_swap fields.
3954 * coff-mips.c (mips_ecoff_backend_data): Likewise.
3955 * elf32-mips.c (mips_elf_read_ecoff_info): Undefine READ.
3956 (mips_elf_ecoff_debug_swap): Initialize new ecoff_debug_swap
3957 fields.
3958 * configure.in (bfd_elf32_bigmips_vec): Use ecoff.o and
3959 ecofflink.o.
3960 (bfd_elf32_littlemips_vec): Likewise.
3961 (ecoff_big_vec, ecoff_little_vec): Likewise.
3962 (ecoffalpha_little_vec): Likewise.
3963 * Makefile.in (BFD_LIBS): Remove ecoff.o and ecofflink.o.
3964 (BFD32_BACKENDS): Add ecoff.o and ecofflink.o.
3965
3966 * aoutx.h (NAME(aout,final_link)): Check flavour of sub, not abfd,
3967 when computing reloc sizes. From Eric Youngdale
3968 <ericy@cais.cais.com>.
3969 * elfcode.h (elf_bfd_final_link): Don't try to compute maximum
3970 reloc count or size for a non-ELF file.
3971
3972 * mipsbsd.c (MY_final_link_callback): Define to avoid warning.
3973
3974 * hp300hpux.c (MY_final_link_callback): Define to avoid warning.
3975 (BMAGIC, QMAGIC): Define; used by aoutx.h.
3976 (MY(slurp_symbol_table)): Change translate_from_native_sym_flags
3977 calls to use new parameters.
3978
3979 Fri Jun 17 14:45:32 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
3980
3981 * aout-target.h (MY(callback)): Set the alignments of the text,
3982 data and bss sections after determining the architecture.
3983
3984 * sunos.c (sunos_add_one_symbol): Treat a common symbol from a
3985 dynamic object as being in the .bss section of the object, rather
3986 than as being undefined.
3987
3988 Fri Jun 17 11:16:50 1994 Jeff Law (law@snake.cs.utah.edu)
3989
3990 * libhppa.h (bfd_hppa_insn2fmt, hppa_rebuild_insn): Make INLINE.
3991
3992 * elf32-hppa.h (elf_hppa_final_processing): Delete decl.
3993
3994 Thu Jun 16 23:36:23 1994 Jeff Law (law@snake.cs.utah.edu)
3995
3996 * elfcode.h (elf_link_input_bfd): Don't try to read local symbols
3997 if there aren't any in the input file.
3998
3999 Thu Jun 16 14:25:22 1994 Eric Youngdale (ericy@cais.cais.com)
4000
4001 * i386linux.c: Many new functions and definitions for linker
4002 support for Linux shared libraries.
4003 * bfd-in.h (bfd_linux_size_dynamic_sections): Declare.
4004 * bfd-in2.h: Rebuild.
4005
4006 Thu Jun 16 14:23:46 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4007
4008 * config.bfd: If second argument is ``_'', then, instead of
4009 echoing config file name, echo whether target uses leading
4010 underscores on symbol names. Add appropriate settings to
4011 different cases. Used by binutils/configure.in to set default for
4012 c++filt.
4013
4014 * elfcode.h (elf_bfd_final_link): If trying to generate a shared
4015 object, warn and return false.
4016
4017 * aoutx.h (NAME(aout,some_aout_object_p)): Accept BMAGIC objects
4018 and treat them as OMAGIC.
4019
4020 Wed Jun 15 18:02:21 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
4021
4022 Enable sparc v9 support for release. Note that this is still a
4023 work in progress, pending release of an ABI specification.
4024 * config.bfd, configure.in: Include sparc v9 elf config.
4025 * elfcode.h (prep_headers): Handle sparc v9 (64 bit).
4026 * reloc.c (bfd_reloc_code_real): New reloc types.
4027 * elf64-sparc.c: Implement elf64-sparc target.
4028 * Makefile.in, targets.c: Updated.
4029
4030 Wed Jun 15 01:34:07 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4031
4032 * libelf.h (struct elf_obj_tdata): New field dt_needed_name.
4033 (elf_dt_needed_name): New accessor macro.
4034 * elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name
4035 is set, use that instead of the filename for the DT_NEEDED dynamic
4036 entry.
4037 * elf.c (bfd_elf_set_dt_needed_name): New function.
4038 * bfd-in.h (bfd_elf_set_dt_needed_name): Declare.
4039 * bfd-in2.h: Rebuilt.
4040
4041 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add sinterpptr
4042 argument, and set it to the .interp section.
4043 * bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
4044 (bfd_elf64_size_dynamic_sections): Likewise.
4045 * bfd-in2.h: Rebuilt.
4046
4047 * coff-sparc.c (SWAP_OUT_RELOC_EXTRA): Define to clear the r_spare
4048 field of the reloc rather than letting it be garbage.
4049
4050 * archive.c (bfd_slurp_armap): Recognize __.SYMDEF/ as well as
4051 __.SYMDEF; the former was used in old Linux archives. From
4052 jrs@world.std.com (Rick Sladkey).
4053
4054 * i386linux.c (i386linux_write_object_contents): Define; like
4055 MY(write_object_contents) in aout-target.h, but set MACHTYPE to
4056 M_386. From jrs@world.std.com (Rick Sladkey).
4057 (MY_write_object_contents): Define.
4058
4059 * aoutx.h (translate_from_native_sym_flags): Treat N_SETV symbols
4060 as N_DATA symbols.
4061 (aout_link_add_symbols): Likewise.
4062
4063 * aoutx.h: Rewrite symbol duplicate elimination to use BFD hash
4064 tables.
4065 (struct stringtab_entry, struct stringtab_data): Remove.
4066 (HASHMAXLEN, HASH_CHAR, hash, compare, log2, emit_strtab): Remove.
4067 (struct strtab_hash_entry, struct strtab_hash): Define.
4068 (strtab_hash_newfunc, strtab_hash_lookup): Define.
4069 (stringtab_free, emit_stringtab): Define.
4070 (stringtab_init, add_to_stringtab): Rewrite.
4071 (NAME(aout,write_syms)): Use new stringtab code.
4072 (struct aout_final_link_info, NAME(aout,final_link)): Likewise.
4073 (aout_link_write_symbols, aout_link_write_other_symbol): Likewise.
4074
4075 * bfd-in.h (BFD_TRADITIONAL_FORMAT): Define new BFD flag to
4076 request BFD to write object in the traditional format, whatever
4077 that means for the particular backend.
4078 * bfd-in2.h: Rebuilt.
4079
4080 * hash.c (bfd_hash_allocate): If obstack_alloc fails, set
4081 bfd_error_no_memory.
4082
4083 Tue Jun 14 13:00:04 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4084
4085 * libaout.h (struct aoutdata): Add q_magic_format to subformat
4086 enum.
4087 * aout-target.h (MY_bfd_copy_private_bfd_data): Define as function
4088 if not already defined. Copy subformat information.
4089 (MY_text_includes_header): Define as 0 if not already defined.
4090 (MY(backend_data)): Use MY_text_includes_header rather than 0.
4091 (MY_final_link_callback): Rename from final_link_callback, and
4092 define only if MY_final_link_callback is not already defined.
4093 (MY_bfd_final_link): Rename use of final_link_callback to
4094 MY_final_link_callback.
4095 * aoutx.h (NAME(aout,some_aout_object_p)): Handle QMAGIC like
4096 ZMAGIC, but set the subformat to q_magic_format. Abort if the
4097 magic number if not recognized.
4098 (adjust_z_magic): Use QMAGIC if q_magic_format.
4099 * i386linux.c (MY_text_includes_header): Define as 1.
4100 (i386linux_bfd_final_link): New static function.
4101 (MY_bfd_final_link): Define as i386linux_bfd_final_link.
4102
4103 * aoutx.h (translate_to_native_sym_flags): Check both section and
4104 output_section against sections of abfd.
4105
4106 * libecoff.h (struct ecoff_link_hash_entry): Change type of
4107 written from boolean to char. Add new field small.
4108 * ecoff.c (ecoff_link_hash_newfunc): Initialize written to 0
4109 rather than false. Initialize small to 0.
4110 (ecoff_link_add_externals): If ECOFF type is scSUndefined, set
4111 small. If small is set, and hash table type is common, force the
4112 symbol into a section named SCOMMON and change the ECOFF type from
4113 scCommon to scSCommon.
4114 (ecoff_link_write_external): Set written to 1 rather than true.
4115 * coff-mips.c (mips_relocate_section): Correct JMPADDR reloc
4116 overflow check to consider section VMA of input file.
4117
4118 Mon Jun 13 14:20:07 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4119
4120 * aoutf1.h (aout_32_sunos4_write_object_contents): Handle a
4121 machine type of 68000.
4122 * aoutx.h (NAME(aout,machine_type)): Add new argument unknown.
4123 Set *unknown to true if machine type is really unknown, as opposed
4124 to M_UNKNOWN for the 68000.
4125 (NAME(aout,set_arch_mach)): Change NAME(aout,machine_type) call
4126 accordingly.
4127 * libaout.h (NAME(aout,machine_type)): Add new argument to
4128 prototype.
4129
4130 Sun Jun 12 20:21:03 1994 Jeff Law (law@snake.cs.utah.edu)
4131
4132 * som.c (EXEC_AUX_ID): Define based on availablity of HPUX_AUX_ID
4133 or HIUX_AUX_ID.
4134 (som_begin_writing): Use EXEC_AUX_ID instead of HPUX_AUX_ID.
4135 (som_write_armap): Use CPU_PA_RISC1_0 as the magic number. Note
4136 som.c is careful to always define CPU_PA_RISC1_0.
4137
4138 Sat Jun 11 16:32:30 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4139
4140 Add weak symbols as an extension to a.out.
4141 * aoutx.h (sym_in_text_section): Don't define.
4142 (sym_in_data_section, sym_in_bss_section): Likewise.
4143 (sym_is_undefined, sym_is_global_defn): Likewise.
4144 (sym_is_debugger_info, sym_is_fortrancommon): Likewise.
4145 (sym_is_absolute, sym_is_indirect): Likewise.
4146 (translate_from_native_sym_flags): Rewrite for clarity. Rearrange
4147 arguments and change caller. Handle weak symbols.
4148 (translate_to_native_sym_flags): Likewise.
4149 (aout_link_check_ar_symbols): Don't ignore weak symbols. Pull
4150 object in from archive if a weak defintion is found for an
4151 existing undefined symbol.
4152 (aout_link_add_symbols): Put all cases in switch. Set flags of an
4153 undefined symbol to 0. Handle weak symbols.
4154 (aout_link_write_symbols): Handle weak symbols.
4155 (aout_link_write_other_symbol): Likewise.
4156 (aout_link_input_section_std): Likewise.
4157 (aout_link_input_section_ext): Likewise.
4158 * sunos.c (sunos_write_dynamic_symbol): Likewise.
4159
4160 Fri Jun 10 13:25:13 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4161
4162 * aoutx.h (NAME(aout,canonicalize_reloc)): Handle .bss section.
4163 (NAME(aout,get_reloc_upper_bound)): Likewise.
4164
4165 * coff-i960.c (coff_i960_reloc_type_lookup): Add BFD_RELOC_CTOR.
4166 * linker.c (_bfd_generic_link_write_global_symbol): Don't assume
4167 the section of a common symbol is not NULL.
4168
4169 Wed Jun 8 23:15:53 1994 Stu Grossman (grossman@cygnus.com)
4170
4171 * nlmcode.h (nlm_object_p): Set EXEC_P and start address for GDB.
4172
4173 Wed Jun 8 23:57:34 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4174
4175 * aoutx.h (aout_get_external_symbols): Don't try to read the
4176 strings if there are no symbols.
4177 (aout_link_write_other_symbol): Use the output section when
4178 working out the type.
4179
4180 Tue Jun 7 13:25:08 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4181
4182 * elfcode.h (assign_section_numbers): Put shstrtab, symtab and
4183 strtab sections at end of file. Avoids bug in some versions of
4184 SVR4 strip. From Eric Youngdale <eric@tantalus.nrl.navy.mil>.
4185
4186 * coffcode.h (styp_to_sec_flags): If COFF_PAGE_SIZE is defined,
4187 set SEC_DEBUGGING for STYP_INFO sections.
4188 (coff_compute_section_file_positions): If COFF_PAGE_SIZE is
4189 defined, and D_PAGED is set, set the file position equal to the
4190 section VMA modulo COFF_PAGE_SIZE.
4191 * coffgen.c (coff_real_object_p): If F_EXEC is set, set D_PAGED.
4192 * coff-i386.c: Set D_PAGED in BFD target.
4193 (COFF_PAGE_SIZE): Define.
4194 * coff-m68k.c, coff-sparc.c: Likewise.
4195
4196 Mon Jun 6 10:57:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4197
4198 * elfcode.h (bfd_section_from_shdr): Don't turn a reloc section
4199 into a BFD section just because SHF_ALLOC is set; require that it
4200 not use the normal symbol table.
4201 (elf_section_from_bfd_section): Corresponding change.
4202
4203 Better indirect and warning symbol handling inspired by Stuart
4204 Quick <stuck@cs.man.ac.uk>.
4205 * linker.c (enum link_action): Add REF, MIND, CWARN, REFC.
4206 (link_action): Change UNDEF_ROW/def and UNDEFW_ROW/def from NOACT
4207 to REF. Change UNDEF_ROW/indr and UNDEFW_ROW/indr from CYCLE to
4208 REFC. Change DEF_ROW/indr and COMMON_ROW/indr from CYCLE to MDEF.
4209 Change DEFW_ROW/indr from CYCLE to NOACT. Change INDR_ROW/indr
4210 from MDEF to MIND. Change INDR_ROW/warn from WARNC to CYCLE.
4211 Change WARN_ROW/def and WARN_ROW/indr from MWARN to CWARN. Change
4212 WARN_ROW/com from MWARN to WARN. Change WARN_ROW/warn from NOACT
4213 to CYCLE. Change SET_ROW/warn from WARNC to CYCLE>
4214 (_bfd_generic_link_add_one_symbol): Handle REF, MIND, CWARN and
4215 REFC. If a new indirect symbol has been referenced, push the
4216 reference down to the symbol it points to. FIx handling of WARN.
4217 * aoutx.h (translate_from_native_sym_flags): If N_WARNING, don't
4218 clobber e_type of next symbol.
4219 (translate_to_native_sym_flags): Likewise.
4220 (aout_link_write_symbols): Loop on bfd_link_hash_warning as well
4221 as bfd_link_hash_indirect.
4222
4223 * libaout.h (struct aout_link_hash_entry): New field written.
4224 * aoutx.h (NAME(aout,link_hash_newfunc)): Initialize written.
4225 (aout_link_write_symbols): Use written, not root.written.
4226 (aout_link_write_other_symbol): Likewise.
4227 * sunos.c (sunos_scan_dynamic_symbol): Likewise.
4228 * libecoff.h (struct ecoff_link_hash_entry): New field written.
4229 * ecoff.c (ecoff_link_hash_newfunc): Initialize written.
4230 (ecoff_link_write_external): use written, not root.written.
4231 * genlink.h (struct generic_link_hash_entry): New field written.
4232 * linker.c (_bfd_link_hash_newfunc): Don't initialize written.
4233 (generic_link_hash_newfunc): Initialize written.
4234 (_bfd_generic_link_output_symbols): Use written, not root.written.
4235 (_bfd_generic_link_write_global_symbol): Likewise.
4236 (_bfd_generic_reloc_link_order): Likewise.
4237
4238 * libecoff.h (ecoff_data_type): Add linker field.
4239 * ecoff.c (ecoff_write_object_contents): Check new tdata linker
4240 field, rather than outsymbols being non-NULL, to decide whether to
4241 output the symbols and relocs.
4242 (ecoff_bfd_final_link): Set new tdata linker field to true.
4243
4244 * ecoff.c (ecoff_bfd_copy_private_bfd_data): Don't try to copy
4245 data to a non-ECOFF file.
4246
4247 * libbfd-in.h: Add warning that libbfd.h is a generated file.
4248 * libbfd.h: Rebuilt.
4249
4250 Sun Jun 5 15:02:30 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4251
4252 Changes to support ELF strip and objcopy on dynamically linked
4253 files.
4254 * elfcode.h (elf_fake_sections): Add prototype.
4255 (bfd_section_from_shdr): Make a BFD section from an SHT_HASH
4256 section, and from an SHT_DYNSYM section, and from the dynamic
4257 string table section.
4258 (elf_object_p): Set D_PAGED if there is a program header.
4259 (elf_make_sections): Remove.
4260 (fix_up_strtabs): Remove.
4261 (elf_fake_sections): Rewrite. Now sets sh_entsize.
4262 (assign_section_numbers): Rewrite. Now sets sh_link and sh_info
4263 for all sections.
4264 (elf_compute_section_file_positions): Don't call obsolete
4265 functions elf_make_sections or fix_up_strtabs.
4266 (swap_out_syms): Set sh_addralign to FILE_ALIGN rather than 4.
4267 (NAME(bfd_elf,write_object_contents)): Permit writing DYNAMIC
4268 objects.
4269 (elf_section_from_bfd_section): Treat SHT_DYNSYM like other normal
4270 sections. If an SHT_REL or SHT_RELA section is allocated or uses
4271 an unusual symbol table, permit a BFD section to map to it.
4272 Permit most SHT_STRTAB sections to have a BFD section mapped to
4273 them.
4274 (elf_bfd_final_link): Don't set sh_link, sh_info or sh_entsize
4275 fields of dynamic sections here; do it in assign_section_numbers.
4276 * elf32-target.h, elf64-target.h: Add D_PAGED to permitted object
4277 flags.
4278
4279 * elf.c (_bfd_elf_make_section_from_shdr): Only set SEC_DATA if
4280 SEC_LOAD is set, rather than checking SEC_ALLOC.
4281
4282 * libbfd-in.h (bfd_realloc): Change last arg to "size_t size".
4283
4284 Fri Jun 3 10:58:02 1994 Jeff Law (law@snake.cs.utah.edu)
4285
4286 * som.c (som_write_object_contents): Don't compute the file header's
4287 checksum here.
4288 (som_write_headers): Instead do it here.
4289
4290 * libbfd.h (bfd_realloc): Change last arg to "size_t size".
4291
4292 Thu Jun 2 17:39:22 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4293
4294 * hosts/sun3.h: Include <stdlib.h>. Don't declare free, exit or
4295 getenv.
4296
4297 Add linker support for SunOS shared libraries.
4298 * sunos.c: Include bfdlink.h. Add many new functions and
4299 definitions for SunOS shared library support.
4300 * bfd-in.h (bfd_sunos_record_link_assignment): Declare.
4301 (bfd_sunos_size_dynamic_sections): Declare.
4302 * bfd-in2.h: Rebuilt.
4303 * aoutx.h (struct aout_link_hash_entry): Move to libaout.h.
4304 (struct aout_link_hash_table): Likewise.
4305 (aout_link_hash_lookup, aout_link_hash_traverse): Likewise.
4306 (aout_hash_table): Likewise.
4307 (NAME(aout,link_hash_newfunc)): Rename from aout_link_hash_newfunc
4308 and make externally visible.
4309 (NAME(aout,link_hash_table_init)): New function.
4310 (NAME(aout,link_hash_table_create)): Call
4311 NAME(aout,link_hash_table_init), not _bfd_link_hash_table_init.
4312 (aout_link_add_symbols): Don't fail if no symbols. If it exists,
4313 call add_dynamic_symbols backend entry point for dynamic objects.
4314 Use add_one_symbol backend entry point if it exists.
4315 (NAME(aout,final_link)): Call finish_dynamic_link backend entry
4316 point, if it exists.
4317 (aout_link_input_bfd): For a dynamic object, call
4318 link_dynamic_object backend entry point, if it exists.
4319 (aout_link_write_other_symbol): Call write_dynamic_symbol backend
4320 entry point, if it exists.
4321 (aout_link_input_section): Don't read the relocs if they have
4322 already been read.
4323 (aout_link_input_section_std): When doing a final link, for a
4324 reloc against an external symbol, call check_dynamic_reloc backend
4325 entry point, if it exists.
4326 (aout_link_input_section_ext): Likewise.
4327 * libaout.h: Protect against multiple inclusion. Include
4328 bfdlink.h.
4329 (struct aout_link_hash_entry): Move in from aoutx.h.
4330 (struct aout_link_hash_table): Likewise.
4331 (aout_link_hash_lookup, aout_link_hash_traverse): Likewise.
4332 (aout_hash_table): Likewise.
4333 (struct aout_backend_data): Add fields add_dynamic_symbols,
4334 add_one_symbol, link_dynamic_object, write_dynamic_symbol,
4335 check_dynamic_reloc, and finish_dynamic_link.
4336 (struct aout_section_data_struct): Define new structure.
4337 (aout_section_data): Define new accessor macro.
4338 (NAME(aout,link_hash_newfunc)): Declare.
4339 (NAME(aout,link_hash_table_init)): Declare.
4340 * aoutf1.h (sunos4_aout_backend): Initialize new aout_backend_data
4341 fields.
4342 * aout-target.h (MY(backend_data)): Likewise.
4343 * i386aout.c (MY(backend_data)): Likewise.
4344 * i386mach3.c (MY(backend_data)): Likewise.
4345 * mipsbsd.c (MY(backend_data)): Likewise.
4346 * sparclynx.c (sparclynx_aout_backend): Likewise.
4347
4348 * aoutx.h (NAME(aout,slurp_symbol_table)): Don't zero out cached
4349 until we know it is non-NULL.
4350 (aout_link_write_symbols): Don't skip a warning symbol even if it
4351 has already been written out. If skipping an indirect symbol,
4352 skip the next symbol as well.
4353
4354 Wed Jun 1 14:37:50 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4355
4356 * hosts/sun3.h: Don't declare qsort, malloc or realloc.
4357
4358 Thu May 26 13:56:03 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
4359
4360 * nlmcode.h (nlm_swap_auxiliary_headers_in): Cast bfd_byte pointer
4361 to char pointer to avoid compiler warnings.
4362
4363 * dep-in.sed: Remove spaces before colons.
4364
4365 Merged changes back in from FSF gas release 2.3:
4366
4367 * Makefile.in (stmp-bfd.h): Wrap `if' block around grep
4368 invocation, to avoid a bug in BSD 4.4 make.
4369
4370 From Ralph Campbell:
4371 * mipsbsd.c (mips_fix_jmp_addr): If symbol is undefined, return an
4372 error.
4373 (mips_fix_hi16_s): Ditto.
4374
4375 Fri May 13 21:21:00 1994 DJ Delorie (dj@ctron.com)
4376
4377 * makefile.dos: define a default target, or archives won't work
4378 due to multiple matches.
4379
4380 Wed May 11 22:32:00 1994 DJ Delorie (dj@ctron.com)
4381
4382 * configure.bat: update for latest files
4383 * makefile.dos: update for correct targets and sources
4384 * coff-go32.c: [new] go32's COFF format (i386coff with underscores)
4385 * targets.c: add go32coff target
4386 * makefile.in: add coff-go32.c support
4387
4388 Thu May 26 10:10:21 1994 Jeff Law (law@snake.cs.utah.edu)
4389
4390 * som.c (som_prep_headers): Do not set the system_id here, private
4391 bfd data has not been copied yet.
4392 (som_write_headers): Instead do it here.
4393
4394 Tue May 24 16:17:18 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4395
4396 Make MIPS ELF use new ELF backend linker. No shared library
4397 support yet.
4398 * elf32-mips.c (bfd_mips_elf32_swap_gptab_in): New function.
4399 (bfd_mips_elf32_swap_gptab_out): New function.
4400 (mips_elf_object_p): If last symbol is LOCAL, set elf_bad_symtab.
4401 (mips_elf_final_write_processing): Set sh_info field for .gptab.*
4402 sections.
4403 (mips_elf_fake_sections): Set sh_entsize for .gptab.* sections.
4404 (mips_elf_read_ecoff_info): Read and free external symbols last,
4405 not first, for clarity.
4406 (struct mips_elf_link_hash_entry): Define new structure.
4407 (struct mips_elf_link_hash_table): Define new structure.
4408 (mips_elf_link_hash_lookup): Define new macro.
4409 (mips_elf_link_hash_traverse): Define new macro.
4410 (mips_elf_hash_table): Define new macro.
4411 (mips_elf_link_hash_newfunc): New static function.
4412 (mips_elf_link_hash_table_create): New static function.
4413 (mips_elf_add_symbol_hook): New static function.
4414 (struct extsym_info): Define new structure.
4415 (mips_elf_get_extr, mips_elf_set_index): Remove.
4416 (mips_elf_output_extsym): New static function.
4417 (gptab_compare): New static function.
4418 (mips_elf_final_link): Rewrite to use ELF backend linker, and to
4419 merge gptab information in input files.
4420 (mips_elf_relocate_hi16): New static function.
4421 (mips_elf_relocate_section): New static function.
4422 (bfd_elf32_bfd_link_hash_table_create): Define as macro before
4423 including elf32-target.h.
4424 (elf_backend_relocate_section): Likewise.
4425 (elf_backend_add_symbol_hook): Likewise.
4426 * elf.c (_bfd_elf_link_hash_newfunc): Rename from
4427 elf_link_hash_newfunc and make globally visible. Change caller.
4428 (_bfd_elf_link_hash_table_init): New function, broken out of
4429 _bfd_elf_link_hash_table_create.
4430 (_bfd_elf_link_hash_table_create): Use
4431 _bfd_elf_link_hash_table_init.
4432 * libelf.h (struct elf_obj_tdata): Add new field bad_symtab.
4433 (elf_bad_symtab): Define new accessor macro.
4434 (_bfd_elf_link_hash_newfunc): Declare.
4435 (_bew_elf_link_hash_table_init): Declare.
4436 * elfcode.h (elf_object_p): Call backend object_p hook after
4437 swapping in all the section headers.
4438 (map_program_segments): Correct typo: Internal for External.
4439 (elf_link_add_object_symbols): If elf_bad_symtab is set, read all
4440 the symbols. Skip STB_LOCAL symbols rather than giving an error.
4441 (elf_bfd_final_link): If elf_bad_symtab is set, allocate space for
4442 all symbols, not just locals.
4443 (elf_link_output_extsym): Only skip a symbol not mentioned by a
4444 regular file if it is mentioned by a dynamic object.
4445 (elf_link_input_bfd): If elf_bad_symtab is set, read all the
4446 symbols.
4447
4448 Fri May 20 13:38:23 1994 Jeff Law (law@snake.cs.utah.edu)
4449
4450 * som.c (som_set_reloc_info): Do not set any relocation info
4451 for SOM fixups which are never passed to BFD.
4452
4453 Fri May 20 11:57:05 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4454
4455 * coff-mips.c (mips_relocate_section): Add MIPS_R_JMPADDR overflow
4456 checking.
4457
4458 * elf32-i386.c (elf_i386_size_dynamic_sections): Add DT_DEBUG to
4459 the dynamic linking information for the benefit of the debugger.
4460 From Peter Schauer.
4461 * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
4462
4463 * elf.c (_bfd_elf_make_section_from_shdr): New function, based on
4464 code repeated three times in bfd_section_from_shdr in elfcode.h.
4465 * libelf.h (_bfd_elf_make_section_from_shdr): Declare.
4466 * elfcode.h (bfd_section_from_shdr): Use new function
4467 _bfd_elf_make_section_from_shdr to create BFD sections. If a
4468 reloc section does not use the main symbol table, or it is part of
4469 the process image, treat it as a normal section, not relocs.
4470 * elf32-mips.c (mips_elf_section_from_shdr): Use new function
4471 _bfd_elf_make_section_from_shdr.
4472
4473 Thu May 19 11:37:11 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4474
4475 * elf32-target.h, elf64-target.h: Change ar_max_namelen value from
4476 15 to 14 to match SVR4 ar.
4477
4478 Add support for ELF shared libraries. Loosely based on work by
4479 Eric Youngdale <ericy@cais.com>.
4480 * libelf.h (struct elf_backend_data): Add new fields for dynamic
4481 linking: elf_backend_create_dynamic_sections,
4482 elf_backend_adjust_dynamic_symbol,
4483 elf_backend_size_dynamic_sections,
4484 elf_backend_finish_dynamic_symbol,
4485 elf_backend_finish_dynamic_sections.
4486 (struct elf_link_hash_entry): Change type of align field to
4487 bfd_size_type. Add fields dynindx, dynstr_index, weakdef,
4488 elf_link_hash_flags.
4489 (struct elf_link_hash_table): Add fields dynobj, dynsymcount,
4490 dynstr, bucketcount.
4491 (bfd_elf32_swap_reloc_in, bfd_elf32_swap_reloc_out): Declare.
4492 (bfd_elf32_swap_reloca_in, bfd_elf32_swap_reloca_out): Declare.
4493 (bfd_elf32_swap_dyn_in, bfd_elf32_swap_dyn_out): Declare.
4494 (bfd_elf32_add_dynamic_entry): Declare.
4495 (bfd_elf64_swap_reloc_in, bfd_elf64_swap_reloc_out): Declare.
4496 (bfd_elf64_swap_reloca_in, bfd_elf64_swap_reloca_out): Declare.
4497 (bfd_elf64_swap_dyn_in, bfd_elf64_swap_dyn_out): Declare.
4498 (bfd_elf64_add_dynamic_entry): Declare.
4499 * elfcode.h (Elf_External_Dyn): Define.
4500 (elf_swap_reloc_in): Define as macro using NAME. Make externally
4501 visible.
4502 (elf_swap_reloc_out): Likewise.
4503 (elf_swap_reloca_in, elf_swap_reloca_out): Likewise.
4504 (elf_swap_dyn_in, elf_swap_dyn_out): Define as macro using NAME
4505 and as new externally visible function.
4506 (elf_fake_sections): Set section type of dynamic sections based on
4507 section names.
4508 (elf_write_phdrs): Remove.
4509 (assign_file_position_for_section): Add new align argument.
4510 Change all callers.
4511 (get_program_header_size): New static function.
4512 (struct seg_info): Remove.
4513 (map_program_segments): Completely rewrite.
4514 (assign_file_positions_except_relocs): Completely rewrite.
4515 (assign_file_positions_for_relocs): Don't set a file position for
4516 sections which already have one. Don't bother to align the file
4517 position here.
4518 (section_from_elf_index): Handle SHT_HASH and SHT_DYNAMIC
4519 section types.
4520 (elf_section_from_bfd_section): Likewise.
4521 (elf_slurp_symbol_table): If section_from_elf_index fails, just
4522 use bfd_abs_section rather than returning an error.
4523 (elf_sizeof_headers): Make useful.
4524 (elf_link_record_dynamic_symbol): New static function.
4525 (elf_link_add_object_symbols): Handle dynamic objects.
4526 (elf_link_create_dynamic_sections): New static function.
4527 (elf_add_dynamic_entry): Define as macro using NAME and as new
4528 externally visible function.
4529 (NAME(bfd_elf,record_link_assignment)): New function.
4530 (elf_buckets): New static variable.
4531 (NAME(bfd_elf,size_dynamic_sections)): New function.
4532 (struct elf_final_link_info): Add dynsym_sec and hash_sec fields.
4533 (elf_bfd_final_link): Handle dynamic linking. Create a section
4534 symbol for all ELF sections, not all BFD sections. Store section
4535 symbol index in target_index field, not index field. Traverse
4536 over global symbols even if stripping.
4537 (elf_link_output_extsym): Output dynamic symbols. Mark symbols
4538 defined by dynamic objects as undefined.
4539 (elf_link_input_bfd): Ignore dynamic objects. Use target_index
4540 field for section relocs, and make sure it is set.
4541 (elf_reloc_link_order): Use target_index field for section relocs,
4542 and make sure it is set.
4543 * elf.c (elf_link_hash_newfunc): Initialize dynindx, dynstr_index,
4544 weakdef and elf_link_hash_flags fields.
4545 (_bfd_elf_link_hash_table_create): Initialize dynobj, dynsymcount,
4546 dynstr and bucketcount fields.
4547 * elf32-target.h: Initialize new dynamic linking fields.
4548 * elf64-target.h: Likewise.
4549 * elf32-i386.c: New functions for dynamic linking support.
4550 * elf32-sparc.c: Likewise.
4551 * bfd-in.h (bfd_elf32_record_link_assignment): Declare.
4552 (bfd_elf64_record_link_assignment): Declare.
4553 (bfd_elf32_size_dynamic_sections): Declare.
4554 (bfd_elf64_size_dynamic_sections): Declare.
4555 * bfd-in2.h: Rebuilt.
4556
4557 Wed May 18 08:29:04 1994 Ian Lance Taylor (ian@cygnus.com)
4558
4559 * som.c: Don't include <sys/dir.h> or <sys/user.h>.
4560 (som_reloc_queue_find): Call memcmp instead of bcmp.
4561 (som_bfd_reloc_type_lookup): Change first argument to bfd *.
4562 (compare_syms): Change types of arguments to const void *.
4563 (bfd_section_from_som_symbol): Removed unused local found.
4564 (som_write_armap): Add elength, map, orl_count and int arguments.
4565 (som_write_armap): Use %ld and cast to long for getuid result.
4566
4567 Wed May 18 09:09:32 1994 Jeff Law (law@snake.cs.utah.edu)
4568
4569 * elf32-hppa.h (R_HPPA_ABS_CALL): Define.
4570 * elf32-hppa.c (hppa_elf_gen_reloc_type): Handle absolute calls.
4571
4572 * som.h (R_HPPA_ABS_CALL): Define.
4573 * som.c (hppa_som_gen_reloc_type): Delete complex relocation types.
4574
4575 Tue May 17 19:33:12 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
4576
4577 * coff-i960.c (icoff_little_vec, icoff_big_vec): Indicate leading
4578 underscore, for compatibility with Intel tool chain (gnu960v2).
4579
4580 Mon May 16 10:09:22 1994 Jeff Law (law@snake.cs.utah.edu)
4581
4582 * bfd-in2.h: Rebuilt.
4583
4584 * elf32-hppa.c: Change .hppa_linker_stubs to .PARISC.stubs,
4585 likewise for other PA specific sections.
4586 (hppa_elf_relocate_unwind_table): Delete unused
4587 function.
4588 (elf_hppa_howto_table): Completely new table based on 94-02-02
4589 draft PA ELF spec. Change relocation tags appropriately
4590 throughout elf32-hppa.c
4591 (hppa_elf_gen_reloc_type): Rewrite and simplify based on 94-02-02
4592 spec.
4593 (hppa_elf_reloc): Likewise.
4594 (hppa_look_for_stubs_in_section): Likewise
4595 (ELF_MACHINE_CODE): Change to EM_PARISC.
4596 * elf32-hppa.h: Include "elf/hppa.h". Change relocation tags
4597 appropriately throughout elf32-hppa.h.
4598 (elf32_hppa_reloc_type): New table based on 94-02-02 draft PA ELF
4599 spec.
4600 (R_HPPA_ABS_CALL, R_HPPA_COMPLEX*, R_HPPA_UNWIND): Delete definitions.
4601 * elfcode.h (prep_headers): Use EM_PARISC instead of EM_HPPA.
4602 * reloc.c (bfd_reloc_code_real): Delete unused HPPA relocations.
4603 * som.h (R_HPPA_ABS_CALL, R_HPPA_COMPLEX): Delete definitions.
4604
4605 * libhppa.h (hppa_field_adjust): Avoid adding constant_value into
4606 the final value twice for LR and RR field selectors.
4607
4608 Sat May 14 09:09:19 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
4609
4610 * aoutx.h (add_to_stringtab): Use BFD_ASSERT not assert. This
4611 avoids __eprintf troubles.
4612
4613 Fri May 13 10:51:21 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4614
4615 * bout.c (b_out_bfd_reloc_type_lookup): Handle BFD_RELOC_CTOR.
4616
4617 * config/mipsbelf.mt (SELECT_VECS): Add ecoff_big_vec and
4618 ecoff_little_vec since Irix 5 supports ECOFF executables.
4619
4620 Wed May 11 00:31:57 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4621
4622 * ecoff.c (ecoff_find_nearest_line): Handle fdr.adr != pdr.adr
4623 correctly.
4624
4625 * Makefile.in (stmp-bfd.h): Use || instead of ; to force SunOS
4626 make to invoke the shell.
4627
4628 Tue May 10 14:23:43 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4629
4630 * section.c (SEC_COFF_SHARED_LIBRARY): Renamed from
4631 SEC_SHARED_LIBRARY for clarity. Changed all uses.
4632 * bfd-in2.h: Rebuilt.
4633 * coffcode.h (sec_to_styp_flags): If SEC_COFF_SHARED_LIBRARY is
4634 set, set STYP_NOLOAD.
4635 * coffgen.c (coff_section_from_bfd_index): Don't get an assertion
4636 failure because of a bad shared library.
4637
4638 Mon May 9 18:53:40 1994 Bill Cox (bill@rtl.cygnus.com)
4639
4640 * linker.c: Add missing comment terminator.
4641
4642 Mon May 9 11:53:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4643
4644 * linker.c (_bfd_generic_link_add_one_symbol): If hashp and *hashp
4645 are not NULL, assume the caller has already looked up the symbol
4646 in the hash table and has stored the entry in *hashp.
4647 (generic_link_add_symbol_list): Set h to NULL before calling
4648 _bfd_generic_link_add_one_symbol.
4649 * ecoff.c (ecoff_link_add_externals): Likewise.
4650
4651 * elfcode.h (assign_file_positions_except_relocs): Don't require
4652 page shared between .data and .bss segments to contain zeroes.
4653
4654 * elfcode.h: Include bfdlink.h. Added several new functions to do
4655 linking.
4656 (ELF_R_TYPE): Define.
4657 (bfd_add_to_strtab): Return unsigned long. Change check for
4658 realloc failure.
4659 (elf_fake_sections): Check return value of bfd_add_to_strtab.
4660 (elf_compute_section_file_positions): Add link_info argument.
4661 Call elf_backend_begin_write_processing hook and prep_headers
4662 here. Only call swap_out_syms if link_info is NULL. Set up
4663 .shstrtab section here. Pass dosyms argument to
4664 assign_file_positions_except_relocs. Set output_has_begun flag.
4665 (assign_file_positions_for_symtab_and_strtabs): Add dosyms
4666 argument, and use it to control setting .symtab and .strtab file
4667 positions.
4668 (assign_file_positions_except_relocs): Add dosyms argument, and
4669 pass it on.
4670 (prep_headers): Check return value of bfd_add_to_strtab.
4671 (swap_out_syms): Likewise. Also, don't set up .shstrtab here.
4672 (NAME(bfd_elf,write_object_contents)): Some calls moved into
4673 elf_compute_section_file_positions.
4674 (elf_set_section_contents): Likewise.
4675 (elf_slurp_symbol_table): SHN_LORESERV corrected to SHN_LORESERVE.
4676 * libelf.h: Include bfdlink.h.
4677 (struct elf_backend_data): Add fields collect,
4678 elf_add_symbol_hook, elf_backend_relocate_section.
4679 (struct bfd_elf_section_data): Add field rel_hashes.
4680 (struct elf_obj_tdata): Remove fields internal_syms and symbols.
4681 Add field sym_hashes.
4682 (obj_symbols, obj_internal_syms): Remove definitions.
4683 (elf_sym_hashes): Define.
4684 (struct elf_link_hash_entry): Define.
4685 (struct elf_link_hash_table): Define.
4686 (elf_link_hash_lookup): Define.
4687 (elf_link_hash_traverse): Define.
4688 (elf_hash_table): Define.
4689 (_bfd_elf_link_hash_table_create): Declare.
4690 (bfd_elf32_bfd_link_add_symbols): Declare.
4691 (bfd_elf32_bfd_final_link): Declare.
4692 (bfd_elf64_bfd_link_add_symbols): Declare.
4693 (bfd_elf64_bfd_final_link): Declare.
4694 * elf.c: Include bfdlink.h.
4695 (elf_link_hash_newfunc): New function.
4696 (_bfd_elf_link_hash_table_create): New function.
4697 * elf32-target.h (elf_backend_relocate_section): If not defined,
4698 define as 0 and use generic linker. Otherwise, use ELF backend
4699 linker.
4700 (elf_backend_collect): If not defined, define as false.
4701 (elf_backend_add_symbol_hook): If not defined, define as 0.
4702 (elf32_bed): Initialize new fields.
4703 * elf64-target.h: Same changes as elf32-target.h.
4704 * elf32-i386.c: Include bfdlink.h.
4705 (elf_i386_relocate_section): New function.
4706 (elf_backend_relocate_section): Define.
4707 * elf32-sparc.c: Include bfdlink.h.
4708 (elf_info_to_howto): Change type of dst from Elf32_Internal_Rela
4709 to Elf_Internal_Rela (they're the same type anyhow).
4710 (elf_sparc_relocate_section): New function.
4711 (elf_backend_relocate_section): Define.
4712 * elf32-mips.c (elf_backend_collect): Define.
4713
4714 * Makefile.in (stmp-bfd.h): Avoid useless make error message in a
4715 different way; touch takes a numeric argument on some systems.
4716
4717 Fri May 6 13:34:14 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4718
4719 * nlmcode.h (nlm_swap_auxiliary_headers_in): Rework custom header
4720 handling for latest suggested format.
4721 (nlm_swap_auxiliary_headers_out): Likewise.
4722 (nlm_compute_section_file_positions): Likewise.
4723
4724 Fri May 6 11:11:50 1994 D. V. Henkel-Wallace (gumby@rtl.cygnus.com)
4725
4726 * config.bfd: handle erricsson config (for OSE).
4727
4728 Thu May 5 15:40:47 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
4729
4730 Patches from Ralph Campbell:
4731 * mipsbsd.c (mips_fix_jmp_addr): New function.
4732 (mips_fix_hi16_s): Use bfd_is_com_section.
4733 (mips_howto_table_ext): Call mips_fix_jmp_addr for MIPS_RELOC_JMP.
4734
4735 Fri May 6 11:48:55 1994 Steve Chamberlain (sac@cygnus.com)
4736
4737 * config/go32.mh: XX support.
4738
4739 From bill
4740 * Makefile.in: Build sysdep.h without causing worrying but
4741 harmless error message.
4742
4743 Wed May 4 11:09:53 1994 Ian Lance Taylor (ian@cygnus.com)
4744
4745 Changed m68k-aout to set flags to 0; m68k-sunos still uses 1.
4746 * aout0.c: New file.
4747 * targets.c (aout0_big_vec): Declare.
4748 (bfd_target_vector): Add aout0_big_vec.
4749 * config.bfd (m68*-*-aout*): Use m68k-0aout, not m68k-aout.
4750 * config/m68k-aout.mt (SELECT_VECS): Removed.
4751 * config/m68k-0aout.mt: New file.
4752 * configure.in (aout0_big_vec): New target vector: use aout0.o,
4753 aout32.o and stab-syms.o.
4754 * Makefile.in: Rebuilt dependencies.
4755 (BFD32_BACKENDS): Add aout0.o.
4756 (CFILES): Add aout0.c.
4757
4758 * libaout.h (struct aout_backend_data): Add field exec_hdr_flags.
4759 * aout-target.h (MY_exec_hdr_flags): If not defined, define as 0.
4760 MY(backend_data): Initialize exec_hdr_flags field.
4761 * aoutf1.h (sunos_32_set_arch_mach): Make static.
4762 (aout32_sunos4_write_object_contents): Set flags from backend
4763 info.
4764 (MY_exec_hdr_flags): If not defined, define as 1.
4765 (sunos4_aout_backend): Initialize exec_hdr_flags field.
4766 * aout-encap.c (encap_write_object_contents): Set flags from
4767 backend info.
4768 (MY_exec_hdr_flags): Define as N_FLAGS_COFF_ENCAPSULATE.
4769 * hp300hpux.c (MY_exec_hdr_flags): Define as 0x2.
4770 (MY(write_object_contents)): Set flags from backend info.
4771 * i386aout.c (MY(backend_data)): Initialize exec_hdr_flags field.
4772 * i386mach3.c (MY(backend_data)): Likewise.
4773 * mipsbsd.c (MY(backend_data)): Likewise.
4774 * sparclynx.c (NAME(aout,sparclynx_write_object_contents)): Set
4775 flags from backend info.
4776 (sparclynx_aout_backend): Initialize exec_hdr_flags field.
4777
4778 Wed May 4 02:56:00 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com)
4779
4780 * config.bfd (i386-*-gnu*): Treat like i386-*-mach*.
4781 (m68*-apollo-*): Treat all Apollo configs the same, don't handle
4782 BSD specially.
4783
4784 Tue May 3 19:43:21 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4785
4786 * cache.c: Rewrote to work correctly.
4787 * libbfd.h: Rebuilt.
4788 * opncls.c (bfd_cache_init, bfd_open_file): Don't declare.
4789 (bfd_fdopenr): Check return value of bfd_cache_init.
4790
4791 Fri Apr 29 15:08:23 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4792
4793 * cf-m68klynx.c (CALC_ADDEND): Check for PC relative relocs by
4794 enumerating them, since the reloc type can not serve as an index
4795 into the m68k COFF howto_table.
4796
4797 Fri Apr 29 09:42:39 1994 Steve Chamberlain (sac@cygnus.com)
4798
4799 * config.bfd (*-go32): Changed to coff.
4800 * coff-h8300.c (JMPL1): Get HOWTO right for 24bit branches.
4801 * srec.c (srec_write_symbols): Write out the correct number of
4802 symbols and don't stick in extra nulls.
4803
4804 Tue Apr 26 15:07:24 1994 Stan Shebs (shebs@andros.cygnus.com)
4805
4806 * cf-sparclynx.c (LYNXOS, COFF_LONG_FILENAMES): Define.
4807 * coff-sparc.c (BADMAG): Recognize LYNXCOFFMAGIC.
4808 (COFF_SPARC): Define.
4809 * coffcode.h (coff_new_section_hook): If COFF_SPARC, set alignment
4810 power of data and bss sections to 3.
4811 * hosts/lynx.h (__LYNXOS): Define.
4812
4813 Tue Apr 26 15:04:26 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
4814
4815 * elf32-hppa.c (hppa_elf_reloc): Adjust the addend of relocations
4816 against section symbols to avoid losing during ld -r.
4817
4818 Tue Apr 26 12:16:41 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4819
4820 * elfcode.h (shstrtab_length_fixed): Remove useless static
4821 variable.
4822 (struct elf_sect_data): Remove unused structure.
4823 (elf_object_p): Free memory if error occurs. Check return value
4824 of bfd_default_set_arch_mach. If elf_get_str_section fails,
4825 preserve error code rather than setting wrong_format.
4826 (null_shdr): Remove static variable.
4827 (assign_section_numbers): Remove shstrtab_length_fixed assignment.
4828 Allocate first section header on BFD obstack rather than using
4829 null_shdr.
4830 (bfd_prpsinfo): Remove unused local variable newsect.
4831
4832 Mon Apr 25 15:31:04 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4833
4834 * elfcode.h (write_relocs): Undo patch of Apr 10; breaks Solaris.
4835
4836 * elfcode.h (bfd_section_from_shdr): Use bfd_make_section_anyway
4837 to create sections. Check return value of recursive calls.
4838 (bfd_section_from_phdr): Check return value of bfd_make_section.
4839 (elf_symbol_from_bfd_symbol): Likewise.
4840 (elf_object_p): Check return value of bfd_section_from_shdr.
4841 (section_from_elf_index): Likewise.
4842 (elf_slurp_symbol_table): Check return value of
4843 section_from_elf_index.
4844 (bfd_prstatus): Return boolean value. Check return value of
4845 bfd_make_section.
4846 (bfd_fpregset): Likewise.
4847 (bfd_prpsinfo): Return boolean value.
4848 (elf_corefile_note): Check return values of bfd_prstatus,
4849 bfd_fpregset, and bfd_prpsinfo.
4850 (elf_core_file_p): Check return value of elf_corefile_note.
4851
4852 Fri Apr 22 11:08:38 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4853
4854 Get rid of the ECOFF .reginfo section hack.
4855 * ecoff.c (ecoff_mkobject_hook): Don't create a .reginfo section.
4856 (ecoff_new_section_hook): Don't handle the .reginfo section.
4857 (ecoff_sizeof_headers): Likewise.
4858 (ecoff_get_section_contents): Likewise.
4859 (ecoff_compute_section_file_positions): Likewise.
4860 (ecoff_compute_reloc_file_positions): Likewise.
4861 (ecoff_set_section_contents): Likewise.
4862 (ecoff_write_object_contents): Likewise.
4863 (ecoff_bfd_final_link): Likewise.
4864 (ecoff_bfd_copy_private_bfd_data): Copy the GP value and the
4865 register masks.
4866 (bfd_ecoff_get_gp_value): New function.
4867 (bfd_ecoff_set_gp_value): New function.
4868 (bfd_ecoff_set_regmasks): New function.
4869 * bfd-in.h (bfd_ecoff_get_gp_value): Declare.
4870 (bfd_ecoff_set_gp_value): Declare.
4871 (bfd_ecoff_set_regmasks): Declare.
4872 * bfd-in2.h: Rebuilt.
4873
4874 Fix ECOFF objcopy to actually copy debugging information.
4875 * ecoff.c (ecoff_bfd_copy_private_bfd_data): New function.
4876 (ecoff_get_extr): Assume that any ECOFF symbol with local clear is
4877 an external symbol, rather than checking the symbol flags. Only
4878 check the flags for non-ECOFF symbols.
4879 * ecofflink.c (bfd_ecoff_debug_externals): Don't crash if the
4880 output_section field of the symbol section is NULL.
4881 * libecoff.h (ecoff_bfd_copy_private_bfd_data): Declare as
4882 function rather than defining as macro.
4883
4884 * ieee.c (ieee_object_p): Set bfd_error_got_wrong_format if
4885 appropriate.
4886
4887 * targets.c (bfd_target_vector): Add bfd_elf32_powerpc_vec.
4888
4889 * aout-adobe.c (aout_adobe_set_arch_mach): Check return value of
4890 bfd_default_set_arch_mach. Accept bfd_arch_m68k as well as
4891 bfd_arch_unknown.
4892 * coffcode.h (coff_set_arch_mach): Check return value of
4893 bfd_default_set_arch_mach.
4894 * elfcode.h (elf_set_arch_mach): Don't check a list of ELF
4895 architectures, just see if the desired architecture matches what
4896 the ELF backend permits.
4897
4898 * coffcode.h (coff_set_arch_mach_hook): Rename SHMAGIC to
4899 SH_ARCH_MAGIC to match change in coff/sh.h.
4900 (coff_set_flags): Likewise.
4901
4902 Follow convention in which each NLM header has an 8 byte stamp
4903 followed by a four byte length.
4904 * libnlm.h (struct nlm_obj_tdata): Rename nlm_cygnus_section_hdr
4905 to nlm_cygnus_ext_header, and change type to
4906 Nlm_Internal_Cygnus_Ext_Header.
4907 (nlm_cygnus_ext_header): Rename from nlm_cygnus_section_header.
4908 * nlmcode.h (nlm_swap_auxiliary_headers_in): Use CyGnUsEx instead
4909 of CyGnUsSeCs. Rename from cygnus_section to cygnus_ext. Require
4910 length word to be 8.
4911 (nlm_swap_auxiliary_headers_out): Rename from cygnus_section to
4912 cygnus_ext. Set length word to 8.
4913 (nlm_compute_section_file_positions): Rename from cygnus_section
4914 to cygnus_ext.
4915
4916 Thu Apr 21 22:54:22 1994 Stu Grossman (grossman at cygnus.com)
4917
4918 * nlmcode.h (nlm_swap_auxiliary_headers_in): Keep section table
4919 (from CyGnUsSeCs) in more permanent memory to keep section names
4920 from getting trashed.
4921
4922 Thu Apr 21 09:29:37 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
4923
4924 * libelf.h (elf_obj_tdata): Add members for dynamic symbol table
4925 handling.
4926 * elfcode.h (bfd_section_from_shdr): Handle dynamic symbol table.
4927 * elfcode.h (elf_slurp_symbol_table): Take additional parameter
4928 to select static or dynamic symbol table and return number of
4929 symbols slurped or -1 on error.
4930 * elfcode.h (elf_get_symtab): Set bfd symcount from
4931 elf_slurp_symbol_table result.
4932 * elfcode.h (elf_get_dynamic_symtab_upper_bound,
4933 elf_canonicalize_dynamic_symtab): New functions to handle dynamic
4934 symbol table.
4935 * elf32-target.h, elf64-target.h (BFD_JUMP_TABLE_DYNAMIC):
4936 Change to handle dynamic symbol table, provide default definitions
4937 for dynamic relocs.
4938 * aoutx.h (howto_table_std, NAME(aout,swap_std_reloc_out),
4939 NAME(aout,swap_std_reloc_in), aout_link_input_section_std,
4940 aout_link_reloc_link_order): Handle r_jmptable and r_relative
4941 relocations.
4942
4943 Thu Apr 21 11:58:19 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4944
4945 Clean up uses of _bfd_dummy_target (from Peter Schauer).
4946 * libbfd.c (_bfd_dummy_target): Set bfd_error_wrong_format.
4947 * nlm-target.h (nlm_core_file_p): Define as _bfd_dummy_target, not
4948 NULL.
4949 * srec.c (srec_vec): Use _bfd_dummy_target, not NULL, in
4950 _bfd_check_format.
4951 (symbolsrec_vec): Likewise.
4952 * tekhex.c (tekhex_vec): Likewise.
4953
4954 * libnlm.h (struct nlm_obj_tdata): Add nlm_cygnus_section_hdr
4955 field.
4956 (nlm_cygnus_section_header): New accessor macro.
4957 * nlmcode.h (nlm_object_p): Free new tdata structure if failure.
4958 Add fixed sections before swapping in auxiliary headers. After
4959 adding sections, treat errors as real, not as wrong format.
4960 (nlm_swap_auxiliary_headers_in): Swap in the sections header; add
4961 sections to the BFD for each section it describes.
4962 (nlm_swap_auxiliary_headers_out): Swap out the sections header.
4963 (nlm_compute_section_file_positions): Account for the size of the
4964 sections header.
4965
4966 Wed Apr 20 16:45:51 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
4967
4968 * coff-sparc.c (sparccoff_vec): Change minimum alignment power to
4969 2, so that stab sections can be multiples of 4 bytes only.
4970
4971 * hosts/i386aix.h: Changes to avoid prototypes conflicts with the
4972 ones defined in stdlib.h. (From Minh Tran-Le.)
4973
4974 Wed Apr 20 14:15:21 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4975
4976 * nlm32-ppc.c: Complete rewrite for new version of PowerPC
4977 NetWare. Old code still present, but ifdeffed out.
4978
4979 * nlmcode.h (nlm_swap_auxiliary_headers_in): Don't assume a
4980 particular format for the customer header. Allocate a block of
4981 memory and read it into that.
4982 (nlm_swap_auxiliary_headers_out): Write out the block of memory.
4983 (nlm_compute_section_file_positions): Include length of customer
4984 header when computing its size.
4985
4986 Mon Apr 18 14:27:17 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
4987
4988 * som.c (som_prep_headers): Get the space's number from the
4989 backend private section data rather than target_index.
4990 (bfd_som_set_section_attributes): Store the space's number
4991 in the backend private section data rather than target_index.
4992
4993 * som.h (som_copyable_section_data_struct): Add space_number.
4994
4995 Fri Apr 15 12:22:07 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
4996
4997 * coff-a29k.c (reloc_processing): Always set the address of a
4998 R_IHCONST reloc to that of the immediately preceding R_IHIHALF.
4999 gas does this anyhow, but some other assemblers seem to leave
5000 garbage in the R_IHCONST address field.
5001
5002 * bfd/archive.c: Consistently use ARFMAG; from
5003 schwab@issan.informatik.uni-dortmund.de (Andreas Schwab).
5004 (_bfd_write_archive_contents): Use ARFMAG rather than '`' and
5005 '\012'.
5006 (bsd_write_armap): Likewise.
5007 (coff_write_armap): Likewise.
5008
5009 * coff-mips.c (mips_relocate_section): When relaxing, adjust local
5010 relocs against the .text section as required.
5011 * ecofflink.c (bfd_ecoff_debug_accumulate): When relaxing, adjust
5012 PDR addresses as required.
5013
5014 * ecoff.c (ecoff_emit_aggregate): Take fdr argument. Map fdr
5015 index through rfd map if it exists. Check for a couple of cases
5016 which gdb handles specially. Change all callers.
5017 (ecoff_type_to_string): Take fdr argument rather than aux_ptr and
5018 bigendian argument. Change all callers.
5019 (ecoff_print_symbol): Handle stStruct, stUnion and stEnum.
5020
5021 Thu Apr 14 13:05:10 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5022
5023 * coff-mips.c (mips_howto_table): Add dummy entries to account for
5024 numbering changes in include/coff/mips.h. Add entries for
5025 MIPS_R_RELHI and MIPS_R_RELLO.
5026 (mips_ecoff_swap_reloc_in): Handle an extra bit for the reloc type
5027 when little endian. Treat internal MIPS_R_RELLO or MIPS_R_RELHI
5028 relocs like MIPS_R_SWITCH, and convert r_offset from 24 to 32
5029 bits.
5030 (mips_ecoff_swap_reloc_out): Likewise.
5031 (mips_adjust_reloc_in): Handle internal MIPS_R_RELLO or
5032 MIPS_R_RELHI relocs like MIPS_R_SWITCH.
5033 (mips_adjust_reloc_out): Likewise.
5034 (mips_relhi_addr, mips_relhi_addend): New static variables.
5035 (mips_relhi_reloc, mips_rello_reloc): New functions.
5036 (mips_bfd_reloc_type_lookup): Turn BFD_RELOC_PCREL_HI16_S into
5037 MIPS_R_RELHI and turn BFD_RELOC_PCREL_LO16 into MIPS_R_RELLO.
5038 (mips_relocate_hi): Rename from mips_relocate_refhi, and add pcrel
5039 argument. Changed all callers.
5040 (mips_relocate_section): Rename got_reflo to got_lo and
5041 reflo_int_rel to lo_int_rel. Handle MIPS_R_RELLO and MIPS_R_RELHI
5042 relocs.
5043 (mips_relax_section): Adjust MIPS_R_RELHI/MIPS_R_RELLO pairs when
5044 expanding a PC relative call.
5045
5046 * reloc.c (bfd_reloc_code_real_type): Add BFD_RELOC_PCREL_HI16_S
5047 and BFD_RELOC_PCREL_LO16.
5048 * bfd-in2.h: Rebuilt.
5049
5050 Wed Apr 13 11:50:07 1994 Stan Shebs (shebs@andros.cygnus.com)
5051
5052 * coff-sparc.c (sparccoff_vec): Set minimum alignment power to 3.
5053
5054 Tue Apr 12 13:36:20 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5055
5056 * som.c (som_write_fixups): Always emit at least
5057 one relocation for any non-bss section.
5058
5059 Mon Apr 11 14:41:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5060
5061 * elfcode.h (assign_file_positions_except_relocs): Don't require
5062 the file alignment to correspond to the page size when linking
5063 with -N.
5064
5065 Sun Apr 10 01:02:24 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5066
5067 * elfcode.h (write_relocs): For rela relocations, adjust the
5068 addend for relocations involving section symbols to account
5069 for the lossage of 1:1 mapping from input section symbols to
5070 output section symbols.
5071
5072 Fri Apr 8 12:22:02 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5073
5074 * aoutx.h (NAME(aout,make_sections)): New function.
5075 (NAME(aout,some_aout_object_p)): Call NAME(aout,make_sections)
5076 rather than making sections inline.
5077 (NAME(aout,mkobject)): Don't make any sections.
5078 (NAME(aout,adjust_sizes_and_vmas)): Call NAME(aout,make_sections).
5079 (NAME(aout,final_link)): Don't dereference obj_textsec (abfd) or
5080 obj_datasec (abfd) if they are NULL.
5081 * libaout.h (NAME(aout,make_sections)): Declare.
5082 * bout.c (b_out_mkobject): Don't make any sections.
5083 (b_out_write_object_contents): Call aout_32_make_sections.
5084 (b_out_set_section_contents): Likewise.
5085 * i386os9k.c (os9k_mkobject): Don't make any sections.
5086 (os9k_write_object_contents): Call aout_32_make_sections.
5087 (os9k_set_section_contents): Likewise.
5088
5089 * aoutx.h (NAME(aout,new_section_hook)): Don't set N_EXT in target
5090 index.
5091
5092 Wed Apr 6 20:44:56 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
5093
5094 * config.bfd, configure.host: Add mips-*-sysv4* support.
5095
5096 Thu Apr 7 14:23:05 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5097
5098 * coff-mips.c (mips_howto_table): Add entry for MIPS_R_SWITCH.
5099 (mips_ecoff_swap_reloc_in): For MIPS_R_SWTICH, copy r_symndx into
5100 r_offset and set r_symndx to RELOC_SECTION_TEXT.
5101 (mips_ecoff_swap_reloc_out): For MIPS_R_SWITCH, get the r_symndx
5102 value from the r_offset field.
5103 (mips_adjust_reloc_in): Maximum r_type value is now MIPS_R_SWITCH.
5104 For MIPS_R_SWITCH, copy the r_offset field into the addend field.
5105 (mips_adjust_reloc_out): For MIPS_R_SWITCH, copy the addend field
5106 into the r_offset field.
5107 (mips_switch_reloc): New function.
5108 (mips_bfd_reloc_type_lookup): Translate BFD_RELOC_GPREL32 into
5109 MIPS_R_SWITCH.
5110 (mips_relocate_section): Handle MIPS_R_SWITCH.
5111 (mips_relax_section): Adjust MIPS_R_SWITCH offset if necessary.
5112
5113 Thu Apr 7 11:10:51 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5114
5115 * elfcode.h (elf_set_section_contents): Support calling the backend
5116 function elf_backend_begin_write_processing when just beginning to
5117 write an object file.
5118
5119 * libelf.h (elf_backend_begin_write_processing): Declare.
5120
5121 * elf{32,64}-target.h (elf_backend_begin_write_processing): Provide
5122 a default definition.
5123 (elf{32,64}_bed): Add elf_backend_begin_write_processing.
5124
5125 * elf32-hppa.h (elf_hppa_tc_symbol): Delete extern declaration.
5126 (elf_hppa_tc_make_sections): Likewise.
5127
5128 * elf32-hppa.c (symext_chain_built): Delete.
5129 (symext_chain_size): Renamed from symextn_contents_real_size.
5130 (elf32_hppa_backend_{begin,final}_write_processing): New functions.
5131 (add_entry_to_symext_chain): New function.
5132 (hppa_elf_set_section_contents): Ignore writes to the symbol extension
5133 section until it's been rebuilt internally.
5134 (hppa_elf_get_section_contents): Symbol extension section is no
5135 longer special.
5136 (elf_backend_{begin,final}_write_processing): Define.
5137 (elf_hppa_tc_make_sections): Simplify now that much code has
5138 migrated into elf32_hppa_backend_{being,final}_write_processing.
5139
5140 Wed Apr 6 17:24:14 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5141
5142 Add new target vectors to read the dynamic symbols and dynamic
5143 relocs. Change a.out to use these rather than reading the dynamic
5144 symbols and relocs along with the normal symbols and relocs.
5145 * targets.c (bfd_target): Add fields
5146 _bfd_get_dynamic_symtab_upper_bound,
5147 _bfd_canonicalize_dynamic_symtab,
5148 _bfd_get_dynamic_reloc_upper_bound,
5149 _bfd_canonicalize_dynamic_reloc.
5150 (BFD_JUMP_TABLE_DYNAMIC): Define.
5151 * libbfd-in.h (_bfd_nodynamic_get_dynamic_symtab_upper_bound):
5152 Define.
5153 (_bfd_nodynamic_canonicalize_dynamic_symtab): Define.
5154 (_bfd_nodynamic_get_dynamic_reloc_upper_bound): Define.
5155 (_bfd_nodynamic_canonicalize_dynamic_reloc): Define.
5156 * bfd.c (bfd_get_dynamic_symtab_upper_bound): Define.
5157 (bfd_canonicalize_dynamic_symtab): Define.
5158 (bfd_get_dynamic_reloc_upper_bound): Define.
5159 (bfd_canonicalize_dynamic_reloc): Define.
5160 * sunos.c (MY_read_dynamic_symbols): Don't define.
5161 (MY_read_dynamic_relocs): Don't define.
5162 (MY_get_dynamic_symtab_upper_bound): Define.
5163 (MY_canonicalize_dynamic_symtab): Define.
5164 (MY_get_dynamic_reloc_upper_bound): Define.
5165 (MY_canonicalize_dynamic_reloc): Define.
5166 (struct sunos_dynamic_info): Change type of dynsym_count and
5167 dynrel_count to long. Add fields canonical_dynsym and
5168 canonical_dynrel.
5169 (sunos_read_dynamic_info): Check that BFD had DYNAMIC flag set.
5170 Clear info->canonical_dynsym and info->canonical_dynrel.
5171 (MY(read_dynamic_symbols)): Removed.
5172 (MY(read_dynamic_relocs)): Removed.
5173 (sunos_get_dynamic_symtab_upper_bound): New function.
5174 (sunos_canonicalize_dynamic_symtab): New function.
5175 (sunos_get_dynamic_reloc_upper_bound): New function.
5176 (sunos_canonicalize_dynamic_reloc): New function.
5177 * libaout.h: Declare struct reloc_ext_external and
5178 reloc_std_external to avoid prototype problems.
5179 (struct aout_backend_data): Remove fields read_dynamic_symbols and
5180 read_dynamic_relocs.
5181 (NAME(aout,translate_symbol_table)): Declare.
5182 (NAME(aout,swap_ext_reloc_in)): Declare.
5183 (NAME(aout,swap_std_reloc_in)): Declare.
5184 * aoutx.h (NAME(aout,translate_symbol_table)): Renamed from
5185 translate_symbol_table and made non-static. Changed all callers.
5186 (NAME(aout,slurp_symbol_table)): Don't read dynamic symbols.
5187 (NAME(aout,slurp_reloc_table)): Don't read dynamic relocs.
5188 (NAME(aout,get_reloc_upper_bound)): Don't count dynamic relocs.
5189 * aoutf1.h (aout_32_sunos4_write_object_contents): Don't bother to
5190 remove dynamic symbols and relocs. They will no longer be
5191 present.
5192 (MY_read_dynamic_symbols): Don't define.
5193 (MY_read_dynamic_relocs): Don't define.
5194 (sunos4_aout_backend): Don't initialize dynamic entry points.
5195 * aout-target.h (MY_read_dynamic_symbols): Don't define.
5196 (MY_read_dynamic_relocs): Don't define.
5197 (MY(backend_data)): Don't initialize dynamic entry points.
5198 (MY_get_dynamic_symtab_upper_bound): If not defined, define to
5199 _bfd_nodynamic version.
5200 (MY_canonicalize_dynamic_symtab): Likewise.
5201 (MY_get_dynamic_reloc_upper_bound): Likewise.
5202 (MY_canonicalize_dynamic_reloc): Likewise.
5203 * All backends: Added BFD_JUMP_TABLE_DYNAMIC to target vector.
5204 * bfd-in2.h: Rebuilt.
5205 * libbfd.h: Rebuilt.
5206
5207 * cf-m68klynx.c: Include sysdep.h.
5208
5209 * hp300hpux.c: Removed some spaces in uses of NAME to avoid
5210 problems with traditional C compilers.
5211
5212 * targets.c (bfd_target): Rearranged fields in target vector.
5213 Removed _bfd_debug_info_start, _bfd_debug_info_end and
5214 _bfd_debug_info_accumulate, which were never used.
5215 (BFD_JUMP_TABLE_GENERIC, BFD_JUMP_TABLE_COPY): Defined.
5216 (BFD_JUMP_TABLE_CORE, BFD_JUMP_TABLE_ARCHIVE): Defined.
5217 (BFD_JUMP_TABLE_SYMBOLS, BFD_JUMP_TABLE_RELOCS): Defined.
5218 (BFD_JUMP_TABLE_WRITE, BFD_JUMP_TABLE_LINK): Defined.
5219 * All backends: Changed to use the new BFD_JUMP_TABLE_* macros
5220 rather than the single JUMP_TABLE macro. Removed many of the
5221 weird macro definitions needed to support the monolithic
5222 JUMP_TABLE.
5223 * bfd-in.h (JUMP_TABLE): Removed.
5224 * libbfd-in.h: Define a bunch of macros, and declare a few
5225 functions, for use with the new BFD_JUMP_TABLE_* macros.
5226 * libbfd.c (_bfd_dummy_new_section_hook): Removed.
5227 (bfd_false): Set bfd_error_invalid_operation.
5228 (bfd_nullvoidptr): Likewise.
5229 (bfd_n1): New function.
5230 (_bfd_nocore_core_file_matches_executable_p): Renamed from
5231 _bfd_dummy_core_file_matches_executable_p.
5232 (_bfd_nocore_core_file_failing_command): Similar rename. Set
5233 bfd_error_invalid_operation.
5234 (_bfd_nocore_core_file_failing_signal): Likewise.
5235 (_bfd_generic_get_section_contents): Renamed from
5236 bfd_generic_get_section_contents. Changed all callers.
5237 (_bfd_generic_set_section_contents): Similar rename.
5238 * ieee.c: #if 0 out ieee_bfd_debug_info_start,
5239 ieee_bfd_debug_info_end, ieee_bfd_debug_info_accumulate. They
5240 were never called.
5241 * bfd-in2.h: Rebuilt.
5242 * libbfd.h: Rebuilt.
5243
5244 Tue Apr 5 22:10:04 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5245
5246 * Crude support for examining dynamic libraries.
5247 * som.c (som_object_setup): Set DYNAMIC flag for SHL_MAGIC and
5248 DL_MAGIC objects.
5249 (som_prep_headers): Preserve the system_id for DYNAMIC objects.
5250 Use SHL_MAGIC as the magic number of the DYNAMIC flag is set.
5251 Write exec headers for DYNAMIC objects.
5252 (som_begin_writing): DYNAMIC objects have the same alignment
5253 restrictions as D_PAGED objects.
5254 (bfd_section_from_som_symbol): Treat DYNAMIC objects like EXEC_P
5255 objects.
5256 (object_flags): Add DYNAMIC.
5257
5258 Tue Apr 5 17:48:52 1994 Stan Shebs (shebs@andros.cygnus.com)
5259
5260 * i386lynx.c, sparclynx.c (NAME): Remove embedded whitespace in
5261 macro uses, confuses some non-ANSI compilers.
5262
5263 Tue Apr 5 15:50:01 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5264
5265 * som.c (som_bfd_free_cached_info): Add missing PARAMS decl.
5266 Don't free anything if we don't have a bfd_object.
5267 (som_close_and_cleanup): Call som_bfd_free_cached_info.
5268
5269 Tue Apr 5 11:22:38 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5270
5271 * elf32-mips.c (mips_elf_final_link): Don't remove empty sections.
5272 It turns out not to be required on Irix 5, and it causes problems
5273 if the sections happen to contain symbols.
5274
5275 * elfcode.h (write_shdrs_and_ehdr): Correct bfd_write check.
5276
5277 * aoutx.h (NAME(aout,canonicalize_reloc)): Don't error out if
5278 section->relocation is NULL; malloc might have returned NULL when
5279 given a zero size if there were no relocations.
5280 * bout.c (b_out_canonicalize_reloc): Likewise.
5281 * coffcode.h (coff_canonicalize_reloc): Likewise.
5282 * ecoff.c (ecoff_canonicalize_reloc): Likewise.
5283 * elfcode.h (elf_canonicalize_reloc): Likewise.
5284 * mipsbsd.c (MY(canonicalize_reloc)): Likewise.
5285 * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
5286 * nlmcode.h (nlm_canonicalize_reloc): Likewise.
5287 * som.c (som_canonicalize_reloc): Likewise.
5288 * hp300hpux.c (MY(slurp_reloc_table)): Likewise. Also, if malloc
5289 returns NULL, don't report an error if we asked for zero bytes.
5290 * i386lynx.c (NAME(lynx,slurp_reloc_table)): If malloc returns
5291 NULL, don't report an error if we asked for zero bytes.
5292 * nlmcode.h (nlm_slurp_reloc_fixups): Likewise.
5293
5294 Mon Apr 4 15:30:49 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5295
5296 * aoutx.h (NAME(aout,bfd_free_cached_info)): Don't free anything
5297 if we don't have a bfd_object.
5298
5299 Made sure that every call to bfd_read, bfd_write, and bfd_seek
5300 checks the return value and handled bfd_error correctly. These
5301 changes are not itemised. Also:
5302 * aoutx.h (emit_strtab): Change return type to boolean, and return
5303 errors.
5304 (NAME(aout,write_syms)): Check emit_strtab return value.
5305 (NAME(aout,final_link)): Likewise.
5306 * coffcode.h (coff_write_relocs): Change return type to boolean,
5307 and return errors.
5308 (coff_write_object_contents): Check coff_write_relocs return
5309 value.
5310 * i386os9k.c (os9k_swap_exec_header_in): Change return type to
5311 boolean.
5312 (os9k_object_p): Check os9k_swap_exec_header_in return value.
5313 * oasys.c (oasys_read_record): Change return type to boolean.
5314 (oasys_slurp_symbol_table: Check oasys_read_record return value.
5315 (oasys_object_p, oasys_slurp_section_data): Likewise.
5316 (oasys_write_record): Change return type to boolean.
5317 (oasys_write_syms): Likewise. Also, check oasys_write_record
5318 return value.
5319 (oasys_write_sections): Check oasys_write_record return value.
5320 (oasys_write_header): Change return type to boolean. Check
5321 oasys_write_record return value.
5322 (oasys_write_end, oasys_write_data): Likewise.
5323 (oasys_write_object_contents): Check return values of
5324 oasys_write_header, oasys_write_syms, oasys_write_data, and
5325 oasys_write_end.
5326 * srec.c (srec_write_record): Change return type to boolean.
5327 (srec_write_header): Likewise. Also, check srec_write_record
5328 return value.
5329 (srec_write_section, srec_write_terminator): Likewise.
5330 (srec_write_symbols): Change return type to boolean.
5331 (internal_srec_write_object_contents): Check return value of
5332 srec_write_symbols, srec_write_header, srec_write_section, and
5333 srec_write_terminator.
5334
5335 * Makefile.in: Rebuilt dependencies.
5336
5337 Mon Apr 4 10:56:45 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
5338
5339 * aix386-core.c (aix386_bfd_is_local_label): Correct cast from
5340 asection to asymbol.
5341 * ptrace-core.c (ptrace_unix_bfd_is_local_label): Correct cast from
5342 bfd to asymbol.
5343 * trad-core.c (trad_unix_bfd_is_local_label): Correct cast from
5344 asection to asymbol.
5345
5346 Sun Apr 3 18:27:29 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5347
5348 * som.c (som_slurp_string_table): Use malloc to allocate space
5349 for the cached copy of the native string table.
5350 (som_slurp_symbol_table): Likewise for the native symbol table.
5351 (som_slurp_reloc_table): Likewise for the native and generic
5352 relocation tables.
5353 (som_bfd_free_cached_info): Free the cached native strings,
5354 symbols, and relocations. Also free the canonical cached
5355 relocations.
5356
5357 Fri Apr 1 12:40:58 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5358
5359 * aoutx.h (aout_link_write_symbols): If keep_memory is false, make
5360 sure the symbol name is stored in permanent memory before adding
5361 it to the string table.
5362
5363 * archive.c (_bfd_write_archive_contents): Once we've found an
5364 object, don't bother to look for more when deciding whether to
5365 build a map.
5366 (compute_and_write_armap): After adding the symbols for a BFD,
5367 call bfd_free_cached_info on it.
5368
5369 Add bfd_free_cached_info support to a.out backends.
5370 * aoutx.h (aout_get_external_symbols): Renamed from
5371 aout_link_get_symbols. Read strings even if symbols have been
5372 read. Store string size in obj_aout_string_size.
5373 (NAME(aout,slurp_symbol_table)): Call aout_get_external_symbols to
5374 read the symbols. Allocate the cached symbols with malloc, not
5375 bfd_alloc.
5376 (NAME(aout,slurp_reloc_table)): Allocate the cached relocs with
5377 malloc, not bfd_alloc.
5378 (NAME(aout,bfd_free_cached_info)): New function; free cached
5379 symbols and relocs.
5380 * libaout.h (struct aoutdata): Add external_string_size field.
5381 (obj_aout_external_string_size): New accessor macro.
5382 (NAME(aout,close_and_cleanup)): Don't declare.
5383 (NAME(aout,bfd_free_cached_info)): Declare.
5384 (aout_32_close_and_cleanup): Don't define.
5385 (aout_64_close_and_cleanup): Don't define.
5386 * aout-target.h (MY_bfd_free_cached_info): If not already defined,
5387 define as NAME(aout,free_cached_info).
5388 (MY_close_and_cleanup): If not already defined, define as
5389 MY_bfd_free_cached_info.
5390 * aout-adobe.c (aout_32_close_and_cleanup): Define.
5391 (aout_32_bfd_free_cached_info): Don't define.
5392 * bout.c (aout_32_close_and_cleanup): Define.
5393 (aout_32_bfd_free_cached_info): Don't define.
5394 * hp300hpux.c (MY_bfd_free_cached_info): Define as bfd_true.
5395 (MY_close_and_cleanup): Don't define.
5396 * i386lynx.c (NAME(lynx,slurp_reloc_table)): Allocate the cached
5397 relocs with malloc, not bfd_alloc.
5398 * i386os9k.c (aout_32_close_and_cleanup): Define.
5399 (aout_32_bfd_free_cached_info): Don't define.
5400
5401 Add a new entry point to free memory cached by a BFD.
5402 * targets.c (bfd_target): Add _bfd_free_cached_info field.
5403 * bfd.c (bfd_free_cached_info): Define.
5404 * bfd-in.h (JUMP_TABLE): Add _bfd_free_cached_info.
5405 * bfd-in2.h: Rebuilt.
5406 * All backends: Initialize bfd_free_cached_info entry point to
5407 bfd_true.
5408
5409 * elf32-hppa.c (elf_hppa_reloc_type_lookup): Correct type of
5410 first, unused, argument.
5411 (hppa_elf_is_local_label): Declare instead of
5412 som_bfd_is_local_label.
5413
5414 * coff-a29k.c (a29k_reloc): Add reloc_entry->address to value of
5415 absolute R_IREL reloc.
5416
5417 Thu Mar 31 11:52:15 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5418
5419 Added some support for Irix 4 shared libraries.
5420 * ecoff.c (ecoff_new_section_hook): Set SEC_SHARED_LIBRARY for a
5421 .lib section.
5422 (ecoff_sec_to_styp_flags): Set SEC_SHARED_LIBRARY if
5423 STYP_ECOFF_LIB bit is set.
5424 (ecoff_compute_section_file_positions): Round the contents of a
5425 .lib section up to the next page boundary.
5426 (ecoff_set_section_contents): If we see a .lib section, increment
5427 the vma by one to count the number of shared libraries we have.
5428 (ecoff_write_object_contents): Don't crash if we see a
5429 STYP_ECOFF_LIB section, and don't adjust text_start or data_start
5430 or bss_size either.
5431
5432 * coffcode.h (CALC_ADDEND): Change to fetch original symbol value
5433 from original BFD, rather than using value of current BFD symbol.
5434 Needed for new linker.
5435 * coff-sparc.c (CALC_ADDEND): Likewise.
5436
5437 * ecoff.c (ecoff_write_object_contents): Set the text_start and
5438 data_start entries in the optional header correctly even if a text
5439 or data section starts at location zero.
5440
5441 * reloc.c (bfd_reloc_code_real_type): Added BFD_RELOC_26 (from sef
5442 and raeburn).
5443 * bfd-in2.h: Rebuilt.
5444
5445 * nlm32-i386.c (nlm_i386_read_import): Null terminate the symbol
5446 name.
5447 * nlm32-alpha.c (nlm_alpha_read_import): Likewise.
5448 * nlm32-sparc.c (nlm_sparc_read_import): Likewise.
5449
5450 * coffgen.c (coff_write_symbol): Reindented. Changed to return
5451 boolean, and changed written to unsigned int *. Check error
5452 returns from called functions.
5453 (coff_write_alien_symbol): Likewise.
5454 (coff_write_native_symbol): Likewise.
5455 (coff_write_symbols): Likewise. Reworked checks on whether to
5456 write symbol name to string table for clarity and to avoid core
5457 dumping when given a non COFF symbol.
5458 * libcoff-in.h (coff_write_symbols): Declare as returning boolean.
5459 * libcoff.h: Rebuilt.
5460 * coffcode.h (coff_write_object_contents): Check return value of
5461 coff_write_symbols.
5462
5463 Wed Mar 30 16:25:41 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5464
5465 Changes to let BFD return an error indication from
5466 get_symtab_upper_bound, bfd_canonicalize_symtab,
5467 bfd_get_reloc_upper_bound, and bfd_canonicalize_reloc. They now
5468 return long instead of unsigned int, and use -1 to indicate an
5469 error. Along the way, rename get_symtab_upper_bound to
5470 bfd_get_symtab_upper_bound.
5471 * bfd.c (bfd_get_reloc_upper_bound): Return long, and -1 on
5472 errors.
5473 (bfd_canonicalize_reloc): Likewise.
5474 * syms.c (bfd_get_symtab_upper_bound): Renamed from
5475 get_symtab_upper_bound.
5476 * targets.c (bfd_target): Renamed _get_symtab_upper_bound to
5477 _bfd_get_symtab_upper_bound, and changed it and
5478 _bfd_canonicalize_symtab and _get_reloc_upper_bound and
5479 _bfd_canonicalize_reloc to all return long.
5480 * aoutx.h (NAME(aout,get_symtab)): Return long, and -1 on errors.
5481 (NAME(aout,canonicalize_reloc)): Likewise.
5482 (NAME(aout,get_reloc_upper_bound)): Likewise.
5483 (NAME(aout,get_symtab_upper_bound)): Likewise.
5484 * bout.c (b_out_canonicalize_reloc): Likewise.
5485 (b_out_get_reloc_upper_bound): Likewise.
5486 * coffcode.h (coff_canonicalize_reloc): Likewise.
5487 * coffgen.c (coff_get_symtab_upper_bound): Likewise.
5488 (coff_get_symtab): Likewise.
5489 (coff_get_reloc_upper_bound): Likewise.
5490 * ecoff.c (ecoff_get_symtab_upper_bound): Likewise.
5491 (ecoff_get_symtab): Likewise.
5492 (ecoff_canonicalize_reloc): Likewise.
5493 * elfcode.h (elf_get_symtab_upper_bound): Likewise.
5494 (elf_get_reloc_upper_bound): Likewise.
5495 (elf_canonicalize_reloc): Likewise.
5496 (elf_get_symtab): Likewise.
5497 * hp300hpux.c (MY(get_symtab)): Likewise.
5498 (MY(get_symtab_upper_bound)): Likewise.
5499 (MY(canonicalize_reloc)): Likewise.
5500 * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
5501 * ieee.c (ieee_slurp_external_symbols): Change return type to
5502 boolean. Check for errors from get_symbol.
5503 (ieee_slurp_symbol_table): Change return type to boolean. Check
5504 for errors from ieee_slurp_external_symbols.
5505 (ieee_get_symtab_upper_bound): Return long, and -1 on errors.
5506 (ieee_get_symtab): Likewise.
5507 (ieee_get_reloc_upper_bound): Likewise.
5508 (ieee_canonicalize_reloc): Likewise.
5509 * mipsbsd.c (MY(canonicalize_reloc)): Likewise.
5510 * nlmcode.h (nlm_get_symtab_upper_bound): Likewise.
5511 (nlm_get_symtab): Likewise.
5512 (nlm_get_reloc_upper_bound): Likewise.
5513 (nlm_canonicalize_reloc): Likewise.
5514 * oasys.c (oasys_get_symtab_upper_bound): Likewise.
5515 (oasys_get_symtab): Likewise.
5516 (oasys_get_reloc_upper_bound): Likewise.
5517 (oasys_canonicalize_reloc): Likewise.
5518 * som.c (som_get_symtab_upper_bound): Likewise.
5519 (som_get_symtab): Likewise.
5520 (som_get_reloc_upper_bound): Likewise.
5521 (som_canonicalize_reloc): Likewise.
5522 * srec.c (srec_get_symtab_upper_bound): Likewise.
5523 (srec_get_symtab): Likewise.
5524 (srec_get_reloc_upper_bound): Define as bfd_0l.
5525 (srec_canonicalize_reloc): Likewise.
5526 * tekhex.c (tekhex_get_symtab): Return long, and -1 on errors.
5527 (tekhex_get_symtab_upper_bound): Likewise.
5528 (tekhex_get_reloc_upper_bound): Define as bfd_0l.
5529 (tekhex_canonicalize_reloc): Likewise.
5530 * libaout.h (NAME(aout,get_symtab_upper_bound)): Change
5531 declaration to return long.
5532 (NAME(aout,get_symtab)): Likewise.
5533 (NAME(aout,canonicalize_reloc)): Likewise.
5534 (NAME(aout,get_reloc_upper_bound)): Likewise.
5535 * libcoff-in.h (coff_get_symtab_upper_bound): Likewise.
5536 (coff_get_symtab): Likewise.
5537 (coff_get_reloc_upper_bound): Likewise.
5538 * libecoff.h (ecoff_get_symtab_upper_bound): Likewise.
5539 (ecoff_get_symtab): Likewise.
5540 (ecoff_canonicalize_reloc): Likewise.
5541 * libelf.h (bfd_elf32_get_symtab_upper_bound): Likewise.
5542 (bfd_elf32_get_symtab): Likewise.
5543 (bfd_elf32_get_reloc_upper_bound): Likewise.
5544 (bfd_elf32_canonicalize_reloc): Likewise.
5545 (bfd_elf64_get_symtab_upper_bound): Likewise.
5546 (bfd_elf64_get_symtab): Likewise.
5547 (bfd_elf64_get_reloc_upper_bound): Likewise.
5548 (bfd_elf64_canonicalize_reloc): Likewise.
5549 * libnlm.h (nlmNAME(get_symtab_upper_bound)): Likewise.
5550 (nlmNAME(get_symtab)): Likewise.
5551 (nlmNAME(get_reloc_upper_bound)): Likewise.
5552 (nlmNAME(canonicalize_reloc)): Likewise.
5553 * archive.c (compute_and_write_armap): Use error_return and
5554 no_memory_return labels rather than freeing information in various
5555 places. Change storage, symcount and src_count to long. Check
5556 errors from bfd_get_symtab_upper_bound and
5557 bfd_canonicalize_symtab.
5558 * bout.c (b_out_relax_section): Change reloc_size to long. Check
5559 for errors from bfd_get_reloc_upper_bound and
5560 bfd_canonicalize_reloc.
5561 (b_out_get_relocated_section_contents): Likewise.
5562 * coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
5563 Likewise.
5564 * elf32-mips.c: Likewise.
5565 * elf32-hppa.c (hppa_elf_stub_finish): Likewise.
5566 (hppa_look_for_stubs_in_section): Check for errors from
5567 bfd_get_symtab_upper_bound, bfd_canonicalize_symtab, and
5568 bfd_canonicalize_reloc.
5569 * ecofflink.c (bfd_ecoff_debug_accumulate_other): Check for errors
5570 from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
5571 * linker.c (generic_link_read_symbols): Likewise.
5572 (_bfd_generic_final_link): Check for errors from
5573 bfd_get_reloc_upper_bound and bfd_canonicalize_reloc.
5574 * reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
5575 * reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
5576 (bfd_coff_reloc16_get_relocated_section_contents): Likewise.
5577 * libbfd.c (bfd_0l): New function.
5578 * libbfd-in.h (bfd_0l): Declare.
5579 * aix386-core.c: Change get_symtab_upper_bound, get_symtab,
5580 get_reloc_upper_bound, and canonicalize_reloc to use bfd_0l rather
5581 than bfd_0u.
5582 * cisco-core.c, hppabsd-core.c, hpux-core.c: Likewise.
5583 * irix-core.c, osf-core.c, ptrace-core.c, trad-core.c: Likewise.
5584 * bfd-in2.h: Rebuilt.
5585 * libbfd.h: Rebuilt.
5586 * libcoff.h: Rebuilt.
5587
5588 * nlm32-sparc.c (nlm_sparc_read_reloc): Remove unused variables
5589 temp and name.
5590
5591 Wed Mar 30 08:33:04 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
5592
5593 * hosts/dpx2.h: Define POSIX_UTIME.
5594
5595 Wed Mar 30 00:31:49 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
5596
5597 * i386dynix.c, config/i386-dynix.mt: New files, handling Dynix
5598 variant of a.out.
5599 * configure.in, config.bfd: Use them for Dynix.
5600 * Makefile.in: Add dependencies for i386dynix.o.
5601 * targets.c: Add definition for i386dynix_vec.
5602 * hosts/symmetry.h: Do not define TRAD_CORE_USER_OFFSET for Dynix.
5603 Define HOST_DATA_START_ADDR and TRAD_UNIX_CORE_FILE_FAILING_SIGNAL
5604 for Dynix. Remove inclusion of dynix3.h, Dynix bfd is now handled by
5605 i386dynix.c
5606
5607 Mon Mar 28 12:53:27 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5608
5609 * Makefile.in (BFD32_BACKENDS): Add coff-sparc.o.
5610
5611 * coffcode.h (coff_set_flags): Handle bfd_arch_powerpc like
5612 bfd_arch_rs6000.
5613
5614 * config.bfd (powerpc-*-aix*): New target; use rs6000.mt.
5615 * config/rs6000.mt (SELECT_ARCHITECTURES): Add bfd_powerpc_arch.
5616
5617 * aoutx.h (translate_from_native_sym_flags): Set SEC_RELOC flag
5618 for generated constructor section.
5619
5620 Sun Mar 27 16:25:22 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5621
5622 * som.c (som_begin_writing): New approach at dealing with holes
5623 in executables left by the HP linker. Does not rely on subspace
5624 alignments as subspaces are *NOT* guaranteed to be properly
5625 aligned in an executable (can you believe that!).
5626
5627 Sat Mar 26 10:25:43 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5628
5629 * som.c (som_get_section_contents): New function. Do not try
5630 to actually read data from a section that doesn't have either
5631 SEC_LOAD or SEC_DEBUGGING set (eg $BSS$) just return true.
5632
5633 * libbfd.c (bfd_read): Set bfd_error as appropriate for a short
5634 read. (bfd_error_system_call or bfd_error_file_truncated).
5635
5636 * som.c: Do not blindly set bfd_error_system_call after a
5637 failing bfd_read, bfd_write, or bfd_seek. In a few places
5638 (like som_object_p) override the error status set by bfd_read.
5639
5640 * aix386-core.c, aout-encap,c archive.c, bout.c: Likewise.
5641 * coff-rs6000.c, coffgen.c ecoff.c, elf.c: Likewise.
5642 * elf32-hppa.c, elfcode.h, hp300hpux.c, i386lynx.c: Likewise.
5643 * nlm32-alpha.c, nlm32-i386.c, nlm32-sparc.c: Likewise.
5644
5645 * som.c: Check return values from several bfd_{seek,read,write}
5646 calls that we just assumed were not failing.
5647
5648 Fri Mar 25 11:44:06 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
5649
5650 * hosts/sysv4.h (HAVE_PROCFS): Add comments about ptx4.
5651 * config/sysv4.mh: Add comment.
5652 * config/symmetry.mh: Change comment.
5653 * configure.host: Use sysv4, not symmetry, for i[34]86-sequent-sysv4*.
5654
5655 Fri Mar 25 17:10:45 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5656
5657 Changes to support linker relaxing of embedded MIPS PIC code to
5658 use a five instruction sequence for function calls which are out of
5659 range of the bal instruction.
5660 * libecoff.h (struct ecoff_section_tdata): Define.
5661 (ecoff_section_data): Define.
5662 (ecoff_bfd_relax_section): Don't define.
5663 * ecoff.c (ecoff_final_link_debug_accumulate): Don't read or free
5664 the debugging information if it has already been read.
5665 (ecoff_indirect_link_order): Handle _cooked_size being different
5666 from _raw_size. Don't reread the contents or the relocs if they
5667 have already been read in.
5668 * coff-mips.c (mips_howto_table): Change bitsize of PCREL16 from
5669 18 to 16.
5670 (PCREL16_EXPANSION_ADJUSTMENT): Define.
5671 (mips_relocate_refhi): Take adjust argument.
5672 (mips_relocate_section): Handle reloc offsets stored in section
5673 used_by_bfd field. Call mips_relax_pcrel16 to handle details of
5674 expanding an out of range PCREL16. Keep trace of adjustments
5675 required by expansions. Set s and unset h when converting a reloc
5676 from undefined to section. Change handling of PC relative relocs:
5677 if against a section, they are correct in the object file, if
5678 against an external symbol they are pcrel_offset.
5679 (mips_relax_section): New function.
5680 (mips_relax_pcrel16): New function.
5681 (ecoff_bfd_relax_section): Define.
5682 * coff-alpha.c (ecoff_bfd_relax_section): Define.
5683 * ecofflink.c (bfd_ecoff_debug_accumulate): Handle adjustments
5684 built by mips_relax_section when writing out addresses.
5685 * elf32-mips.c (mips_elf_read_ecoff_info): Clear adjust field.
5686
5687 * aoutx.h (NAME(aout,find_nearest_line)): The caller expects
5688 functionname_ptr to be set to a symbol name, so prepend
5689 symbol_leading_char.
5690
5691 Thu Mar 24 11:33:46 1994 Steve Chamberlain (sac@jonny.cygnus.com)
5692
5693 * coff-h8300.c (h8300_reloc16_extra_cases): Add relaxing info
5694 for 16bit relative branches.
5695 * coff-h8500.c (r_high8, r_low16, r_high16): Don't complain on
5696 overflow.
5697
5698 Thu Mar 24 09:21:13 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5699
5700 * som.c (som_bfd_prep_for_ar_write): Ignore non-SOM objects.
5701 (som_bfd_ar_write_symbol_stuff, som_write_armap): Likewise.
5702
5703 Wed Mar 23 14:29:31 1994 David J. Mackenzie (djm@rtl.cygnus.com)
5704
5705 * netbsd386.c (N_SET_FLAGS): Delete the old definition.
5706
5707 Wed Mar 23 14:58:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5708
5709 Clean up the relaxing code for the new linker.
5710 * targets.c (_bfd_relax_section): Take boolean *again argument
5711 rather than asymbol list.
5712 * bfd.c (bfd_relax_section): Change name of fourth argument from
5713 symbols to again.
5714 * reloc.c (bfd_generic_relax_section): Take boolean *again
5715 argument rather than asymbol list. Always return true.
5716 * bout.c: Include genlink.h.
5717 (aligncode, perform_slip): Declare.
5718 (perform_slip): Take BFD argument rather than asymbol list.
5719 Changed all callers. Get the symbols from the BFD. Change the
5720 hash table entry value as well as the symbol value.
5721 (abs32code): Take BFD argument rather than asymbol list. Changed
5722 all callers.
5723 (aligncode): Likewise.
5724 (b_out_relax_section): Take boolean *again argument rather than
5725 asymbol list. Only return false if an error occurred. Set *again
5726 to false. Get symbols from BFD.
5727 * reloc16.c: Include genlink.h.
5728 (bfd_perform_slip): Take BFD argument rather than asymbol list.
5729 Get the symbols from the BFD. Change the hash table entry value
5730 as well as the symbol value.
5731 (bfd_coff_reloc16_relax_section): Take boolean *again argument
5732 rather than asymbol list. Only return false if an error occurred.
5733 Set *again to false. Get symbols from BFD.
5734 * coffcode.h (bfd_coff_backend_data): Change
5735 _bfd_coff_reloc16_estimate to take BFD argument rather than
5736 asymbol list.
5737 (bfd_coff_reloc16_estimate): Corresponding change.
5738 (dummy_reloc16_estimate): Corresponding change.
5739 * libcoff-in.h (bfd_coff_reloc16_relax_section): Change
5740 declaration to take boolean * rather than asymbol list.
5741 (bfd_perform_slip): Change declaration to take BFD rather than
5742 asymbol list.
5743 * coff-h8300.c (h300_reloc16_estimate): Take BFD argument rather
5744 than asymbol list. Changed calls to bfd_perform_slip.
5745 * bfd-in2.h: Rebuilt.
5746 * libbfd.h: Rebuilt.
5747 * libcoff.h: Rebuilt.
5748 * Makefile.in: Rebuilt dependencies.
5749
5750 * genlink.h (_bfd_generic_link_get_symbols): Define.
5751 (_bfd_generic_link_get_symcount): Define.
5752 * linker.c (generic_link_read_symbols): New function.
5753 (generic_link_add_object_symbols): Use it. Use
5754 _bfd_generic_link_get_symbols and _bfd_generic_link_get_symcount
5755 to get the symbols from the BFD.
5756 (generic_link_check_archive_element): Likewise.
5757 (_bfd_generic_final_link): Likewise.
5758 (_bfd_generic_link_output_symbols): Likewise.
5759 (default_indirect_link_order): Likewise.
5760 (generic_link_add_symbol_list): Store pointer to hash table entry
5761 in asymbol udata field.
5762
5763 Tue Mar 22 13:09:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5764
5765 * coff-mips.c (mips_howto_table): Add entry for new MIPS_R_PCREL16
5766 reloc, used in embedded PIC code.
5767 (mips_adjust_reloc_in): Change sanity check to permit new reloc.
5768 (mips_bfd_reloc_type_lookup): Turn BFD_RELOC_16_PCREL_S2 into
5769 MIPS_R_PCREL16.
5770
5771 * elf32-mips.c (mips_elf_final_link): Account for link_order
5772 relocs when allocating space for relocations. Set SEC_RELOC flag
5773 for any section which has relocs. Handle link_order relocs in
5774 link_order loop. Use _bfd_generic_link_add_symbols_collect for
5775 add_symbls entry point.
5776
5777 * linker.c (_bfd_generic_final_link): Set reloc_count to 0 before
5778 counting relocs. Set SEC_RELOC flag for any section which has
5779 relocs.
5780
5781 * linker.c (_bfd_default_link_order): Handle bfd_data_link_order.
5782
5783 * linker.c (_bfd_generic_link_add_symbols): Just call
5784 generic_link_add_symbols.
5785 (_bfd_generic_link_add_symbols_collect): New function, like
5786 _bfd_generic_link_add_symbols but also collect constructors and
5787 destructors by name as collect2 does.
5788 (generic_link_add_symbols): New function, like old
5789 _bfd_generic_link_add_symbols but with collect argument.
5790 (generic_link_add_object_symbols): Take collect argument.
5791 (generic_link_check_archive_element_no_collect): New function.
5792 (generic_link_check_archive_element_collect): New function.
5793 (generic_link_check_archive_element): Take collect argument.
5794 (generic_link_add_symbol_list): Take collect argument.
5795 (_bfd_generic_link_add_one_symbol): Rename constructor argument to
5796 collect.
5797 * libbfd-in.h (_bfd_generic_link_add_symbols_collect): Declare.
5798 * libbfd.h: Rebuilt.
5799
5800 Tue Mar 22 10:04:00 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5801
5802 * archive.c (bfd_construct_extended_name_table): Use ar_padchar
5803 for first character in an extended name.
5804 (_bfd_write_archive_contents): If ar_padchar == '/', then use
5805 "//" as the name of the special archive member holding the
5806 extended name table.
5807
5808 Mon Mar 21 12:28:19 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5809
5810 Support for link_order types which generate relocs in order to
5811 support -Ur in the linker.
5812 * linker.c (generic_link_add_symbol_list): Remove bitsize argument
5813 from call to _bfd_generic_link_add_one_symbol.
5814 (_bfd_generic_link_add_one_symbol): Remove bitsize argument.
5815 Don't pass bitsize to constructor call back. Pass BFD_RELOC_CTOR
5816 instead of bitsize to add_to_set call back.
5817 (_bfd_generic_final_link): Account for link_order relocs when
5818 allocating space for relocations. Handle them in link_order loop.
5819 (_bfd_generic_reloc_link_order): New function.
5820 (_bfd_default_link_order): If a reloc_link_order is seen here,
5821 abort.
5822 (_bfd_count_link_order_relocs): New function.
5823 * libbfd-in.h (_bfd_generic_link_add_one_symbol): Remove bitsize
5824 argument from declaration.
5825 (_bfd_generic_reloc_link_order): Declare.
5826 (_bfd_count_link_order_relocs): Declare.
5827 * libbfd.h: Rebuilt.
5828 * aoutx.h (aout_link_add_symbols): Remove bitsize argument from
5829 call to _bfd_generic_link_add_one_symbol.
5830 (NAME(aout,final_link)): Account for link_order relocs when
5831 allocating space for relocations. Handle them after handling all
5832 input BFDs.
5833 (aout_link_reloc_link_order): New function.
5834 * ecoff.c (ecoff_link_add_externals): Remove bitsize argument from
5835 call to _bfd_generic_link_add_one_symbol.
5836 (ecoff_bfd_final_link): Account for link_order relocs when
5837 allocating space for relocations. Handle them in link_order loop.
5838 (ecoff_link_write_external): Set the storage class of a defined
5839 linker created symbol based on the section it is in. Correct
5840 bfd_link_hash_weak case to use .sc rather than .st.
5841 (ecoff_reloc_link_order): New function.
5842 * coff-alpha.c (alpha_bfd_reloc_type_lookup): Handle
5843 BFD_RELOC_CTOR.
5844 * coff-mips.c (mips_bfd_reloc_type_lookup): Likewise.
5845
5846 * sunos.c (sunos_read_dynamic_info): Remove unused locals dynsym
5847 and buf.
5848
5849 * cisco-core.c (cisco_core_file_p): Only pass one argument to
5850 bfd_zmalloc. Free a pointer, not a union.
5851 (cisco_bfd_is_local_label): Correct cast from asection to asymbol.
5852
5853 Sun Mar 20 09:24:36 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5854
5855 * bfd/som.c (som_begin_writing): Fix thinko (off by one error).
5856
5857 * som.c (bfd_section_from_som_symbol): Only to do the value
5858 comparison for function symbols within executables.
5859
5860 * som.c (bfd_section_from_som_symbol): Renamed from
5861 som_section_from_subspace_index. Pass in a native SOM symbol.
5862 For executables, iterate through the sections to find out
5863 which contains the symbol's address rather than using the
5864 symbol_info field. (symbol_info has a different meaning for
5865 dynamicly linked executables.)
5866
5867 * trad-core.c (trad_unix_core_file_p): Don't pass abfd to
5868 bfd_zmalloc.
5869
5870 * som.c (som_begin_writing): Fix braino (one call to align
5871 space/subspace data was done unconditionally rather than
5872 just for executables.)
5873
5874 * som.c (som_begin_writing): Align text in all executables to
5875 make HPUX kernel happy. Fixes strip/objcopy for shared
5876 executables.
5877
5878 Sat Mar 19 07:06:59 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5879
5880 * som.c (som_begin_writing): Account for alignment needs of
5881 subspaces too when writing executables. Never request a negative
5882 bss size. Fixes some problems with demand paged executables,
5883 still having problems with pure executables and shared executables.
5884
5885 Fri Mar 18 19:12:47 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
5886
5887 * trad-core.c (trad_unix_core_file_p): Call bfd_zmalloc not
5888 bfd_zalloc for rawptr, because later on we may call free, not
5889 bfd_release, on it.
5890
5891 * bfd.c (struct _bfd): Add cisco_core_struct to tdata union.
5892 * libbfd.c (bfd_read, bfd_seek): Add comments regarding errors.
5893 * cisco-core.c: New file.
5894 * Makefile.in: Change accordingly.
5895 * configure.in: Recognize cisco_core_vec.
5896 * config/m68k-aout.mt (SELECT_VECS): Add cisco_core_vec.
5897 * targets.c: Add cisco_core_vec.
5898 * bfd-in2.h: Rebuilt.
5899
5900 Fri Mar 18 18:13:49 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
5901
5902 * som.h (som_copyable_section_data_struct): New structure
5903 containing all the private section information which needs
5904 to be copied from input section to output section during
5905 objcopy or strip.
5906 (som_section_data_struct): Remove several fields now in
5907 som_copyable_section_data_struct. Make the space and
5908 subspace dictionaries be pointers (to save space when
5909 only reading objects).
5910
5911 * som.c (bfd_som_set_section_attributes): Now returns a boolean;
5912 some references changed. Allocate a copyable data stucture if
5913 none exists. Store info into the copyable data structure.
5914 (bfd_som_set_subsection_attributes): Likewise.
5915 (som_is_space, som_is_subspace, som_is_container): New functions.
5916 Use these instead of directly accessing private data.
5917 (som_prep_headers): Allocate space and subspace headers here.
5918 Fill in some fields in the space/subspace headers from the
5919 copyable data.
5920 (som_bfd_copy_private_section_data): Only copy the stuff
5921 that we really need to make objcopy and strip work. Allocate
5922 the copy_data structure for the output bfd before copying.
5923
5924 * som.h (struct som_exec_data): New structure to hold exec
5925 info that must be preserved when running objcopy/strip.
5926 (struct somdata): Add new "exec_data" field and accessor
5927 macro. Add some comments on how the various fields are used.
5928 (som_section_data_struct): Make is_space and is_subspace bitfields.
5929 Delete unused subspace_index. All references now use the
5930 target_index field within the section structure itself.
5931
5932 * som.c (make_unique_section): Delete unused declaration.
5933 (som_bfd_copy_private_bfd_data): New function.
5934 (som_object_setup): Allocate space for and save exec information
5935 that needs to be copied during objcopy/strip.
5936 (som_mkobject): Do not allocate space for a file header here.
5937 It is not used when only reading SOM objects.
5938 (som_prep_headers): Allocate space for and attach a file header
5939 to the output bfd. For executables, use the saved system_id
5940 value rather than trying to guess the right value. Do not abort
5941 wwhen setting file_hdr->entry* for executables.
5942 (som_begin_writing): For executables, set the exec_entry and
5943 exec_flags fields.
5944 (som_copy_private_backend_section_data): Always return a value.
5945
5946 * libhppa.h (PA_PAGESIZE): Define.
5947
5948 * som.c (SOM_ALIGN): Define.
5949 (som_begin_writing): If writing an executable, initialize all
5950 fields in the exec header to zero. Update fields in the exec
5951 header as sizes of loadable subspaces are computed. Carefully
5952 preserve alignments when building executables. Actually write the
5953 exec after all the fields are filled in.
5954
5955 * Better long-filename handling. Reads SOM ABI compliant extended
5956 names, but doesn't quite write compliant extended names yet.
5957 * som.c (som_slurp_extended_name_table): Delete function. The
5958 generic code will handle things correctly.
5959 (som_slurp_armap): Seek to the beginning of the next member.
5960 (normalize): New function.
5961 (som_bfd_ar_write_symbol_stuff): Take the size of the extended
5962 name table into account when computing the file offsets in the
5963 SOM dictionary. Make sure to align to an even boundary.
5964 (som_write_armap): Initialize the checksum to zero.
5965 (ar_maxchars): Fix. Opps.
5966
5967 Fri Mar 18 20:35:24 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
5968
5969 * aoutx.h (reloc_type_lookup): Handle BFD_RELOC_CTOR on a 64-bit
5970 machine. Handle BFD_RELOC_SPARC13 and BFD_RELOC_SPARC_BASE13.
5971
5972 Thu Mar 17 18:26:46 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
5973
5974 * bfd-in.h (BFD_VERSION): Use @VERSION@.
5975 * Makefile.in (bfd.h): Replace it with contents of VERSION file.
5976 * bfd-in2.h: Regenerated.
5977
5978 * trad-core.c (trad_unix_bfd_is_local_label): Fixed typo where
5979 this was also named trad_unix_bfd_copy_private_bfd_data.
5980
5981 Thu Mar 17 10:37:07 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
5982
5983 * aoutx.h, elfcode.h, coff-alpha.c, bout.c, ecoff.c, ecofflink.c,
5984 elf32-hppa.c, elf32-mips.c, linker.c, som.c, sunos.c: If malloc(0)
5985 returns NULL, it is not an error. It's possible that some of
5986 these checks are not necessary (because the size can never be
5987 zero), but putting in the checks is the conservative thing to do
5988 in light of the fact that some of these malloc calls replaced
5989 unchecked alloca calls, in which a zero argument would work fine.
5990
5991 Thu Mar 17 11:44:45 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
5992
5993 * osf-core.c (osf_core_bfd_copy_private_bfd_data): Remove
5994 duplicate definition.
5995 (osf_core_bfd_is_local_label): Define.
5996
5997 * reloc.c (bfd_generic_get_relocated_section_contents): Don't fail
5998 if malloc (0) fails. bfd_canonicalize_reloc returning 0 is not a
5999 failure indication, it merely means there are no relocs.
6000
6001 * elfcode.h (NAME(bfd_elf,write_object_contents)): Don't use space
6002 after NAME, since SunOS /bin/cc can't handle it.
6003
6004 Wed Mar 16 16:43:33 1994 David J. Mackenzie (djm@thepub.cygnus.com)
6005
6006 * netbsd386.c (N_SET_FLAGS): Don't nuke the machine id field.
6007 From sukes@glue.umd.edu (Tasuki Hirata).
6008
6009 Wed Mar 16 07:55:54 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
6010
6011 * aoutf1.h (4 places): Use a simple #if on ARCH_SIZE, rather than
6012 all that convoluted stuff with NAME, CAT3, etc. The convoluted
6013 stuff broke for SunOS4 /bin/cc (due to DEFUN elimination, I guess).
6014
6015 Wed Mar 16 00:02:05 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6016
6017 * som.c (som_prep_for_fixups): Detect section symbols based
6018 on either the lack of private data or the symbol flags. Do not
6019 munge section symbol names anymore -- they no longer confuse GDB.
6020 (som_begin_writing): Leave space for an exec header if writing
6021 an executable.
6022 (som_slurp_symbol_table): Recognize both forms of section symbol
6023 names "L$0\002" and "$<FOO>$". Change the name of "L$0\002"
6024 section symbols to be the name of the section they represent.
6025 Debugging symbols begin with "L$0\001", not just "L$".
6026
6027 Tue Mar 15 22:58:28 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6028
6029 * bfd-in2.h, libbfd.h, libcoff.h: Rebuilt.
6030
6031 * bfd-in.h (JUMP_TABLE): Add new entries to the jump table
6032 for bfd_copy_private_section_data, bfd_copy_private_bfd_data,
6033 and bfd_is_local_label.
6034
6035 * targets.c: Add new entries to the bfd_target structure.
6036
6037 * bfd.c (bfd_copy_private_bfd_data): New definition.
6038
6039 * section.c (bfd_copy_private_section_data): New definition.
6040
6041 * syms.c (bfd_is_local_label): New definition.
6042
6043 * libbfd-in.h (bfd_generic_is_local_label): Declare.
6044
6045 * libbfd.c (bfd_generic_is_local_label): New function.
6046
6047 * *-core.c: Provide default definitions for new functions in
6048 the target vector which all point to bfd_false.
6049
6050 * aout-target.h, coffcode.h, elf32-target.h elf64-target.h, ieee.c
6051 libaout.h, libecoff.h, nlm-target.h, oasys.c, srec.c, tekhex.c
6052 Default new vectors for copying private backend data to bfd_true.
6053 Default new vector for determining if a symbol is a local label
6054 to bfd_generic_is_local_label.
6055
6056 * som.c (som_bfd_copy_private_section_data): New function.
6057 (som_bfd_is_local_label): New function.
6058 (som_bfd_copy_private_bfd_data): For now default to bfd_true.
6059
6060 * elf32-hppa.c (hppa_elf_is_local_label): New function.
6061
6062 Tue Mar 15 23:55:47 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6063
6064 * cf-m68klynx.c (CALC_ADDEND): Use _bfd_m68klynx_howto_table.
6065
6066 Tue Mar 15 04:41:13 1994 David J. Mackenzie (djm@rtl.cygnus.com)
6067
6068 * Most files:
6069 Replace DEFUN and DEFUN_VOID with K&R-style function definition.
6070 Indent some of them to GNU standards.
6071
6072 * aout32.c, archures.c, core.c, cpu-h8300.c, cpu-i960.c,
6073 cpu-m68k.c, cpu-m88k.c, cpu-mips.c, cpu-vax.c, ctor.c, demo64.c,
6074 elf32-hppa.h, gen-aout.c, host-aout.c, init.c, libhppa.h,
6075 libieee.h, liboasys.h, newsos3.c, som.h, stab-syms.c, sunos.c:
6076 Update copyright years.
6077
6078 Mon Mar 14 11:41:23 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6079
6080 * som.c (som_prep_for_fixups): A relocation involving the section
6081 symbol for the *ABS* section is really a relocation involving
6082 no symbol.
6083 (som_slurp_symbol_table): Do not set BSF_GLOBAL or BSF_EXPORT for
6084 undefined symbols. Correctly distinguish between debugger symbols
6085 and section symbols.
6086
6087 * som (setup_sections): Set SEC_DEBUGGING and the section attributes
6088 for spaces and subspaces.
6089
6090 * som.c (som_bfd_count_ar_symbols): Fix typo.
6091
6092 * som.c (som_object_setup): Set EXEC_P, D_PAGED, WP_TEXT, and
6093 HAS_RELOC based on the object's magic number.
6094 (make_unique_section): Delete function. BFD and its users are
6095 prepared to handle multiple sections with the same name.
6096 (setup_sections): Allocate space on the BFD's obstack to hold
6097 section names. Use bfd_make_setion_anyway rather than the
6098 obsolete make_unique_section.
6099 (som_prep_headers): Choose the correct SOM magic number based
6100 on the BFD's flags.
6101 (som_bfd_fill_in_ar_symbols): Return false, not NULL on error.
6102
6103 Sat Mar 12 09:46:09 1994 Ian Lance Taylor (ian@cygnus.com)
6104
6105 * elf32-ppc.c: Renamed from elf32-powerpc.c.
6106 * nlm32-ppc.c: Renamed from nlm32-powerpc.c.
6107 * Makefile.in, configure.in: Corresponding changes.
6108
6109 Fri Mar 11 22:27:19 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6110
6111 * elf32-powerpc.c: Extensive changes to update to preliminary ABI.
6112
6113 Fri Mar 11 00:34:59 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
6114
6115 * sunos.c (sunos_read_dynamic_info): Assume that dynamic info
6116 is always located at the start of the data section to allow
6117 recovery of the dynamic info from a stripped executable.
6118 * ecoff.c (ecoff_styp_to_sec_flags): Handle STYP_PDATA, STYP_XDATA
6119 and STYP_COMMENT.
6120
6121 Wed Mar 9 17:17:53 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
6122
6123 * libbfd-in.h: Remove alloca cruft. It was missing some necessary
6124 cruft (like the #pragma alloca for AIX).
6125 In addition to that problem, the C alloca calls xmalloc, which
6126 means checking for being out of memory can't work right. The
6127 following changes remove all uses of alloca from BFD.
6128 * hosts/solaris2.h: Remove alloca cruft.
6129 * som.c: Replace alloca with a fixed size auto array.
6130 * aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c,
6131 ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c,
6132 sunos.c: Replace alloca with malloc and appropriate error checking and
6133 freeing.
6134 * linker.c: Replace alloca with obstack_alloc.
6135 * libbfd.h: Rebuilt.
6136
6137 Tue Mar 8 12:10:38 1994 Ian Lance Taylor (ian@cygnus.com)
6138
6139 * coff-mips.c (mips_relocate_section): Handle MIPS_R_LITERAL like
6140 MIPS_R_GPREL.
6141
6142 Sat Mar 5 14:08:54 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
6143
6144 * elf32-hppa.h, elfcode.h: Replace uses of Elf*_Half, Elf*_Word,
6145 Elf*_Off typedefs by their expansion, the typedefs have been
6146 removed from include/elf/internal.h.
6147 * elfcode.h (bfd_section_from_shdr): Handle SHT_DYNAMIC section like
6148 SHT_PROGBITS section.
6149
6150 Thu Mar 3 20:03:39 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6151
6152 * som.h (_PA_RISC_ID): Treat HOST_HPPAOSF just like HOST_HPPABSD.
6153
6154 Wed Mar 2 13:28:06 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
6155
6156 * configure.host: Recognize i[34]86-sequent-*.
6157
6158 * trad-core.c (trad_unix_core_file_p): A non-zero, not zero,
6159 return from bfd_seek indicates an error.
6160 New macro TRAD_CORE_DSIZE_INCLUDES_TSIZE to replace
6161 TRAD_CORE_STACK_OFFSET.
6162 * hosts/symmetry.h: Define TRAD_CORE_DSIZE_INCLUDES_TSIZE and
6163 TRAD_CORE_USER_OFFSET but not HOST_STACK_OFFSET.
6164
6165 Wed Mar 2 11:57:03 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6166
6167 * som.[ch]: Do not include libhppa.h in som.c, instead include
6168 it in som.h.
6169
6170 * elf32-hppa.[ch]: Do not include libhppa.h in elf32-hppa.c, instead
6171 include it in elf32-hppa.h.
6172
6173 * som.c (log2): Return -1 on error rather than aborting.
6174 (setup_sections): Bubble up an error from log2.
6175
6176 * Changes to make HP C compiler happy in both traditional
6177 and ANSI mode.
6178 * som.c (hppa_som_gen_reloc_type): Use correct enum type for
6179 field parameter.
6180 (bfd_som_set_section_attributes): Use unsigned int rather than
6181 unsigned char to avoid GNU-C extensions.
6182 (bfd_som_attach_aux_hdr): Return a boolean to indicate success
6183 or failure rather than aborting on failure.
6184
6185 * som.h (bfd_som_set_section_attributes): Fix prototype to match
6186 som.c changes.
6187 (bfd_som_attach_aux_hdr): Add prototype.
6188 (hppa_som-gen_reloc_type): Likewise.
6189
6190 * elf32-hppa.c: Add a couple casts to make HP compiler happy.
6191 (hppa_look_for_stubs_in_section): Do not return false on failure
6192 until rest of code is ready to handle it. Abort for now.
6193
6194 Tue Mar 1 18:33:59 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
6195
6196 * bfd-in2.h: Rebuilt.
6197
6198 Tue Mar 1 13:06:53 1994 Kung Hsu (kung@mexican.cygnus.com)
6199
6200 * i386os9k.c: use new functions bfd_set_error and bfd_get_error.
6201 * Makefile.in: delete an extra blank.
6202 * configure.in : Add i396os9k_vec.
6203
6204 Mon Feb 28 15:41:01 1994 Kung Hsu (kung@mexican.cygnus.com)
6205
6206 * config.bfd : Add i386-os9k.
6207 * config/i386-os9k.mt : Newly add os9k target makefile.
6208
6209 * i386os9k.c : new file to handle os9k format bfd.
6210 * Makefile.in : Handle new file i386os9k.c
6211 * targets.c : Add bfd_target_os9k_flavour and i386os9k_vec.
6212 * cache.c : Initialize cache_sentinel to 0.
6213
6214 Sun Feb 27 16:30:55 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6215
6216 * elf32-hppa.c (mismatches, retval_mismatches): Fix mismatch
6217 action in case where caller specified no argument relocation.
6218 (hppa_elf_build_linker_stub): Try again to get the sym_ptr_ptr
6219 right in the original relocation and the stub's relocation.
6220
6221 * elf32-hppa.h (hppa_look_for_stub_in_section): Fix typo. Delete
6222 unused symbols argument.
6223
6224 * elf32-hppa.c (hppa_elf_stub_reloc): Accept asymbol ** rather
6225 than asymbol * for original target symbol. All callers changed.
6226 Set reloc->sym_ptr_ptr appropriately.
6227 (hppa_elf_build_linker_stub): Set reloc->sym_ptr_ptr correctly.
6228 (hppa_elf_look_for_stubs_in_section): No longer need symbols
6229 argument. Use the output symbols when canonicalizing the relocs,
6230 creating them if necessary.
6231
6232 * linker.c (_bfd_generic_link_output_symbols): Do not
6233 rebuild/clobber the output symbols if they already exist.
6234
6235 Sun Feb 27 15:22:36 1994 Stan Shebs (shebs@andros.cygnus.com)
6236
6237 * targets.c (BFD_SEND, BFD_SEND_FMT): Add debugging versions that
6238 check all the pointer dereferences. Enabled via DEBUG_BFD_SEND.
6239 * bfd-in2.h: Rebuilt.
6240
6241 * srec.c (hex_value): Always set to a size of 256 bytes.
6242 (srec_init): Cosmetic changes.
6243
6244 Sun Feb 27 11:18:47 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6245
6246 * elf32-hppa.c: Second half of major cleanup. More comments,
6247 PARAMize and staticize rest of functions. Delete unused
6248 functions. Delete unused/unnecessary arguments to some functions.
6249 Group static vars together. Abort for bad errors until we have
6250 error code propogation working. Work on spacing and indention.
6251 Add FIXMEs for unresolved problems. Use enums rather than
6252 #defines for lots of things. Merge two functions which build
6253 linker stubs into a single function (so they can easily share a
6254 ton of common code).
6255
6256 Sat Feb 26 10:00:45 1994 Ian Lance Taylor (ian@cygnus.com)
6257
6258 * reloc.c (_bfd_relocate_contents): Adjust handling of overflow to
6259 avoid depending upon right shifts of signed numbers, and to
6260 correct handling of src_mask with lower bits zero.
6261
6262 * aoutx.h, archive.c: Add casts to avoid warnings from SVR4 cc.
6263 * ecoff.c, ecofflink.c, ecoffswap.h, srec.c: Likewise.
6264 * elf32-i386.c: Likewise.
6265 * elfcode.h (bfd_section_from_shdr): Make i unsigned; remove old
6266 #if 0 code.
6267 (elf_write_phdrs): Make i unsigned.
6268 (map_program_segments): Make i and n_left unsigned.
6269 (assign_file_positions_except_relocs): Make i unsigned.
6270 (write_shdrs_and_ehdr): Make count unsigned.
6271 (assign_file_positions_for_relocs): Make i unsigned.
6272 (NAME(bfd,elf_write_object_contents)): Make count unsigned.
6273 (section_from_elf_index): Make index argument unsigned.
6274
6275 Fri Feb 25 21:34:58 1994 Ian Lance Taylor (ian@cygnus.com)
6276
6277 * elfcode.h: Don't include assert.h.
6278 (swap_out_syms): Use BFD_ASSERT rather than assert.
6279
6280 * linker.c (_bfd_generic_link_write_global_symbol): Add missing
6281 break in switch.
6282
6283 * hosts/i386v4.h (qsort, strtol): Remove incorrect and useless
6284 declarations.
6285
6286 Fri Feb 25 16:35:57 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6287
6288 * libhppa.h (hppa_rebuild_insn): Moved here from elf32-hppa.c.
6289
6290 * elf32-hppa.h (elf_hppa_tc_symbol): Add new arguments.
6291 (elf_hppa_tc_make_sections): Likewise.
6292 (elf_hppa_final_processing): Add extern decl.
6293
6294 * elf32-hppa.c: First half of major cleanup. Add/cleanup lots of
6295 comments. PARAMize some static functions. Delete unused functions.
6296 Delete unused/unnecessary arguments to many functions. Group
6297 static vars together. Collapse common case statements together
6298 in many places. Use default case when possible instead of listing
6299 each case separately. Abort for bad errors until we get error
6300 code propogation working. Work on spacing and indention problems.
6301 Add FIXMEs for some unresolved problems. Delete hopelessly broken
6302 COMPLEX relocation support (it's never used anyway).
6303 (hppa_elf_rebuild_insn): Delete. Moved into libhppa.h.
6304 (elf_hppa_tc_symbol): Accept and use new arguments (symext chains).
6305 (elf_hppa_tc_make_sections): Likewise.
6306
6307 * format.c (bfd_check_format_matches): Initialize matching_vector
6308 to keep gcc -Wall quiet.
6309
6310 * elfcode.h (elf_slurp_reloca_table): Fix typo.
6311
6312 * som.c (som_get_symtab_upper_bound): Use "sizeof (asymbol *)"
6313 not "sizeof (som_symbol_type *)".
6314
6315 * elfcode.h (elf_get_symtab_upper_bound): Use "sizeof (asymbol *)"
6316 not "sizeof (asymbol"). Opps.
6317
6318 Fri Feb 25 13:19:04 1994 Ted Lemon (mellon@pepper.ncd.com)
6319
6320 * bfd.c (bfd_get_gp_size): Can't return gp value on an archive.
6321 (bfd_set_gp_size): Can't set gp value on an archive.
6322
6323 Fri Feb 25 12:57:00 1994 Steve Chamberlain (sac@jonny.cygnus.com)
6324
6325 * srec.c (pass_over): Don't skip too many characters when
6326 end of line seen.
6327
6328 Fri Feb 25 11:41:57 1994 Ian Lance Taylor (ian@cygnus.com)
6329
6330 * ecoff.c (ecoff_sizeof_headers): Align result to 16 byte
6331 boundary.
6332
6333 Thu Feb 24 07:13:22 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6334
6335 * som.c (som_bfd_derive_misc_symbol_info): Derive symbol_info
6336 field for absolute symbols in the same manner as undefined
6337 and common symbols.
6338
6339 Thu Feb 24 04:29:19 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
6340
6341 * elfcode.h (elf_core_file_p): Check for core file e_machine match
6342 like in elf_object_p.
6343
6344 Wed Feb 23 18:28:37 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6345
6346 * elfcode.h (alloca): Delete declaration.
6347
6348 * som.c (som_prep_headers): Use CPU_PA_RISC1_0 for magic
6349 number rather than HP9000S800_ID. Note som.c is careful
6350 to make sure CPU_PA_RISC1_0 is always defined.
6351
6352 Mon Feb 21 10:12:02 1994 Stan Shebs (shebs@andros.cygnus.com)
6353
6354 * Makefile.in (targets.o, archures.o): Use ALL_CFLAGS to supply
6355 flags to explicit compile actions.
6356
6357 Mon Feb 21 09:50:06 1994 Ian Lance Taylor (ian@lisa.cygnus.com)
6358
6359 * ecofflink.c (ecoff_write_symhdr): Set symhdr->magic here.
6360 * ecoff.c (ecoff_write_object_contents): Make sure .bss section
6361 ends on a page boundary if there is no symbol table.
6362 (ecoff_bfd_final_link): Don't set symhdr->magic here.
6363
6364 * hosts/hp300.h: Include <stdlib.h>; don't declare free.
6365
6366 * som.c (som_bfd_count_ar_symbols): Use a pointer and alloca
6367 rather than an array of variable size.
6368 (som_bfd_fill_in_ar_symbols): Likewise.
6369 (som_bfd_ar_write_symbol_stuff): Likewise.
6370
6371 * coff-alpha.c (alpha_relocate_section): Rewrite mask and shift
6372 operation to avoid OSF 1.3 cc bug.
6373 * ecoff.c (ecoff_write_object_contents): Make text_size, data_size
6374 and bss_size bfd_size_type instead of unsigned long. Make
6375 text_start and data_start bfd_vma instead of unsigned long.
6376 * ecofflink.c (ecoff_add_string): Remove incorrect cast of return
6377 value.
6378
6379 Sun Feb 20 16:06:54 1994 Ian Lance Taylor (ian@lisa.cygnus.com)
6380
6381 * linker.c (_bfd_generic_link_add_archive_symbols): Consider
6382 symbols in the order they appear in the archive map.
6383
6384 Sat Feb 19 03:17:32 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
6385
6386 * coff-alpha.c (reloc_nil): Add forward declaration, add missing
6387 error_message argument.
6388 * coff-sparc.c (bfd_coff_generic_reloc): Add forward declaration,
6389 add missing error_message argument.
6390 * mipsbsd.c (mips_fix_hi16_s): Add forward declaration, add missing
6391 error_message argument.
6392
6393 Fri Feb 18 11:41:58 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6394
6395 Support for PowerPC NetWare.
6396 * nlm32-powerpc.c: New file.
6397 * config.bfd (powerpc-*-netware*): New target; use ppc-nlm.
6398 * config/ppc-nlm.mt: New file.
6399 * configure.in (nlm32_powerpc_vec): New target vector; use
6400 nlm32-powerpc.o, nlm32.o, nlm.o.
6401 * targets.c (nlm32_powerpc_vec): Declare.
6402 * Makefile.in (BFD32_BACKENDS): Add nlm32-powerpc.o.
6403 (CFILES): Add nlm32-powerpc.c.
6404
6405 Initial support for PowerPC ELF. Done without an ABI, and
6406 probably to be changed when I get an ABI.
6407 * config.bfd (powerpc-*-sysv4*): New target; use ppc-elf.
6408 * config/ppc-elf.mt: New file.
6409 * configure.in (bfd_elf32_powerpc_vec): New target vector; use
6410 elf32-powerpc.o, elf32.o, elf.o.
6411 * elf32-powerpc.c: New file.
6412 * elfcode.h (prep_headers): Add bfd_arch_powerpc case.
6413 (elf_set_arch_mach): Likewise.
6414 * targets.c (bfd_elf32_powerpc_vec): Declare.
6415 * Makefile.in (BFD32_BACKENDS): Add elf32-powerpc.o.
6416 (CFILES): Add elf32-powerpc.c.
6417 Rebuilt dependencies.
6418
6419 Thu Feb 17 15:29:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6420
6421 * coffgen.c (coff_write_linenumbers): Always return a value.
6422
6423 * elfcode.h (elf_slurp_symbol_table): Handle zero symbols
6424 reasonably. Allocate x_symp using alloca.
6425
6426 * elfcode.h (map_program_segments): ELF program header entries
6427 must be sorted by load address. This used to generate the entries
6428 in reverse order.
6429
6430 * section.c (SEC_IN_MEMORY): Define.
6431 (asection): Rename unused field otheruserdata to contents, and
6432 make it char *.
6433 (bfd_make_section_anyway): Initialize contents field to NULL.
6434 (bfd_get_section_contents): If SEC_IN_MEMORY is set, get section
6435 contents from contents field rather than from file.
6436 * bfd-in2.h: Rebuilt.
6437
6438 Thu Feb 17 08:30:53 1994 David J. Mackenzie (djm@thepub.cygnus.com)
6439
6440 * bfd.c (bfd_get_error, bfd_set_error): New functions.
6441 (bfd_error): Make static.
6442 (bfd_error_type): Renamed from bfd_ec. Prepend "bfd_error_" to
6443 all values.
6444 * bfd-in2.h: Regenerated.
6445 * aix386-core.c, aout-adobe.c, aout-encap.c, aout-target.h,
6446 aoutf1.h, aoutx.h, archive.c, archures.c,
6447 bfd.c, bout.c, cache.c, coff-alpha.c, coff-mips.c,
6448 coff-rs6000.c, coffcode.h, coffgen.c, core.c, ctor.c,
6449 ecoff.c, ecofflink.c, elf.c, elf32-hppa.c, elf32-mips.c,
6450 elfcode.h, format.c, hash.c, hp300hpux.c, hppabsd-core.c,
6451 i386lynx.c, ieee.c, libbfd.c, libelf.h, linker.c,
6452 lynx-core.c, nlm.c, nlm32-alpha.c, nlm32-i386.c,
6453 nlm32-sparc.c, nlmcode.h, oasys.c, opncls.c, osf-core.c,
6454 ptrace-core.c, reloc16.c, rs6000-core.c, section.c, som.c,
6455 srec.c, sunos.c, syms.c, targets.c, tekhex.c,
6456 trad-core.c: Change callers.
6457
6458 Tue Feb 15 22:27:27 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6459
6460 * som.c: Remove FIXMEs for things which have been dealt with.
6461
6462 Tue Feb 15 19:39:24 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
6463
6464 * section.c (bfd_get_section_contents): Since this function reads
6465 unrelocated contents, the section's raw size is always the one to
6466 use for bounds checking.
6467
6468 * linker.c (default_indirect_link_order): In assertion, compare
6469 link_order size field against cooked size, not raw size, of input
6470 section.
6471
6472 * bout.c (b_out_get_reloc_upper_bound): For BSS section, just
6473 return 0.
6474 (aligncode): When shrinking, the addend should be set to the
6475 current offset in the section plus the number of bytes of padding
6476 that will actually be retained.
6477 (b_out_relax_section): If a section contains no relocations, don't
6478 bother processing them.
6479 (b_out_get_relocated_section_contents): Set reloc_done. Assert
6480 that bfd_get_section_contents returns true. Check that relocs are
6481 properly ordered.
6482 (b_out_get_relocated_section_contents, case ALIGNDONE): Assert
6483 that reloc->addend falls between the current source offset and the
6484 raw size of the input section.
6485
6486 * config.bfd: Support i960 vxworks versions > 5.0 with coff, not
6487 bout. Default with no version number is still bout. Support
6488 explicit i960-coff target too.
6489
6490 * bout.c: Changed some indentation, deleted trailing whitespace,
6491 fixed some comments, removed some "#if 1" lines.
6492 (output_addr): New macro.
6493 (calljx_callback, callj_callback, get_value, abs32code, aligncode,
6494 b_out_get_relocated_section_contents): Use it for readability.
6495
6496 Tue Feb 15 09:00:16 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6497
6498 * som.c (som_bfd_prep_for_ar_write): Iterate through the SOM
6499 symbols, not the BFD symbols.
6500 (som_bfd_ar_write_symbol_stuff): Likewise.
6501
6502 Mon Feb 14 22:55:20 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6503
6504 * som.c (som_slurp_symbol_table): Do not die if a BFD doesn't
6505 have any symbols.
6506
6507 * Finish basic read-write support for SOM archive libraries. Bugs
6508 surely remain as this hasn't been tested all that much.
6509 * som.c (SOM_LST_HASH_SIZE, SOM_LST_MODULE_LIMIT): Define.
6510 (struct som_misc_symbol_info): New structure to hold info necessary
6511 to build both normal and library symbol tables.
6512 (som_derive_misc_symbol_info): New function to derive info necessary
6513 to build both normal and library symbol tables.
6514 (som_build_and_write_symbol_table): Use new function to derive misc
6515 symbol information.
6516 (som_slurp_symbol_table): Update backend private data for symbols
6517 appropriately.
6518 (som_bfd_prep_for_ar_write): New function.
6519 (som_bfd_ar_symbol_hash): New function.
6520 (som_bfd_ar_write_symbol_stuff): New function.
6521 (som_write_armap): Flesh out.
6522 (som_vec): Fix ar padding character.
6523
6524 * som.c: Consistently use memset rather than bzero.
6525
6526 Mon Feb 14 17:02:28 1994 Stu Grossman (grossman at cygnus.com)
6527
6528 * coff-rs6000.c: Add Lynx core file support, use HOST_AIX, where
6529 appropriate.
6530 * rs6000-core.c: Use HOST_AIX instead of COREFILES_PLEASE.
6531 * config/rs6000.mh: Remove defs of ARCHIVES_PLEASE and
6532 COREFILES_PLEASE.
6533 * config/rs6000lynx.mh: Turn on Lynx core file support.
6534 * hosts/rs6000.h: #define HOST_AIX.
6535 * hosts/rs6000lynx.h: Create this to enable Lynx host support.
6536
6537 Sun Feb 13 14:30:00 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6538
6539 * som.h (som_symbol_data): Safely access backend private data
6540 for BFD symbols. All callers changed.
6541
6542 * Read-only SOM archive support.
6543 * som.c (som_bfd_count_ar_symbols): New helper function.
6544 (som_bfd_fill_in_ar_symbols): New helper function.
6545 (som_slurp_armap): New function to read a SOM LST.
6546
6547 * som.h: Include <lst.h> and <ar.h>.
6548
6549 Sat Feb 12 22:34:14 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6550
6551 * elfcode.h (elf_map_symbols): Fix typo.
6552 (write_object_contents): Check return values from prep_headers and
6553 elf_compute_section_file_positions.
6554 (set_section_contents): Likewise.
6555
6556 Fri Feb 11 16:56:50 1994 David J. Mackenzie (djm@thepub.cygnus.com)
6557
6558 * archive.c (normalize) [VMS]: Call malloc, not bfd_xmalloc.
6559 (bfd_construct_extended_name_table): Check result of normalize.
6560
6561 Tue Feb 8 08:57:31 1994 David J. Mackenzie (djm@thepub.cygnus.com)
6562
6563 Make all callers of malloc or realloc (including via obstacks)
6564 check the result for NULL. Most set bfd_error to no_memory and
6565 return in that case; a few are harder to fix, and are marked
6566 with "FIXME <return type>".
6567
6568 * elf32-hppa.c (hppa_elf_build_arg_reloc_stub
6569 hppa_elf_build_long_branch_stub): Check bfd_make_empty_symbol return.
6570 * linker.c (_bfd_generic_link_output_symbols
6571 _bfd_generic_link_write_global_symbol): Ditto
6572 * section.c (bfd_make_section_anyway): Ditto.
6573
6574 * tekhex.c (find_chunk tekhex_mkobject): Check bfd_alloc.
6575 (first_phase): Ditto. FIXME void
6576 (tekhex_make_empty_symbol): Check bfd_zalloc.
6577
6578 * sunos.c (sunos_read_dynamic_info): Check bfd_zalloc.
6579 (MY(read_dynamic_symbols) MY(read_dynamic_relocs)): Check bfd_alloc.
6580
6581 * stringhash.c (_bfd_stringtab_hash_newfunc): Check bfd_hash_allocate.
6582
6583 * srec.c: Indent.
6584 (fillup_symbols): Check bfd_alloc. FIXME void
6585 (srec_mkobject srec_get_section_contents
6586 srec_set_section_contents): Check bfd_alloc.
6587 (srec_make_empty_symbol): Check bfd_zalloc.
6588
6589 * som.c (hppa_som_gen_reloc_type): Check bfd_alloc_by_size_t.
6590 (make_unique_section): Check bfd_alloc.
6591 (som_new_section_hook): Check bfd_zalloc.
6592 (bfd_som_attach_aux_hdr): Ditto. FIXME void
6593
6594 * rs6000-core.c (rs6000coff_core_p): Check bfd_zalloc.
6595
6596 * osf-core.c (osf_core_make_empty_symbol): Check bfd_zalloc.
6597 (osf_core_core_file_p): Check bfd_alloc.
6598
6599 * oasys.c (oasys_slurp_symbol_table oasys_archive_p
6600 oasys_mkobject oasys_object_p oasys_new_section_hook
6601 oasys_set_section_contents): Check bfd_alloc.
6602 (oasys_slurp_section_data): Check bfd_zalloc and bfd_alloc.
6603 (oasys_make_empty_symbol): Check bfd_zalloc.
6604
6605 * nlmcode.h (nlm_make_empty_symbol): Check bfd_zalloc.
6606 (nlm_slurp_symbol_table): Check bfd_zalloc and bfd_alloc.
6607
6608 * nlm32-sparc.c (nlm_sparc_read_import): Check bfd_alloc.
6609
6610 * nlm32-i386.c (nlm_i386_read_import): Check bfd_alloc.
6611
6612 * nlm32-alpha.c (nlm_alpha_read_import): Check bfd_alloc.
6613
6614 * linker.c (_bfd_link_hash_newfunc
6615 (generic_link_hash_newfunc
6616 (archive_hash_newfunc
6617 (_bfd_generic_link_add_one_symbol): Check bfd_hash_allocate.
6618 (_bfd_generic_final_link
6619 (_bfd_generic_link_output_symbols
6620 (default_indirect_link_order): Check bfd_alloc.
6621 (bfd_new_link_order): Check bfd_alloc_by_size_t.
6622
6623 * irix-core.c (irix_core_make_empty_symbol): Check bfd_zalloc.
6624
6625 * ieee.c: Indent.
6626 (read_id get_symbol get_section_entry ieee_archive_p ieee_object_p
6627 ieee_slurp_section_data ieee_new_section_hook): Check bfd_alloc.
6628 (do_one): Check bfd_alloc. Return a boolean.
6629 (ieee_slurp_section_data): Check it.
6630 (init_for_output): Check bfd_alloc. Return a boolean.
6631 (ieee_set_section_contents): Check it.
6632 (do_with_relocs): Check bfd_alloc. Return a boolean.
6633 (ieee_bfd_debug_info_accumulate): Ditto. FIXME void.
6634 (ieee_mkobject): Check bfd_zalloc.
6635 (ieee_make_empty_symbol): Check bfd_zmalloc.
6636
6637 * hpux-core.c (hpux_core_make_empty_symbol): Check
6638 bfd_zalloc.
6639
6640 * hppabsd-core.c (hppabsd_core_make_empty_symbol): Check
6641 bfd_zalloc.
6642 (hppabsd_core_core_file_p): Check bfd_zalloc.
6643
6644 * hp300hpux.c (MY(slurp_symbol_table)): Check bfd_alloc.
6645
6646 * elfcode.h (elf_new_section_hook): Check bfd_alloc.
6647 (bfd_section_from_phdr): Ditto.
6648 (write_relocs): Ditto. FIXME void
6649 (elf_map_symbols assign_section_numbers map_program_segments):
6650 Ditto. Return a boolean.
6651 (swap_out_syms): Ditto. Check elf_map_symbols.
6652 (elf_slurp_symbol_table): Check bfd_zalloc.
6653 (elf_slurp_reloca_table): Check bfd_alloc.
6654 (elf_slurp_reloc_table): Ditto.
6655 (elf_compute_section_file_positions): Check assign_section_numbers.
6656 (assign_file_positions_except_relocs): Return a boolean.
6657 Check map_program_segments.
6658 (elf_compute_section_file_positions): Check it.
6659
6660 * elf32-mips.c (mips_elf_final_link): Check bfd_alloc.
6661
6662 * elf32-hppa.c (hppa_elf_stub_branch_reloc): Check bfd_zmalloc and
6663 realloc.
6664 (hppa_elf_stub_reloc): Ditto.
6665 (hppa_elf_build_arg_reloc_stub): Check bfd_zalloc.
6666 (hppa_elf_build_long_branch_stub): Ditto.
6667 (elf32_hppa_backend_symbol_table_processing): Ditto.
6668
6669 * ecoff.c (ecoff_set_symbol_info): Check bfd_alloc. Return a boolean.
6670 (ecoff_slurp_symbol_table): Check it.
6671 (ecoff_slurp_armap): Check bfd_alloc.
6672 (ecoff_write_armap): Check bfd_zalloc.
6673 (ecoff_link_hash_newfunc): Check bfd_hash_allocate and
6674 _bfd_link_hash_newfunc.
6675 (ecoff_link_add_externals): Check bfd_alloc.
6676
6677 * ctor.c (bfd_constructor_entry): Check bfd_alloc.
6678
6679 * coffgen.c (coff_real_object_p): Check bfd_alloc.
6680 (coff_renumber_symbols): Check bfd_alloc_by_size_t. Return a boolean.
6681 (coff_write_symbol): Check bfd_alloc. FIXME int
6682 (coff_write_linenumbers): Check bfd_alloc. Return a boolean.
6683 (coff_section_symbol): Check bfd_alloc_by_size_t.
6684 (coff_get_normalized_symtab): Check bfd_alloc.
6685 (coff_bfd_make_debug_symbol): Check bfd_zalloc.
6686 * libcoff-in.h: Change decls of coff_renumber_symbols,
6687 coff_write_linenumbers.
6688 * libcoff.h: Rebuilt.
6689 * coffcode.h (coff_write_object_contents): Check
6690 coff_renumber_symbols, coff_write_linenumbers.
6691
6692 * coffcode.h: Indent.
6693 (coff_add_missing_symbols): Check bfd_alloc_by_size_t. Return a
6694 boolean.
6695 (coff_write_object_contents): Check it.
6696
6697 * coff-alpha.c (alpha_relocate_section): Check bfd_alloc.
6698 * coff-mips.c (mips_relocate_section): Ditto.
6699
6700 * archive.c (bfd_slurp_bsd_armap_f2): Check bfd_alloc value.
6701 (do_slurp_bsd_armap): Ditto.
6702 (compute_and_write_armap): Check bfd_realloc value.
6703
6704 * aoutx.h (translate_from_native_sym_flags): Check bfd_alloc
6705 return value. Return boolean value.
6706 (NAME(aout,make_empty_symbol)): Check bfd_zalloc return value.
6707 (NAME(aout,slurp_symbol_table)): Check bf_alloc and bfd_zalloc
6708 return value.
6709 (add_to_stringtab): Ditto. FIXME void
6710 (aout_link_hash_newfunc): Check bfd_hash_allocate return value.
6711 (aout_link_add_symbols): Check bfd_alloc value.
6712 (translate_symbol_table): Check translate_from_native_sym_flags.
6713 * hp300hpux.c (MY(slurp_symbol_table)): Ditto.
6714 * aoutx.h (aout_link_hash_newfunc): Check _bfd_link_hash_newfunc.
6715
6716 * opncls.c (bfd_zalloc bfd_realloc): Check result of bfd_alloc.
6717
6718 * opncls.c (obstack_chunk_alloc): Define as malloc, not
6719 bfd_xmalloc_by_size_t.
6720 (_bfd_new_bfd): Check obstack_begin for 0 return.
6721
6722 * ieee.c (obstack_chunk_alloc): Define as malloc, not
6723 bfd_xmalloc_by_size_t.
6724 (ieee_archive_p): Check obstack_begin for 0 return and
6725 obstack_finish for NULL return.
6726
6727 * hash.c (obstack_chunk_alloc): Define as malloc, not
6728 bfd_xmalloc_by_size_t.
6729 (bfd_hash_table_init_n): Check obstack_begin for 0 return and
6730 obstack_finish for NULL return.
6731 (bfd_hash_lookup): Check obstack_alloc for NULL return.
6732
6733 * ecofflink.c (obstack_chunk_alloc): Define as malloc, not
6734 bfd_xmalloc_by_size_t.
6735 bfd_ecoff_debug_accumulate
6736 bfd_ecoff_debug_accumulate_other): Check obstack_alloc.
6737 (add_file_shuffle add_memory_shuffle): Check obstack_alloc for
6738 NULL return. Return boolean, not void.
6739 (bfd_ecoff_debug_init): Check obstack_begin for 0 return.
6740 (bfd_ecoff_debug_accumulate): Check add_file_shuffle
6741 and add_memory_shuffle return.
6742 (string_hash_newfunc): Check bfd_hash_allocate and bfd_hash_newfunc.
6743 (bfd_ecoff_debug_accumulate): Check bfd_alloc.
6744 (ecoff_add_string): Check add_memory_shuffle return.
6745
6746 * libbfd-in.h (xmalloc, bfd_xmalloc, bfd_xmalloc_by_size_t):
6747 Remove decls.
6748 * libbfd.h: Rebuilt.
6749
6750 Fri Feb 11 15:35:32 1994 Stu Grossman (grossman at cygnus.com)
6751
6752 * configure.host: Add Lynx/rs6000 support.
6753 * config/i386-nlm.mt: Enable a.out file support.
6754 * config/rs6000lynx.mh: Lynx/rs6000 host support.
6755
6756 Fri Feb 11 17:25:58 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6757
6758 * archive.c (compute_and_write_armap): Rewrite somewhat to improve
6759 memory usage.
6760
6761 Fri Feb 11 13:10:42 1994 Stan Shebs (shebs@andros.cygnus.com)
6762
6763 * archive.c: Change all references to '\n' in archive magic
6764 to '\012', for greater portability.
6765 * ecoff.c (ecoff_write_armap): Ditto.
6766
6767 Thu Feb 10 12:58:48 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6768
6769 * aoutx.h (aout_link_write_other_symbol): Check strip settings to
6770 see whether symbol should be output.
6771 * genlink.h (struct generic_write_global_symbol_info): Added info
6772 field.
6773 * linker.c (_bfd_generic_final_link): Initialize wginfo.info.
6774 (_bfd_generic_link_write_global_symbol): Check strip settings to
6775 see whether symbol should be output.
6776 * elf32-mips.c (mips_elf_final_link): Initialize wginfo.info.
6777
6778 Wed Feb 9 21:34:58 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6779
6780 * som.c (som_reloc_queue_find): Do not examine a NULL queue entry.
6781
6782 * som.c: Cast return values from BFD memory allocation routines to
6783 avoid warnings from the HP compiler.
6784
6785 Wed Feb 9 12:55:02 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6786
6787 * coff-alpha.c (alpha_relocate_section): Accept a LITERAL
6788 reloc on an "ldl" instruction too.
6789
6790 * archive.c (bfd_ar_hdr_from_filesystem): Cast status elements
6791 when passing them to sprintf. Use %ld instead of %d.
6792
6793 * coff-rs6000.c (rs6000coff_mkarchive): Return false.
6794 (rs6000_coff_snarf_ar_hdr): Don't declare errno; it's not used.
6795 Also removed unused variable namelen.
6796 (rs6000coff_write_armap): Declare orl_count and stridx parameters.
6797
6798 Tue Feb 8 18:00:34 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6799
6800 * libbfd-in.h (xmalloc): Don't declare parameter type, to avoid
6801 conflicts.
6802 * libbfd.h: Rebuilt.
6803
6804 Tue Feb 8 15:55:50 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
6805
6806 * coff-alpha.c (reloc_nil): New function.
6807 (alpha_howto_table): Use it as special_function to prevent certain
6808 relocs from being adjusted by bfd_perform_relocation. IGNORE
6809 reloc should be partial_inplace.
6810 (alpha_ecoff_get_relocated_section_contents): Accept a LITERAL
6811 reloc on an "ldl" instruction too.
6812
6813 Tue Feb 8 00:32:28 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
6814
6815 * elf32-hppa.c (CURRENT_STUB_OFFSET, hppa_elf_build_arg_reloc_stub,
6816 hppa_elf_build_long_branch_stub): Cast to char * instead of int
6817 before performing pointer arithmetic.
6818
6819 Mon Feb 7 20:56:27 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
6820
6821 * config.bfd (hppa*-*-osf*): Use bfd_name hppaosf for this
6822 configuration.
6823 (hppa*-*-*elf*): This configuration used hppa-elf now.
6824
6825 * som.c: This file is also used for HOST_HPPAOSF.
6826
6827 * targets.c (bfd_target_vector): Enable som_vec for HOST_HPPAOSF.
6828
6829 * hosts/hppaosf.h: New host configuration file.
6830
6831 * config/hppabsd.mt (SELECT_VECS): Add bfd_elf32_hppa_vec as
6832 BSD handles both SOM and ELF object files.
6833
6834 * config/hppaosf.mh (HDEFINES): Delete. No longer needed.
6835 (RANLIB): Doesn't do anything, define it to be "echo".
6836
6837 * config/hppaosf.mt: New target makefile fragment for a PA running
6838 OSF1.
6839
6840 Mon Feb 7 15:02:06 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6841
6842 * archures.c (enum bfd_architecture): Added bfd_arch_powerpc.
6843 (archures_init_table): If SELECT_ARCHITECTURES is not defined,
6844 added bfd_powerpc_arch.
6845 * bfd-in2.h: Rebuilt.
6846 * cpu-powerpc.c: New file.
6847 * Makefile.in (ALL_MACHINES, CFILES): Added cpu-powerpc.c.
6848 Rebuilt dependencies.
6849
6850 * elfcode.h (bfd_section_from_shdr): Get vma and alignment_power
6851 of an SHT_STRTAB section from sh_addr and sh_addralign, rather
6852 than just setting them to zero.
6853
6854 Sun Feb 6 20:04:10 1994 David J. Mackenzie (djm@thepub.cygnus.com)
6855
6856 * elfcode.h (prep_headers, swap_out_syms): Check for NULL return
6857 from bfd_new_strtab.
6858 (elf_compute_section_file_positions): Check for false return from
6859 swap_out_syms.
6860
6861 * linker.c (default_indirect_link_order): Check for NULL return
6862 from bfd_get_relocated_section_contents.
6863
6864 * syms.c: Make example application in doc call xmalloc, not
6865 bfd_xmalloc.
6866
6867 * aoutx.h (NAME(aout,slurp_symbol_table),
6868 aout_link_get_symbols, NAME(aout,link_hash_table_create)):
6869 * bout.c (b_out_slurp_reloc_table, b_out_squirt_out_relocs):
6870 * ecoff.c (ecoff_bfd_link_hash_table_create):
6871 * ecofflink.c (bfd_ecoff_debug_init):
6872 * format.c (bfd_check_format_matches):
6873 * linker.c (_bfd_generic_link_hash_table_create):
6874 (_bfd_generic_final_link):
6875 * reloc16.c (bfd_coff_reloc16_relax_section):
6876 (bfd_coff_reloc16_get_relocated_section_contents):
6877 * elf32-hppa.c (hppa_elf_build_arg_reloc_stub):
6878 * elf32-mips.c (mips_elf_final_link):
6879 * elfcode.h (bfd_new_strtab):
6880 (bfd_add_2_to_strtab):
6881 (elf_slurp_symbol_table):
6882 (elf_corefile_note):
6883 * libbfd.c (bfd_zmalloc):
6884 Use malloc and check the result, instead of bfd_xmalloc.
6885
6886 Sat Feb 5 12:39:28 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
6887
6888 * config.bfd: Put m68*-*-sysv* line after m68*-*-sysv4*.
6889
6890 Sat Feb 5 05:32:44 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
6891
6892 * srec.c (srec_write_record): Put CONST keyword for "src" before
6893 "unsigned", some compilers don't like it after "unsigned".
6894 * libcoff.h, libcoff-in.h (bfd_perform_slip): Rename "value" to
6895 "val" in prototype declaration because some compilers don't like
6896 arguments whose names are the same as types.
6897
6898 Sat Feb 5 01:14:38 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6899
6900 * aoutx.h (aout_link_check_ar_symbols): Correct test for whether
6901 object file defines symbol. Also, if skipping a symbol, skip the
6902 second symbol of a N_WARNING or N_INDR symbol as well.
6903
6904 Fri Feb 4 23:55:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6905
6906 Add basic support for writing RS/6000 XCOFF files.
6907 * coff-rs6000.c (dummy_reloc): Removed.
6908 (rs6000coff_howto_table): Defined XCOFF relocs.
6909 (RTYPE2HOWTO): Defined to use rs6000coff_rtype2howto.
6910 (rs6000coff_rtype2howto): New function.
6911 (coff_bfd_reloc_type_lookup): Defined to use
6912 rs6000coff_reloc_type_lookup.
6913 (rs6000coff_reloc_type_lookup): New function.
6914 (SELECT_RELOC): Defined to set r_type and r_size fields.
6915 (COFF_LONG_FILENAMES): Defined.
6916 * coffcode.h (combined_entry_type): Changed fix_tag and fix_end
6917 fields to bitfields. Added fields fix_value and fix_scnlen.
6918 (sec_to_styp_flags): If STYP_DEBUG is defined, use it rather than
6919 STYP_INFO for the type of a section named .debug.
6920 (coff_add_missing_symbols): Don't define if RS6000COFF_C.
6921 (coff_write_object_contents): If RS6000COFF_C, don't call
6922 coff_add_missing_symbols.
6923 (coff_slurp_symbol_table): If RS6000COFF_C, then if the last aux
6924 entry has type STY_LD change the x_scnlen into a pointer to a
6925 symbol and set fix_scnlen. Also, for a C_BSTAT symbol, change the
6926 value into a pointer to a symbol and set fix_value.
6927 * libcoff.h: Rebuilt.
6928 * coffgen.c (coff_mangle_symbols): Reindent. If fix_value is set,
6929 get the symbol offset. Likewise for fix_scnlen.
6930 (string_size): Change type to bfd_size_type.
6931 (debug_string_size, debug_string_section): New static variables.
6932 (coff_fix_symbol_name): If bfd_coff_symname_in_debug returns true,
6933 write the symbol name into the .debug section; assume that the
6934 section has already been created with the right size.
6935 (coff_write_symbols): Initialize debug_string_size to 0. If
6936 bfd_coff_symname_in_debug returns true, don't put symbol name in
6937 usual string table. After writing out all symbols, if
6938 debug_string_size is not 0, check that it matches the size of the
6939 .debug section.
6940 (coff_get_normalized_symtab): Clear new fix_value and fix_scnlen
6941 fields. If the string offset is 0, always use an empty string as
6942 the name.
6943 (coff_make_empty_symbol): Zero out the symbol structure.
6944 * reloc.c (bfd_perform_relocation): Work around one gross hack
6945 with another: actually look at the target name to avoid the broken
6946 COFF check.
6947 (bfd_reloc_code_real_type): Add BFD_RELOC_PPC_B26,
6948 BFD_RELOC_PPC_BA26 and BFD_RELOC_PPC_TOC16.
6949 * bfd-in2.h: Rebuilt.
6950
6951 Fri Feb 4 17:28:32 1994 David J. Mackenzie (djm@thepub.cygnus.com)
6952
6953 * libbfd.c (bfd_zmalloc): Call bfd_xmalloc instead of malloc.
6954 (bfd_xmalloc, bfd_xmalloc_by_size_t): Functions deleted.
6955 * libbfd-in.h: Define them as macros calling xmalloc and declare
6956 xmalloc.
6957 * libbfd.h: Rebuilt.
6958
6959 Thu Feb 3 16:49:35 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6960
6961 * ecofflink.c (bfd_ecoff_debug_externals): If a small undefined
6962 symbol has a value in the ECOFF symbol but not in the BFD symbol,
6963 keep the value in the ECOFF symbol. This helps gas.
6964
6965 * linker.c (_bfd_generic_link_output_symbols,
6966 _bfd_generic_link_write_global_symbol): Don't require that all
6967 references to a common symbol be themselves common symbols.
6968
6969 * aoutx.h (aout_reloc_index_to_section): Handle N_UNDF.
6970
6971 Wed Feb 2 20:37:19 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
6972
6973 * libbfd.c, bfd-in.h, hosts/alphaosf.h, hosts/sparc-ll.h, aoutf1.h,
6974 sparclynx.c, Makefile.in: Change HOST_64_BIT to BFD_HOST_64_BIT.
6975 * bfd-in2.h: Rebuilt.
6976
6977 Wed Feb 2 12:30:13 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6978
6979 * coffswap.h (coff_swap_reloc_out): If RS6000COFF_C, handle type
6980 and size correctly.
6981 (coff_swap_aux_in): If RS6000COFF_C, change x_csect.x_scnlen to
6982 x_csect.x_scnlen.l to match change in coff/internal.h.
6983 (coff_swap_aux_out): Likewise.
6984
6985 * coff-mips.c (mips_ecoff_backend_data), coff-alpha.c
6986 (alpha_ecoff_backend_data): Change casts of aux_in and aux_out
6987 fields to match yesterday's changes.
6988
6989 * coffcode.h (coff_write_relocs): If SELECT_RELOC is defined, pass
6990 in the internal_reloc itself, not the type.
6991 * coff-apollo.c, coff-h8300.c, coff-h8500.c, coff-i386.c,
6992 coff-m68k.c, coff-sh.c, coff-we32k.c, coff-z8k.c: Changed
6993 definition of SELECT_RELOC accordingly.
6994
6995 Tue Feb 1 12:05:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
6996
6997 * coffcode.h (bfd_coff_backend_data): Added new arguments to
6998 _bfd_coff_swap_aux_in and _bfd_coff_swap_aux_out: aux index number
6999 and number of aux entries.
7000 (bfd_coff_swap_aux_in, bfd_coff_swap_aux_out): Changed
7001 accordingly.
7002 * libcoff.h: Rebuilt.
7003 * coffswap.h (coff_swap_aux_in, coff_swap_aux_out): Accept new
7004 arguments. If RS6000COFF_C, only treat C_EXT and C_HIDEXT
7005 specially if this is the last aux entry.
7006 * coffgen.c (coff_write_symbol, coff_get_normalized_symtab): Pass
7007 new arguments to swap_aux functions.
7008
7009 Sun Jan 30 15:14:36 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
7010
7011 * gen-aout.c (main): Set DEFAULT_ARCH based on preprocessor macros
7012 (only testing for m68k and vax at the moment); do verify that the
7013 preprocessor didn't trash the arch name inside the string version.
7014 Don't print out "pagesize =" line that prevents output from
7015 compiling. Derive BYTES_IN_WORD and ARCH values from sizeof
7016 results.
7017 * Makefile.in (aout-params.h): Pass gen-aout a dummy target name.
7018 (check, installcheck): Identify directory in "no testsuites"
7019 message.
7020
7021 Sun Jan 30 13:25:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7022
7023 * aoutx.h (aout_link_write_symbols): Write out correct value for
7024 object file symbol.
7025
7026 Fri Jan 28 18:34:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
7027
7028 * hosts/vaxbsd.h (HOST_STACK_END_ADDR): Vax BSD doesn't define
7029 KERNBASE, so hard-code 0x80000000 instead.
7030
7031 Thu Jan 27 13:54:08 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7032
7033 * linker.c (generic_link_add_symbol_list): If symbol is common,
7034 set the BSF_OLD_COMMON flag.
7035
7036 Wed Jan 26 13:47:15 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7037
7038 * format.c (bfd_check_format_matches): Put the new entry in the
7039 correct element of matching_vector.
7040
7041 Tue Jan 25 11:43:28 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
7042
7043 * som.c, som.h (bfd_som_set_section_attributes,
7044 bfd_som_set_subsection_attributes): Change parameters from char
7045 to int. Following a prototype with an old-style function definition
7046 in the presence of widened parameters is a GCC-ism not supported
7047 by the HP compiler in ANSI mode.
7048
7049 Tue Jan 25 11:46:46 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7050
7051 * reloc.c (bfd_get_reloc_size): Size of type -2 is 4 bytes, not 2.
7052
7053 * hp300hpux.c (MY(write_object_contents)): Write out the symbols
7054 before writing out the relocs, so that the right symbol indices
7055 are used.
7056
7057 * archive.c (do_slurp_bsd_armap, bfd_slurp_bsd_armap_f2): Do not
7058 try to overlay the internal carsyms on the external symdefs. That
7059 can not work if the size of a host pointer is larger than 4 bytes.
7060
7061 * format.c (bfd_check_format_matches): Cast result of
7062 bfd_xmalloc_by_size_t.
7063 * opncls.c (_bfd_new_bfd): Avoid ANSI C prototype.
7064
7065 * archive.c: Reindented to GNU standards.
7066
7067 Mon Jan 24 14:41:23 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7068
7069 * opncls.c (_bfd_new_bfd, _bfd_new_bfd_contained_in): Add
7070 "_bfd_" to function names.
7071 * archive.c (_bfd_create_empty_archive_element_shell),
7072 libbfd-in.h: Change callers.
7073
7074 * libbfd.c (bfd_zmalloc): Renamed from zalloc.
7075 * libbfd.c (bfd_add_to_string_table),
7076 trad-core.c (trad_unix_core_file_p),
7077 targets.c (bfd_target_list),
7078 ptrace-core.c (ptrace_unix_core_file_p),
7079 opncls.c (new_bfd), libbfd-in.h,
7080 ieee.c (ieee_make_empty_symbol),
7081 elf32-hppa.c (hppa_elf_stub_branch_reloc),
7082 (hppa_elf_stub_reloc): Change callers.
7083 * libbfd.h: Regenerated.
7084
7085 * archive.c (_bfd_look_for_bfd_in_cache): Add "_bfd_" to name.
7086 (_bfd_get_elt_at_filepos),
7087 coff-rs6000.c (rs6000coff_get_elt_at_filepos), libbfd-in.h:
7088 Change callers.
7089
7090 * format.c (bfd_check_format_matches), libbfd-in.h, targets.c,
7091 elfcode.h (elf_object_p): Rename target_vector to bfd_target_vector
7092 and default_vector to bfd_default_vector.
7093 * libbfd.h: Regenerated.
7094
7095 * format.c (bfd_check_format_matches): New function.
7096 (bfd_check_format): Call it.
7097 (bfd_matching_formats): Function removed.
7098 * targets.c: Replace the vector added on Jan 21 with a count of
7099 entries in default_vector.
7100 * bfd-in2.h: Regenerated.
7101
7102 Mon Jan 24 12:38:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7103
7104 * coff-alpha.c (alpha_ecoff_object_p): New function. Set size of
7105 .pdata section based on lnnoptr field, not section header.
7106 (alpha_relocate_section): Don't bother to check if r_symndx >= 0,
7107 since it is unsigned.
7108 (ecoffalpha_little_vec): Use alpha_ecoff_object_p rather than
7109 coff_object_p.
7110 * ecoff.c (ecoff_new_section_hook): Set alignment_power field of
7111 .pdata section to 3.
7112 (ecoff_compute_section_file_positions): Save the size of the
7113 .pdata section in the line_filepos field, and actually align the
7114 .pdata section to an alignment power of 4.
7115 (ecoff_compute_reloc_file_positions): Set output_has_begun after
7116 calling ecoff_compute_section_file_positions.
7117 (ecoff_write_object_contents): Set s_lnnoptr for the .pdata
7118 section from the line_filepos field. Set vstamp for the optional
7119 header from the vstamp of the symbolic header.
7120 (ecoff_bfd_final_link): Set vstamp of the symbolic header to the
7121 vstamp used by the first object file in the link.
7122
7123 * ecofflink.c (ecoff_align_debug): Align RFDs to debug_align.
7124
7125 * linker.c (generic_link_check_achive_element): Set SEC_ALLOC flag
7126 for a created common section.
7127 (_bfd_generic_link_add_one_symbol): Likewise.
7128
7129 * elfcode.h (swap_out_syms): Use elf_section_from_bfd_section to
7130 get the index of a common section, rather than always using
7131 SHN_COMMON (MIPS has multiple common sections).
7132
7133 * elf32-hppa.c (hppa_elf_gen_reloc_type): Typo (== for =).
7134
7135 * bfd/aoutx.h (aout_link_input_section_std,
7136 aout_link_input_section_ext): Pass additional arguments to
7137 reloc_overflow callback.
7138 * coff-alpha.c (alpha_ecoff_get_relocated_section_contents,
7139 alpha_relocat_section): Likewise.
7140 * coff-h8300.c (h8300_reloc16_extra_cases): Likewise.
7141 * coff-h8500.c (extra_case): Likewise.
7142 * coff-mips.c (mips_relocate_section): Likewise.
7143 * coff-z8k.c (extra_case): Likewise.
7144 * elf32-hppa.c (hppa_elf_stub_finish): Likewise.
7145 * reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
7146
7147 * bout.c (calljx_callback, callj_callback): Use get_value to get
7148 the symbol value and check for undefined symbols.
7149 (get_value): If the symbol is undefined, look it up in the linker
7150 hash table.
7151 (b_out_get_relocated_section_contents): For PCREL24 and PCREL13
7152 use get_value to get the symbol value and check for undefined
7153 symbols.
7154 * reloc16.c (bfd_coff_reloc16_get_value): If the symbol is
7155 undefined, look it up in the linker hash table.
7156
7157 * aoutx.h (translate_symbol_table): The string index 0 has a
7158 special meaning for normal symbols, but not for dynamic symbols.
7159
7160 Sat Jan 22 12:26:01 1994 Stu Grossman (grossman at cygnus.com)
7161
7162 * sparclynx.c: Setup appropriate macros to enable core file
7163 support.
7164
7165 Fri Jan 21 16:25:35 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7166
7167 * targets.c: Add a vector of matching format names.
7168 * format.c (bfd_matching_formats): New function to return it.
7169 (bfd_check_format): Set it.
7170 * bfd-in2.h: Regenerated.
7171
7172 * bfd-in.h: Remove decls of bfd_ec type and error printing functions.
7173 Remove decl of type symclass; wasn't used.
7174 * bfd.c: Document error handling, including code fragments
7175 containing the error decls that were in bfd-in.h.
7176 Remove DEFUNs.
7177 * bfd-in2.h: Regenerated.
7178
7179 Fri Jan 21 14:11:16 1994 Sean Fagan (sef@cygnus.com)
7180
7181 * nlmcode.h, liblnm.h, nlm32-alpha.c nlm32-i386.c nlm32-sparc.c:
7182 The sparc (and possibly other?) NLM format requires a different
7183 way to write exports, so add a write_export field to the backend
7184 data (and set it to NULL for everything but the sparc).
7185
7186 Fri Jan 21 14:11:16 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
7187
7188 * sunos.c (MY(read_dynamic_relocs)): Compare info->dynrel with NULL,
7189 not (struct external_nlist *) NULL. info->dynrel is a PTR, not
7190 a struct external_nlist *.
7191
7192 Fri Jan 21 09:29:01 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7193
7194 * bfd.c: Remove error strings for errors removed below.
7195 * aoutx.h (translate_to_native_sym_flags), bfd-in.h (bfd_ec),
7196 oasys.c (oasys_write_sections): Rename
7197 bfd_error_nonrepresentable_section to nonrepresentable_section.
7198 None of the other bfd error names start with "bfd_error".
7199 Remove errors symbol_not_found and no_relocation_info, which seem
7200 to be unused.
7201 * bfd-in2.h: Regenerated.
7202
7203 Fri Jan 21 01:11:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7204
7205 * bfd.c (bfd_get_gp_size): Added support for ELF.
7206
7207 * syms.c (BSF_DYNAMIC): New symbol flag.
7208 (bfd_print_symbol_vandf): Print it.
7209 * bfd-in2.h: Rebuilt.
7210 * libaout.h (struct aout_backend_data): New read_dynamic_symbols
7211 and read_dynamic_relocs fields.
7212 (struct aoutdata): New dynamic_info field.
7213 (obj_aout_dynamic_info): New accessor macro.
7214 * sunos.c (struct sunos_dynamic_info): New structure.
7215 (sunos_read_dynamic_info, MY(read_dynamic_symbols),
7216 MY(read_dynamic_relocs)): New functions to read dynamic symbols
7217 and relocs.
7218 * aoutx.h (NAME(aout,some_aout_object_p)): If the object is
7219 dynamically linked, set SEC_RELOC for both the .text and .data
7220 sections.
7221 (translate_from_native_sym_flags): Don't set BSF_LOCAL for an
7222 undefined symbol.
7223 (translate_symbol_table): New function, split out of
7224 slurp_symbol_table; set the BSF_DYNAMIC flag appropriately.
7225 (NAME(aout,slurp_symbol_table)): Read dynamic symbols, if any.
7226 (NAME(aout,slurp_reloc_table)): Read dynamic relocs, if any.
7227 (NAME(aout,get_reloc_upper_bound)): Include dynamic reloc count in
7228 return value.
7229 * aoutf1.h (NAME(aout,sunos4_write_object_contents)): Don't write
7230 out dynamic symbols or relocs against reloc symbols, since they
7231 are already in the .text section and we wouldn't know where to
7232 write them anyhow.
7233 (sunos4_aout_backend): Initialize read_dynamic_symbols and
7234 read_dynamic_relocs fields.
7235 * aout-target.h (MY(backend_data)): Initialize
7236 read_dynamic_symbols and read_dynamic_relocs fields.
7237
7238 Thu Jan 20 20:57:27 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
7239
7240 * hosts/alphaosf.h (uint64e_type, uint64_type, int64_type): Delete
7241 typedefs, since HOST_64_BIT will take care of defining them in
7242 bfd.h.
7243
7244 Wed Jan 19 17:28:59 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
7245
7246 * config/alphaosf.mh (HDEFINES): Don't define HOST_64_BIT here;
7247 that's dealt with elsewhere.
7248 * hosts/alphaosf.h (sprintf_vma, fprintf_vma): New macros.
7249 (uint64_typeHIGH, uint64_typeLOW): Comment with HOST_64_BIT so
7250 they get copied to bfd.h.
7251
7252 * reloc.c (enum bfd_reloc_code_real): Add some Alpha relocation
7253 types. Reorganized some of the existing ones.
7254 * coff-alpha.c (alpha_howto_table): Construct 64-bit negative one
7255 values in case of compilation on a 32-bit machine. Fix pcrel
7256 fields of some reloc types.
7257 (alpha_bfd_reloc_type_lookup): Handle more relocation types.
7258
7259 * bfd-in.h (uint64_typeHIGH, uint64_typeLOW): Supply default
7260 definitions when not defined, regardless of whether uint64_type is
7261 a defined macro or not.
7262 (fprintf_vma, sprintf_vma): Define only if fprintf_vma is not
7263 already defined.
7264
7265 Wed Jan 19 00:02:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7266
7267 * aoutx.h (translate_to_native_sym_flags): Set the type of a
7268 BSF_WARNING symbol to N_WARNING.
7269
7270 Tue Jan 18 16:43:19 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7271
7272 * aoutx.h (aout_link_add_symbols): Increment sym_hash as well as p
7273 for an indirect or warning symbol.
7274 (aout_link_write_symbols): Update sym_hash with the target of an
7275 indirect or warning symbol. If an indirect symbol is defined,
7276 output the calculated value and don't output the target symbol.
7277
7278 Tue Jan 18 03:54:59 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7279
7280 * aoutx.h (translate_from_native_sym_flags): Give warning symbols
7281 an (unused) nonzero section value, needed for check below.
7282
7283 Mon Jan 17 15:12:07 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7284
7285 * aoutx.h (translate_from_native_sym_flags,
7286 aout_link_add_symbols): Treat N_SET[ABDT] | N_EXT like
7287 N_SET[ABDT].
7288
7289 Fri Jan 14 16:45:43 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7290
7291 * elfcode.h (elf_object_p): If there is a SHT_DYNAMIC section, set
7292 the DYNAMIC flag for the BFD.
7293 (NAME(bfd_elf,write_object_contents)): Don't try to write out a
7294 BFD with the DYNAMIC flag set, since we don't generate the program
7295 header table correctly.
7296
7297 Fri Jan 14 01:04:36 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
7298
7299 * elfcode.h (elf_slurp_symbol_table): Free x_symp at the end
7300 of the function to avoid storage leak.
7301
7302 Thu Jan 13 23:07:32 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7303
7304 * ecoff.c (ecoff_link_write_external): An ifd can be -1.
7305
7306 Thu Jan 13 12:33:27 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
7307
7308 * som.c (som_set_reloc_info): Provide a default symbol for
7309 relocations which don't actually have an associated symbol.
7310
7311 * som.c (hppa_som_reloc): Add new "error message" argument.
7312
7313 Wed Jan 12 13:36:43 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
7314
7315 Enable gdb to write to core files on more core file readers.
7316 * libbfd.c (bfd_generic_set_section_contents): Remove range check
7317 for section size, it is already done in bfd_set_section_contents
7318 with bfd_get_section_size_now.
7319 * aix386-core.c, hppabsd-core.c, hpux-core.c, irix-core.c,
7320 osf-core.c, ptrace-core.c, trad-core.c (*_set_section_contents):
7321 Use bfd_generic_set_section_contents instead of bfd_false.
7322
7323 Wed Jan 12 15:31:57 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7324
7325 * linker.c: Added initial documentation.
7326
7327 * linker.c (default_indirect_link_order): Don't expect space for
7328 output relocations if there aren't any input relocations.
7329
7330 Tue Jan 11 14:37:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7331
7332 * aoutx.h (NAME(aout,final_link)): Set a_entry before computing
7333 file offsets.
7334
7335 * elfcode.h (swap_out_syms): A common symbol is STT_OBJECT, not
7336 STT_NOTYPE.
7337
7338 Tue Jan 11 09:10:56 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
7339
7340 * config.bfd: Use ELF, not COFF for m88*-*-dgux*.
7341 Combine m88k-*-* and m88110-*-* cases into m88*-*-*.
7342
7343 Tue Jan 11 00:07:19 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7344
7345 * ecofflink.c: Extensive changes to compress and merge debugging
7346 information, and to write some of out directly rather than saving
7347 it in memory. Several new functions and structures, and new
7348 arguments to existing functions.
7349 * ecoff.c (ecoff_compute_reloc_file_positions): Compute
7350 sym_filepos as well.
7351 (ecoff_get_extr): Use ifdmap instead of ifdbase.
7352 (ecoff_write_object_contents): Don't compute sym_filepos here.
7353 Only output symbols if outsymbols is not NULL.
7354 (ecoff_bfd_final_link): Adjust for changes in ecoff_debug_info and
7355 bfd_ecoff_debug functions. Write out debugging information here.
7356 (ecoff_final_link_debug_accumulate): Adjust for changes in
7357 bfd_ecoff_debug functions.
7358 (ecoff_link_write_external): Use ifdmap rather than ifdbase.
7359 * elf32-mips.c (mips_elf_read_ecoff_info): Read external symbols
7360 first, to put them in the first memory buffer. Clear fdr field.
7361 (mips_elf_get_extr): Use pointer to unswapped external symbol.
7362 (mips_elf_final_link): Adjust for changes in bfd_ecoff functions.
7363 Preserve .text, .data and .bss even if they are empty. Save
7364 pointer to unswapped external symbol rather than copying it.
7365 Don't free up the external symbols.
7366 * libelf.h (elf_symbol_type): Change mips_extr to PTR.
7367 * bfd-in.h (bfd_ecoff_debug_init, bfd_ecoff_debug_free): Declare.
7368 (bfd_ecoff_debug_accumulate): Update declaration.
7369 (bfd_ecoff_debug_accumulate_other): Rename declaration from
7370 bfd_ecoff_debug_link_other and update.
7371 (bfd_ecoff_write_accumulated_debug): Declare.
7372 * bfd-in2.h: Rebuilt.
7373 * Makefile.in: Rebuilt dependencies.
7374
7375 Mon Jan 10 20:46:53 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
7376
7377 * Makefile.in (install): Remove "@" which follows a backslash. In
7378 this position it just causes errors, not suppresses echoes.
7379
7380 Mon Jan 10 09:06:21 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
7381
7382 * som.c (hppa_som_gen_reloc_type): Fix handling of LT and RT
7383 field selectors.
7384
7385 Sun Jan 9 04:32:25 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com)
7386
7387 * config/i386-netbsd.mt (SELECT_VECS): Include i386bsd_vec.
7388
7389 Fri Jan 7 10:27:27 1994 David J. Mackenzie (djm@rtl.cygnus.com)
7390
7391 * aoutx.h (adjust_z_magic): Don't merge the start of bss with the
7392 end of data if they are not contiguous.
7393
7394 * aoutf1.h (sunos4_aout_backend): Comment the fields' meanings.
7395
7396 Fri Jan 7 15:40:16 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7397
7398 * ecoff.c (ecoff_mkobject_hook): Don't set SEC_SHARED_LIBRARY flag
7399 for .reginfo section here.
7400 (ecoff_new_section_hook): Set it here instead.
7401
7402 Fri Jan 7 10:29:27 1994 Stan Shebs (shebs@andros.cygnus.com)
7403
7404 * bfd-in.h: (bfd_boolean): Add workaround for systems that also
7405 define true and false as enums.
7406 (ALMOST_STDC): Add as alternative to __STDC__.
7407 * bfd-in2.h: Rebuilt.
7408 * syms.c (bfd_print_symbol_vandf): Convert a PTR to FILE*.
7409
7410 Thu Jan 6 14:24:44 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7411
7412 * aoutx.h (translate_to_native_sym_flags): Catch the case where
7413 there is no output section.
7414
7415 Thu Jan 6 14:37:42 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7416
7417 * nlmcode.h (nlm_object_p): If we can't read the fixed header,
7418 count it as a wrong format error, not a system call error, since
7419 the object file might simply be too small.
7420
7421 * targets.c (target_vector): Added nlm32_alpha_vec inside #ifdef
7422 BFD64.
7423 * Makefile.in (BFD32_BACKENDS): Remove nlm32-alpha.o.
7424 (BFD64_BACKENDS): Add nlm32-alpha.o. It depends on 64 bit
7425 support, even though it is for an Alpha in 32 bit mode.
7426 * configure.in (nlm32_alpha_vec): Set target64 to true.
7427
7428 * nlm32-gen.c, nlm64-gen.c: Removed. All nlm targets are
7429 different, so there is no point to providing a generic one.
7430 * libnlm.h: Don't bother to check for nlm_backend(bfd) being NULL
7431 in the backend accessor macros; that should no longer be possible.
7432 * targets.c (target_vector): Removed nlm32_big_generic_vec,
7433 nlm64_big_generic_vec, nlm64_little_generic_vec.
7434 * configure.in (nlm32_big_generic_vec, nlm32_little_generic_vec,
7435 nlm64_big_generic_vec, nlm64_little_generic_vec): Removed.
7436 * Makefile.in: Rebuilt dependencies, and
7437 (BFD32_BACKENDS): Removed nlm32-gen.o.
7438 (BFD64_BACKENDS): Removed nlm64-gen.o.
7439 (CFILES): Removed nlm32-gen.c and nlm64-gen.c.
7440
7441 * hp300hpux.c (ARCH_SIZE): Define before including aoutx.h.
7442
7443 * linker.c (_bfd_generic_link_add_one_symbol): Add constructor and
7444 bitsize arguments. Changed all callers (aoutx.h).
7445 * libbfd-in.h (_bfd_generic_link_add_one_symbol): Add constructor
7446 and bitsize arguments to declaration.
7447 * libbfd.h: Rebuilt.
7448
7449 * ecoff.c: First cut at new style of linker backend for
7450 ECOFF--added a bunch of functions. Also:
7451 (ecoff_sec_to_styp_flags): Set flags for .pdata and .xdata.
7452 (ecoff_slurp_symbolic_header): New function.
7453 (ecoff_slurp_symbolic_info): Call ecoff_slurp_symbolic_header.
7454 (ecoff_compute_reloc_file_positions): New function.
7455 (ecoff_set_section_contents): Get out quickly if count is zero.
7456 Check errors better.
7457 (ecoff_write_object_contents): Put .xdata section in data segment.
7458 Call ecoff_compute_reloc_file_positions. Don't output relocs or
7459 external symbols if outsymbols is NULL.
7460 (ecoff_bfd_final_link): Completely rewritten.
7461 * libecoff.h: Include bfdlink.h.
7462 (struct ecoff_backend_data): Add relocate_section field.
7463 (ecoff_data_type): Add sym_hashes and symndx_to_section fields.
7464 (struct ecoff_link_hash_entry): Define.
7465 (struct ecoff_link_hash_table): Define.
7466 (ecoff_bfd_link_add_symbols): Declare as function, not macro.
7467 (ecoff_bfd_link_hash_table_create): Likewise.
7468 * ecofflink.c (bfd_ecoff_debug_one_external): New function.
7469 (bfd_ecoff_debug_externals): Call bfd_ecoff_debug_one_external.
7470 * bfd-in.h (bfd_ecoff_debug_one_external): Declare.
7471 * bfd-in2.h: Rebuilt.
7472 * coff-alpha.c (alpha_howto_table): Mark BRADDR as
7473 partial_inplace, and set the src_mask to 0x1fffff.
7474 (alpha_ecoff_get_relocated_section_contents): Remove unused
7475 variable gp_warned.
7476 (alpha_convert_external_reloc): New static function.
7477 (alpha_relocate_section): New static function.
7478 (alpha_ecoff_backend_data): Initialize relocate_section field.
7479 * coff-mips.c (mips_relocate_refhi): New static function.
7480 (mips_relocate_section): New static function.
7481 (mips_ecoff_backend_data): Initialize relocate_section field.
7482
7483 * reloc.c (_bfd_relocate_contents): Corrected signed overflow
7484 checking when there is an addend.
7485
7486 * aoutx.h (NAME(aout,final_link)): Don't abort when trying to link
7487 a non a.out file, just pass it to _bfd_default_link_order.
7488 (aout_link_input_section_std): When doing a final PC relative link
7489 against a section symbol, subtract the VMA of the input section.
7490 (aout_link_input_section_ext): Likewise.
7491
7492 * linker.c (default_indirect_link_order): Renamed from
7493 _bfd_generic_indirect_link_order and made static.
7494 (_bfd_generic_final_link): Don't switch on link_order type, just
7495 call _bfd_default_link_order.
7496 (_bfd_default_link_order): Handle bfd_indirect_link_order type.
7497 * genlink.h: Removed declaration of
7498 _bfd_generic_indirect_link_order.
7499 * elf32-mips.c (mips_elf_final_link): Don't switch on link_order
7500 type, just call _bfd_default_link_order.
7501
7502 Tue Jan 4 21:23:37 1994 Ian Lance Taylor (ian@cygnus.com)
7503
7504 * linker.c (generic_link_check_archive_element): Base the name of
7505 the created common section on the name of the section the symbol
7506 came from.
7507 (_bfd_generic_link_add_one_symbol): (case BIG): A common symbol
7508 must have a section, so don't bother to create one.
7509
7510 Mon Jan 3 15:32:16 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7511
7512 * aout-target.h (MY(vec)): Add DYNAMIC to mask of object flags.
7513 * aoutf1.h (NAME(aout,sunos4_write_object_contents)):
7514 If the DYNAMIC flag is set, set it in the exec header.
7515 * aoutx.h (NAME(aout,some_aout_object_p)): If the object is
7516 dynamically linked, set the DYNAMIC flag in the BFD.
7517 * libaout.h (N_SET_DYNAMIC): New macro.
7518 (N_DYNAMIC): Add missing 0 in mask.
7519
7520 Mon Jan 3 11:41:45 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7521
7522 * ecoff.c (ecoff_get_extr): Don't output section symbols as
7523 external symbols.
7524
7525 * bfd-in.h, hash.c: Change bfd_hash_allocate argument from size_t
7526 to unsigned int, because size_t may not be defined in bfd.h.
7527 * bfd-in2.h: Rebuilt.
7528
7529 * bfd-in.h (bfd_get{b,l}[_signed_]{16,32,64}): Declare argument to
7530 be a const pointer.
7531 * bfd-in2.h: Rebuilt.
7532 * libbfd.c (bfd_get{b,l}[_signed_]{16,32,64}): Declare argument to
7533 be a const pointer.
7534 * targets.c (bfd_target): Change swap function pointers
7535 accordingly.
7536 * archive.c (do_slurp_coff_armap): Change swap accordingly.
7537 * aix386-core.c: Change NO_GET and NO_GETS accordingly.
7538 * hppabsd-core.c, hpux-core.c, irix-core.c, osf-core.c,
7539 ptrace-core.c, trad-core.c: Change NO_GET and NO_SIGNED_GET
7540 accordingly.
7541
7542 * libbfd-in.h (struct artdata): Added tdata field.
7543 (_bfd_add_bfd_to_archive_cache): Declare.
7544 (_bfd_get_elt_at_filepos): Declare.
7545 (_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr.
7546 * libbfd.h: Rebuilt.
7547 * archive.c: Cleaned up some more.
7548 (_bfd_generic_mkarchive, bfd_generic_archive_p): Initialize
7549 pointer elements of artdata.
7550 (_bfd_add_bfd_to_archive_cache): Renamed from add_bfd_to_cache.
7551 (_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr.
7552 (_bfd_get_elt_at_filepos): Renamed from get_elt_at_filepos.
7553 (get_extended_arelt_filename, bfd_construct_extended_name_table,
7554 bfd_ar_hdr_from_filesystem, compute_and_write_armap): Made static.
7555 * ecoff.c: Some comment changes.
7556 (ecoff_slurp_armap): Handle rename of snarf_ar_hdr. Set
7557 ardata->tdata to raw_armap.
7558 (ecoff_archive_p): Initialize pointer elements of artdata.
7559 * coff-rs6000.c (rs6000coff_get_elt_at_filepos): Handle rename of
7560 add_bfd_to_cache.
7561
7562 * hash.c: Added some documentation.
7563
7564 Mon Jan 3 11:09:28 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
7565
7566 * aout-target.h, netbsd386.c: Replace NO_SWAP_MAGIC with SWAP_MAGIC,
7567 and do the swapping here rather than calling ntohl from the N_*
7568 macros. This cleans up assumptions about the size of a host long,
7569 the existence to ntohl, etc.
7570
7571 Sat Jan 1 13:50:05 1994 Rob Savoye (rob@darkstar.cygnus.com)
7572
7573 * config.bfd: Add support for VSTa micro-kernel. It currently uses
7574 i386-aout.
7575
7576 Sat Jan 1 10:18:54 1994 David J. Mackenzie (djm@thepub.cygnus.com)
7577
7578 * hosts/i386mach3.h (HOST_SEGMENT_SIZE): Fix value.
7579 * i386mach3.c (SEGMENT_SIZE): Fix value.
7580
7581 Fri Dec 31 16:23:43 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7582
7583 Minor cleanups suggested by CodeCenter.
7584 * aoutx.h, coffgen.c, ecoff.c, ecofflink.c, elf.c, libbfd.c,
7585 linker.c, reloc.c, section.c, srec.c: Added /*ARGSUSED*/ as
7586 appropriate.
7587 * aoutx.h (struct external_exec): Removed unnecessary declaration.
7588 (NAME(aout,some_aout_object_p)): Set some tdata pointers to NULL.
7589 (adjust_z_magic): Removed useless variable data_vma.
7590 (stringtab_init): Initialize hash_zero.
7591 (add_to_stringtab): Removed unused fourth argument.
7592 (NAME(aout,swap_std_reloc_out)): Removed useless variable
7593 r_addend.
7594 (aout_link_input_section): Added some casts.
7595 * archive.c (get_extended_arelt_filename, do_slurp_coff_armap,
7596 bfd_ar_hdr_from_filesystem, bsd_write_armap, coff_write_armap):
7597 Minor code rewriting to make it more C like.
7598 (do_slurp_bsd_armap): Added some casts.
7599 * ecoff.c (ecoff_write_object_contents): Removed useless variable
7600 scn_base.
7601 (ecoff_write_armap): Added some casts. Use "" rather than "\0".
7602 * ecofflink.c (bfd_ecoff_write_debug): Added a cast.
7603 * libaout.h (struct internal_exec): Removed unnecessary
7604 declaration.
7605 * linker.c (_bfd_generic_indirect_link_order): Added a cast.
7606 * opncls.c (new_bfd): Removed a cast.
7607 * reloc.c (bfd_generic_get_relocated_section_contents): Added
7608 some casts.
7609 * srec.c (internal_srec_write_object_contents): Removed useless
7610 variable bytes_written.
7611
7612 Fri Dec 31 11:46:13 1993 David J. Mackenzie (djm@thepub.cygnus.com)
7613
7614 * i386mach3.c (N_TXTADDR): Don't define after all.
7615 (TEXT_START_ADDR): Don't include exec header size in value.
7616
7617 Thu Dec 30 15:47:54 1993 David J. Mackenzie (djm@thepub.cygnus.com)
7618
7619 * i386mach3.c (N_TXTADDR): Define.
7620
7621 Thu Dec 30 13:37:24 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7622
7623 Extensive changes to move the bulk of the linker into BFD so that
7624 more efficient backend code can be written for specific object
7625 files. Only existing efficient backend is a.out.
7626 * seclet.c, seclet.h: Removed.
7627 * hash.c, linker.c, genlink.h: New files.
7628 * bfd-in.h: Removed bfd_error_vector. Declared hash table
7629 structures and functions.
7630 (JUMP_TABLE): Removed bfd_seclet_link, added
7631 bfd_link_hash_table_create, bfd_link_add_symbols and
7632 bfd_final_link.
7633 * All backends: Changed accordingly.
7634 * bfd-in2.h: Rebuilt.
7635 * bfd.c (struct _bfd): Added link_next and archive_pass fields.
7636 Removed ld_symbols field.
7637 (bfd_nonrepresentable_section, bfd_undefined_symbol,
7638 bfd_reloc_value_truncated, bfd_reloc_is_dangerous,
7639 bfd_error_vector): Removed.
7640 (bfd_default_error_trap, bfd_error_trap,
7641 bfd_error_nonrepresentabltrap): Removed.
7642 (bfd_get_relocated_section_contents): Pass link_info. Pass
7643 link_order instead of seclet. Pass symbols.
7644 (bfd_relax_section): Pass link_info.
7645 (bfd_seclet_link): Removed.
7646 (bfd_link_hash_table_create, bfd_link_add_symbols,
7647 bfd_final_link): New macros.
7648 * libbfd-in.h: If __GNUC__ is defined and alloca is not, define
7649 alloca as __builtin_alloca. Declare internal linking functions.
7650 * libbfd.h: Rebuilt.
7651 * libbfd.c (bfd_seek): Comment out fseek assertion. It's worked
7652 for months.
7653 * reloc.c (reloc_howto_type): Added error_message argument to
7654 special_function field. Changed all callers and all definitions.
7655 (bfd_get_reloc_size): Make argument a const pointer.
7656 (bfd_perform_relocation): Add error_message argument to hold
7657 string set if return value if bfd_reloc_dangerous. Changed all
7658 callers.
7659 (_bfd_final_link_relocate, _bfd_relocate_contents): New functions.
7660 * section.c (asection): Renamed seclets_head and seclets_tail to
7661 link_order_head and link_order_tail.
7662 * targets.c (bfd_target): Replaced seclet argument with link_info
7663 and link_order and symbols arguments in
7664 bfd_get_relocated_section_contents. Added symbols argument to
7665 bfd_relax_section. Removed bfd_seclet_link. Added
7666 bfd_link_hash_table_create, bfd_link_add_symbols and
7667 bfd_final_link.
7668 * libaout.h (struct aoutdata): Added external_syms,
7669 external_sym_count, external_strings, sym_hashes fields.
7670 (obj_aout_external_syms, obj_aout_external_sym_count,
7671 obj_aout_external_strings, obj_aout_sym_hashes): New accessor
7672 macros.
7673 (WRITE_HEADERS): Only output symbols if outsymbols is not NULL.
7674 * aoutx.h: Wrote new back end linker routines.
7675 (translate_to_native_sym_flags): Return boolean value. Don't use
7676 bfd_error_vector.
7677 (NAME(aout,write_syms)): Return boolean value. Check return value
7678 of translate_to_native_sym_flags and bfd_write.
7679 * aout-target.h (final_link_callback): New function.
7680 (MY_bfd_final_link): New function.
7681 * aout-adobe.c (aout_adobe_write_object_contents): Check return
7682 value of aout_32_write_syms.
7683 * hp300hpux.c (MY(write_object_contents)): Likewise.
7684 * i386lynx.c (WRITE_HEADERS): Likewise.
7685 * libaout.h (WRITE_HEADERS): Likewise.
7686 * bout.c: Changed functions to use link_info->callbacks rather
7687 than bfd_error_vector, and link_orders rather than seclets.
7688 * coff-alpha.c: Likewise.
7689 * coff-h8300.c: Likewise.
7690 * coff-h8500.c: Likewise.
7691 * coff-sh.c: Likewise.
7692 * coff-z8k.c: Likewise.
7693 * elf32-hppa.c: Likewise.
7694 * reloc16.c: Likewise.
7695 * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Look
7696 up _gp in the hash table rather than in outsymbols.
7697 * coff-a29k.c (a29k_reloc): Pass errors back in new error_message
7698 argument rather than printing them.
7699 * coffcode.h (bfd_coff_reloc16_extra_cases): Take link_info and
7700 link_order arguments rather than seclet. Changed all uses and
7701 definitions.
7702 (bfd_coff_reloc16_estimate): Pass link_info arguments. Changed
7703 all uses and definitions.
7704 * libcoff.h: Rebuilt.
7705 * ecoff.c (ecoff_get_extr): If symbol is defined by linker, but
7706 not by ECOFF, make it scAbs.
7707 (ecoff_bfd_final_link): Renamed from ecoff_bfd_seclet_link and
7708 rewritten.
7709 * elf32-mips.c (mips_elf_final_link): Renamed from
7710 mips_elf_seclet_link and rewritten.
7711 * elf32-hppa.c (elf32_hppa_stub_description): Added link_info
7712 field.
7713 (new_stub, add_stub_by_name, hppa_elf_build_arg_reloc_stub,
7714 hppa_elf_build_long_branch_stub, hppa_look_for_stubs_in_section):
7715 Added link_info arguments. Changed all callers.
7716 * elfcode.h (elf_slurp_symbol_table): Don't quit if outsymbols is
7717 not NULL.
7718 * oasys.c (oasys_write_sections): Return boolean value rather than
7719 using bfd_error_vector.
7720 (oasys_write_object_contents): Check return value of
7721 oasys_write_sections.
7722 * hosts/std-host.h: Don't declare qsort or strtol.
7723 * Makefile.in: Rebuild dependencies.
7724 (BFD_LIBS): Removed seclet.o. Added hash.o and linker.o.
7725 (CFILES): Removed seclet.c. Added hash.c and linker.c.
7726 (HFILES): Removed seclet.h. Added genlink.h.
7727
7728 Thu Dec 30 07:41:36 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
7729
7730 * section.c (bfd_get_section_contents): Return zero filled buffer
7731 if section has no contents.
7732
7733 Tue Dec 28 12:43:54 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7734
7735 * elf.c (bfd_elf_generic_reloc): If this is not an inplace reloc,
7736 then skip bfd_perform_relocation even if the addend is non-zero.
7737
7738 Tue Dec 21 09:22:19 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
7739
7740 * coffcode.h (coff_write_relocs) [SWAP_OUT_RELOC_OFFSET]: Copy
7741 addend to r_offset field.
7742
7743 * Makefile.in (CFILES): Added coff-sparc.c. Rebuild dependencies.
7744
7745 * coff-sparc.c (SWAP_IN_RELOC_OFFSET, SWAP_OUT_RELOC_OFFSET,
7746 CALC_ADDEND): Define.
7747
7748 * aix386-core.c (aix386_core_file_p): Use cd_regs[0] for computing
7749 the offsetof because AIX /bin/cc does not like to take the address
7750 of an array. (From Minh Tran-Le.)
7751
7752 Thu Dec 16 13:06:32 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
7753
7754 * Thu Dec 16 15:41:06 1993 Peter Hoogenboom (hoogen@cs.utah.edu)
7755
7756 * elf32-hppa.c (hppa_elf_build_arg_reloc_stub): Make sure to copy
7757 the return pointer into %r2 if no jump-in-call-delay-slot
7758 optimization was done.
7759
7760 * hosts/hp300bsd.h: Correctly identify 4.3BSD vs 4.4BSD.
7761
7762 Wed Dec 15 08:04:16 1993 David J. Mackenzie (djm@thepub.cygnus.com)
7763
7764 * hosts/std-host.h: (time): Don't declare; conflicts on Mach3.
7765
7766 * hosts/i386mach3.h (HOST_PAGE_SIZE): Set to 1 to avoid padding.
7767 (HOST_SEGMENT_SIZE): Set to 0 for same reason.
7768
7769 * i386mach3.c (PAGE_SIZE, SEGMENT_SIZE): Same changes as above.
7770 (TEXT_START_ADDR): Correct.
7771 (MY_backend_data): Define.
7772
7773 * aoutx.h (adjust_o_magic, adjust_z_magic, adjust_n_magic):
7774 New functions; code moved from aout_<size>_adjust_sizes_and_vmas.
7775
7776 Tue Dec 14 21:48:33 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
7777
7778 * som.c (som_begin_writing): Fix thinkos in auxiliary header
7779 support.
7780 (bfd_som_attach_aux_hdr): Likewise.
7781
7782 Mon Dec 13 23:34:48 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
7783
7784 * elf32-hppa.c (hppa_elf_gen_reloc_type): Handle 'T' field
7785 selectors for PIC code.
7786
7787 * som.c (hppa_som_gen_reloc_type): Handle 'T' field selectors.
7788 (som_write_fixups): Handle R_DLT_REL, R_FSEL, R_RSEL, R_LSEL
7789 relocations needed by PIC.
7790
7791 Tue Dec 7 15:47:51 1993 Stu Grossman (grossman at cygnus.com)
7792
7793 * nlmcode.h: Fixes to avoid compiler warnings...
7794
7795 Tue Dec 7 15:10:54 1993 Ian Lance Taylor (ian@cygnus.com)
7796
7797 * libnlm.h (nlm_backend_data): Removed macro definition.
7798 (nlm_alpha_backend_data): Adjusted accordingly.
7799
7800 Sun Dec 5 19:32:08 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
7801
7802 * som.c (som_begin_writing): Flesh out code for handling simple
7803 auxiliary headers.
7804 (bfd_som_attach_aux_hdr): New function.
7805
7806 * som.h (struct somdata): Add fields for attaching version and
7807 copyright headers. Add accessor macros.
7808
7809 * som.c (R_DLT_REL, R_AUX_UNWIND, R_SEC_STMT): Add protected
7810 definitions for old versions of HPUX which fail to define them.
7811 (som_hppa_howto_talbe): Add R_DLT_REL, R_AUX_UNWIND, and R_SEC_STMT
7812 now that they're safe. Delete bogus R_STATEMENT relocations.
7813
7814 * som.c (som_hppa_howto_table): Add missing R_END_TRY. Delete
7815 extra R_DATA_OVERRIDE.
7816 (hppa_som_gen_reloc_type): Generate a relocation for the rounding
7817 mode selector if needed.
7818 (som_write_fixups): Handle requests for a change in the default
7819 rounding mode. Rounding modes do not consume input bytes, but
7820 are just markers much like R_ENTRY and R_EXIT.
7821
7822 Sat Dec 4 19:40:32 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
7823
7824 Fri Dec 3 09:55:17 1993 Pete Hoogenboom (hoogen@cs.utah.edu)
7825
7826 * elf32-hppa.c: (hppa_elf_reloc): Do not do code reordering when
7827 the branch instruction as originally been nullified.
7828 hppa_elf_reloc): Avoid useless call to bfd_put_32 () in the
7829 case of no code reordering due to an LDO instruction in the
7830 delay slot of the branch. Make sure to relocate the correct
7831 instruction. Do not perform instruction reordering for millicode
7832 calls.
7833 (hppa_elf_build_arg_reloc_stub): Change the relocation type
7834 to R_HPPA_STUB_CALL_17 when special processing might be needed.
7835 (hppa_elf_build_long_branch_stub): Prevent code reordering on
7836 a call from a linker stub to another linker stub and for millicode
7837 calls. Do not trash the return register for calls from one linker
7838 stub to a second linker stub.
7839
7840 * elf32-hppa.c: (elf_hppa_howto_table): PLABEL and DLT
7841 relocations are not pc-relative.
7842
7843 * hppa_stubs.h: (BLE_N_XXX_0_31): New instruction used in
7844 linker stub code.
7845 (COPY_2_31): Likewise.
7846
7847 Fri Dec 3 18:40:58 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7848
7849 * config/solaris2.mh (HDEFINES): Remove -Dconst=
7850 * hosts/solaris.h: If not __GNUC__, define const as empty.
7851
7852 Thu Dec 2 15:43:32 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7853
7854 * ecoff.c: Added various casts for 32/64 bit cross targeting.
7855 (ecoff_mkobject_hook): Set SEC_SHARED_LIBRARY for the .reginfo
7856 section so that the linker ignores it.
7857 * ecofflink.c: Added various casts for 32/64 bit cross targeting.
7858 (ecoff_add_bytes): Changed need argument to size_t.
7859 (bfd_ecoff_debug_link_other): Check return value of
7860 ecoff_add_string.
7861
7862 * libbfd-in.h (new_bfd): Use void rather than an empty parameter
7863 list.
7864 * libbfd.h: Rebuilt.
7865
7866 * libnlm.h (struct nlm_obj_tdata): New field backend_data.
7867 (nlm_backend_data, nlm_alpha_backend_data): New accessor macros.
7868 (struct nlm_backend_data): New field no_uninitialized_data.
7869 (nlm_no_uninitialized_data): New accessor macro.
7870 * nlmcode.h (nlm_compute_section_file_positions): Handle
7871 no_uninitialized_data.
7872 (nlm_external_reloc_compare): Sort relocs by address for a
7873 particular symbol, to make the sort more stable.
7874 (nlm_write_object_contents): Cast the arguments to qsort. Get the
7875 value of a debugging symbol the same way we get the value of a
7876 normal symbol.
7877 * nlm32-alpha.c: Various changes. Write out GP and .lita relocs.
7878 Set no_uninitialized_data to true.
7879 * nlm32-i386.c (nlm32_i386_backend), nlm32-sparc.c
7880 (nlm32_sparc_backend): Set no_uninitialized_data field false.
7881 * nlmswap.h (nlm_swap_fixed_header_out): Zero out destination
7882 before filling it in.
7883
7884 Wed Dec 1 21:47:58 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
7885
7886 * som.c (som_section_type, som_decode_symcalss): New functions.
7887 (som_get_symbol_info): Use them.
7888 (som_slurp_symbol_table): Set the section of common and undefined
7889 symbols correctly.
7890
7891 Wed Dec 1 14:15:10 1993 Ken Raeburn (raeburn@cygnus.com)
7892
7893 * elfcode.h (write_relocs): Initialize local var LAST_SYM_IDX, to
7894 make gcc happy.
7895
7896 * mipsbsd.c: Changes from Ralph Campbell:
7897 (mips_howto_table_ext): MIPS_RELOC_LO16 should use
7898 complain_overflow_dont.
7899 (aout_mips_*_vec): Make name use "a.out" instead of "aout", to
7900 make gdb happy.
7901
7902 * bfd.c (bfd_errmsgs): Reword invalid-target message.
7903
7904 * config.bfd: For sparc*-*-coff, use sparc-coff.
7905 * configure.in: Handle sparccoff_vec.
7906 * targets.c (sparccoff_vec): Declare.
7907
7908 * reloc.c (bfd_get_reloc_size): New function.
7909 (struct reloc_howto_type): Update documentation of size field.
7910
7911 Wed Dec 1 14:39:05 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7912
7913 * nlm32-alpha.c: New file; preliminary Alpha NetWare support.
7914 * config.bfd (alpha-*-netware*): New target; use alpha-nlm.
7915 * config/alpha-nlm.mt: New file.
7916 * configure.in (nlm32_alpha_vec): New vector; use nlm32-alpha.o,
7917 nlm32.o, and nlm.o.
7918 * Makefile.in (BFD32_BACKENDS): Added nlm32-alpha.o.
7919 (CFILES): Added nlm32-alpha.c.
7920 Rebuilt dependencies.
7921 * targets.c (nlm32_alpha_vec): Declare.
7922
7923 * libnlm.h (struct nlm_backend_data): New fields
7924 optional_prefix_size, nlm_backend_object_p, nlm_write_prefix,
7925 nlm_set_public_section, nlm_get_public_offset. Removed unused
7926 nlm_write_reloc field. Changed nlm_write_import to remove
7927 unnecessary symbol argument. Renamed nlm_write_externals to
7928 nlm_write_external, and changed cound argument from bfd_vma to
7929 bfd_size_type.
7930 (nlm_optional_prefix_size, nlm_backend_object_p_func,
7931 nlm_write_prefix_func, nlm_set_public_section_func,
7932 nlm_get_public_offset_func): New accessor macros.
7933 (nlm_write_reloc_func): Removed.
7934 (nlm_write_external_func): Adjusted for field renaming.
7935 * nlm32-i386.c (nlm_i386_write_import): Renamed from
7936 nlm_i386_write_reloc. Removed old nlm_i386_write_import which
7937 just called old nlm_i386_write_reloc.
7938 (nlm_i386_write_external): Renamed from nlm_i386_write_externals.
7939 Declared. Changed second argument from bfd_vma to bfd_size_type.
7940 (nlm32_i386_backend): Adjusted for changes to fields and names.
7941 * nlm32-sparc.c (nlm_sparc_mangle_relocs): Removed unused,
7942 ifdeffed out code.
7943 (nlm_sparc_write_import): Removed second argument.
7944 (nlm_sparc_write_external): Renamed from
7945 nlm_sparc_write_externals. Changed second argument from bfd_vma
7946 to bfd_size_type.
7947 (nlm32_sparc_backend): Adjusted for changes to fields and names.
7948 * nlmcode.h: Removed some unused code.
7949 (nlm_object_p): Don't destroy tdata pointer. Call
7950 backend_object_p function if it exists.
7951 (nlm_slurp_symbol_table): Removed unused variable rcount. Call
7952 set_public_section_func if it exists instead of checking
7953 NLM_HIBIT.
7954 (nlm_compute_section_file_positions): Account for
7955 optional_prefix_size.
7956 (nlm_write_object_contents): Account for optional_prefix_size.
7957 Removed useless variable write_reloc_func. Changed declaration
7958 and call of write_import_func. Call write_prefix_func if it
7959 exists. Removed unused variables len and temp. Call
7960 get_public_offset_func if it exists rather than setting NLM_HIBIT.
7961 * nlmswap.h: Declare functions.
7962
7963 * bfd-in.h (uint64_typeLOW, uint64_typeHIGH): Fully parenthesize
7964 for clarity.
7965 (fprintf_vma, sprintf_vma): Use %lx, not %x.
7966 * bfd-in2.h: Rebuilt.
7967 * hosts/alphaosf.h (uint64_typeLOW, uint64_typeHIGH): Cast results
7968 to unsigned long.
7969
7970 * config.bfd: Don't set target64 here, as the setting is ignored.
7971 * configure.in (ecoffalpha_little_vec): Set target64.
7972
7973 * config/alphaosf.mt (TDEFINES): Removed; setting host parameters
7974 in TDEFINES is wrong.
7975
7976 * coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
7977 Remove unused variable output_section.
7978
7979 Tue Nov 30 16:45:23 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7980
7981 * irix-core.c: New file for Irix 4 and Irix 5 core support.
7982 Functions taken out of coff-mips.c. Handle vmap type VMAPFILE.
7983 * coff-mips.c: Irix 4 core file support moved to irix-core.c.
7984 * targets.c: If IRIX_CORE defined, include irix_core_vec in
7985 target_vector.
7986 * config/irix4.mh (HDEFINES): Add -DIRIX_CORE.
7987 (HDEPFILES): Define to be irix-core.o.
7988 * config/irix5.mh (HDEFINES): Define to be -DIRIX_CORE.
7989 (HDEPFILES): Define to be irix-core.o.
7990 * Makefile.in (OPTIONAL_BACKENDS): Added irix-core.o. Removed
7991 sco-core.o, which no longer exists.
7992 (CFILES): Added all *-core.c files.
7993 Rebuilt dependencies.
7994
7995 Wed Nov 24 02:02:41 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
7996
7997 * elfcode.h (map_program_segments): Restore check of file_size !=
7998 mem_size, but only if SHT_PROGBITS.
7999
8000 * ecofflink.c: New file to hold ECOFF debug information linking
8001 routines.
8002 * ecoff.c (ecoff_clear_output_flags, ecoff_rel, ecoff_dump_seclet,
8003 ecoff_add_string, ecoff_get_debug): Removed. Functionality now in
8004 ecofflink.c.
8005 (ecoff_get_extr, ecoff_set_index): New functions.
8006 (ecoff_slurp_symbolic_info): Don't save raw_size.
8007 (ecoff_bfd_seclet_link): Rewrote to use ecofflink.c functions.
8008 (ecoff_compute_section_file_positions): Don't set EXEC_P just
8009 because there is a start address.
8010 (ecoff_write_object_contents): Handle external symbols here. Use
8011 ecofflink.c functions to write out debugging information.
8012 * elf32-mips.c (mips_elf_read_ecoff_info, mips_elf_get_extr,
8013 mips_elf_set_index): New functions.
8014 (mips_elf_seclet_link): Discard empty sections, the .options
8015 section and .gptab sections. Handle linking .mdebug section.
8016 * libecoff.h (ecoff_data_type): Removed raw_size and ifdbase.
8017 * libelf.h (elf_symbol_type): Added mips_extr to tc_data union.
8018 * bfd-in.h: Added prototypes for routines in ecofflink.c (some are
8019 called by gas, so they are public).
8020 * bfd-in2.h: Rebuilt.
8021 * Makefile.in (BFD_LIBS): Added ecofflink.o.
8022 (CFILES): Added ecofflink.c.
8023 (ecofflink.o): New target. Rebuilt dependencies.
8024
8025 Mon Nov 22 22:26:42 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
8026
8027 * som.c (hppa_object_p): Also recognize SHARED_MAGIC_CNX as
8028 a valid magic number if it's been defined.
8029
8030 Mon Nov 22 14:17:36 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
8031
8032 * ecoff.c (ecoff_mkobject): Don't create .scommon section; linker
8033 no longer requires it.
8034 (ecoff_bfd_seclet_link, ecoff_sizeof_headers,
8035 ecoff_write_object_contents): Don't treat .scommon section
8036 specially.
8037
8038 Mon Nov 22 10:54:27 1993 Fred Fish (fnf@cygnus.com)
8039
8040 Merged changes from kev@spuds.geg.mot.com (Kevin A. Buettner):
8041 * bfd/config/delta88.mh (HDEFINES): Define this to be -DPTRACE_CORE.
8042 * bfd/config/delta88.mh (HDEPFILES): Defined to be ptrace-core.o.
8043 * bfd/ptrace-core.c: New file for dealing with core files with
8044 start with the ptrace_user structure found on BCS compliant systems.
8045 * bfd/targets.c (ptrace_core_vec): New vector.
8046
8047 Mon Nov 22 02:33:12 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
8048
8049 * Minimal support for reading SOM fixup streams. Allows
8050 objdump -r to do something reasonable.
8051 * som.c (som_get_reloc_upper_bound): Implement.
8052 (som_canonicalize_reloc): Implement.
8053 (som_set_reloc_info, som_slurp_reloc_table): New functions.
8054
8055 Sun Nov 21 13:46:55 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
8056
8057 * hosts/lynx.h (FPRINTF_ALREADY_DECLARED): Define.
8058 * hosts/sparclynx.h: Include lynx.h instead of duplicating it.
8059
8060 Fri Nov 19 14:34:04 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
8061
8062 * coff-a29k.c (a29k_reloc): For R_IREL, don't left shift
8063 signed_value before sign extending it. Don't subtract out
8064 reloc_entry->address. This makes it compatible with what gas is
8065 generating.
8066
8067 * elfcode.h (elf_fake_sections): Accept .sbss as the name for a
8068 SHT_NOBITS sections.
8069 (map_program_segments): Don't leave the loop after the first
8070 SHT_NOBITS section.
8071 (assign_file_positions_except_relocs): Only force sh_offset and
8072 sh_addr to match modulo maxpagesize for a section which is not
8073 SHT_NOBITS. Changed the method used to force page alignment after
8074 a SHT_NOBITS section to only do it for the last such consecutive
8075 section, and to really force page alignment.
8076
8077 Fri Nov 19 04:02:01 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
8078
8079 * coffcode.h (coff_slurp_symbol_table): Print more verbose message
8080 in the case of an unknown (or unhandled) storage class.
8081
8082 * config/i386-lynx.mt (TDEFINES): FPRINTF_ALREADY_DECLARED should
8083 not be defined here, since it is a host attribute, not a target
8084 one.
8085 * config/m68k-lynx.mt, config/sparc-lynx.mt: Ditto.
8086
8087 * coffcode.h (coff_bfd_reloc_type_lookup): Don't define if already
8088 defined.
8089
8090 * coff-sparc.c: Define some relocations, based on ELF relocations.
8091 (enum reloc_type, bfd_coff_generic_reloc, coff_sparc_howto_table,
8092 struct coff_reloc_map, sparc_reloc_map,
8093 coff_sparc_reloc_type_lookup): Borrowed from elf32-sparc.c and
8094 elf.c, renamed.
8095 (coff_bfd_reloc_type_lookup): Define to be coff_sparc_reloc_....
8096 (rtype2howto): Index into coff_sparc_howto_table using
8097 dst->r_type.
8098
8099 Thu Nov 18 11:45:39 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
8100
8101 * config.bfd (mips*-*-irix5*): New target; use mipsbelf.
8102 * configure.host (mips-sgi-irix5*) New host; use irix5 (no
8103 hosts/irix5.h created; just use std-host.h).
8104 * config/irix5.mh: New file; like irix4.mh, but don't use -G or
8105 -lmalloc.
8106 * Makefile.in: Rebuilt dependencies.
8107
8108 * ecoffswap.h: Changed type of internal pointers for swap out
8109 functions to const *.
8110
8111 * elf32-mips.c (mips_elf_got16_reloc): New function. Handle GOT16
8112 correctly for assembler, but linker support not implemented.
8113 (elf_mips_howto_table): Use mips_elf_got16_reloc for GOT16.
8114 (mips_elf_sym_is_global): New function; at least on Irix 5, all
8115 non section symbols are considered global.
8116 (elf_backend_sym_is_global): Define.
8117 (mips_elf_final_write_processing): New function. Set the MIPS
8118 architecture level correctly.
8119 (elf_backend_final_write_processing): Define.
8120 (mips_elf_section_from_shdr): Handle SHT_MIPS_OPTIONS.
8121 (mips_elf_fake_sections): Set entsize of .mdebug or .reginfo
8122 section to 1. Handle .options section.
8123 (mips_elf_acom_section, mips_elf_acom_symbol,
8124 mips_elf_acom_symbol_ptr): New static variables, used to build a
8125 generic .acommon section to hold SHN_MIPS_ACOMMON symbols.
8126 (mips_elf_symbol_processing): Handle SHN_MIPS_ACOMMON symbols by
8127 putting them all in a global .acommon section.
8128
8129 * elfcode.h (bfd_section_from_shdr): Don't dump core if target
8130 section has no ELF section data.
8131 (elf_make_sections): Set addralign of reloc section to 4.
8132 (elf_fake_sections): Likewise.
8133 (map_program_segments): Don't consider section 0.
8134 (assign_file_positions_except_relocs): Don't consider section 0.
8135 In the main loop, skip the symtab and strtab sections, since their
8136 positions are set elsewhere.
8137 (swap_out_syms): Set addralign of symtab section to 4. Set
8138 addralign of strtab sections to 1.
8139 (assign_file_positions_for_relocs): Don't consider section 0.
8140 (write_object_contents): Don't write out section 0.
8141
8142 * libelf.h (struct elf_backend_data): Added fields
8143 elf_backend_sym_is_global and elf_backend_final_write_processing.
8144 * elf32-target.h (elf32_bed): Added corresponding initializers.
8145 * elf64-target.h (elf64_bed): Likewise.
8146 * elfcode.h (sym_is_global): Take abfd argument. Call
8147 elf_backend_sym_is_global if it is not NULL.
8148 (elf_map_symbols): Pass abfd to sym_is_global.
8149 (write_object_contents): Call elf_backend_final_write_processing
8150 if it is defined.
8151
8152 Wed Nov 17 18:43:28 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
8153
8154 * libecoff.h: Include coff/ecoff.h.
8155 (struct ecoff_backend_data): Move external debugging information
8156 fields into a single field pointing to an ecoff_debug_swap
8157 structure.
8158 (ecoff_data_type): Move debugging information fields into a single
8159 field pointing to an ecoff_debug_info structure.
8160 * coff-alpha.c, coff-mips.c, ecoff.c: Corresponding changes.
8161
8162 Wed Nov 17 17:38:58 1993 Sean Eric Fagan (sef@cygnus.com)
8163
8164 * nlmswap.h: New file to swap fixed header. Included by NLM
8165 backends.
8166 * libnlm.h (struct reloc_and_sec): Define.
8167 (struct nlm_backend_data): Add fields fixed_header_size,
8168 nlm_read_import, nlm_write_import, nlm_swap_fhdr_in,
8169 nlm_swap_fhdr_out.
8170 (nlm_fixed_header_size, nlm_read_import_func,
8171 nlm_write_import_func, nlm_swap_fixed_header_in_func,
8172 nlm_swap_fixed_header_out_func, nlm_write_external_func): New
8173 accessor macros.
8174 * nlmcode.h: Use new functions.
8175 * nlm32-i386.c: Provide new functions.
8176 * nlm32-sparc.c: New file; SPARC NLM backend.
8177
8178 Wed Nov 17 13:56:10 1993 Stan Shebs (shebs@rtl.cygnus.com)
8179
8180 * i386lynx.c (swap_std_reloc_in, swap_ext_reloc_in): Ignore
8181 garbage bits appearing in the upper end of symbolnums.
8182
8183 * config/sparc-lynx.mt (TDEFINES): Add -DFPRINTF_ALREADY_DECLARED.
8184
8185 Tue Nov 16 17:03:41 1993 Stu Grossman (grossman at cygnus.com)
8186
8187 * lynx-core.c (lynx_core_file_p): Change bfd_zalloc to bfd_alloc.
8188 * m68klynx.c: Define core file macros.
8189 * hosts/i386lynx.h, hosts/m68klynx.h, hosts/lynx.h: Move all
8190 non-architecture specific stuff into lynx.h.
8191
8192 Tue Nov 16 15:45:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
8193
8194 * i386linux.c: Define new macro ZMAGIC_DISK_BLOCK_SIZE to 1024, and
8195 change PAGE_SIZE to 4096.
8196
8197 Mon Nov 15 11:48:08 1993 Ken Raeburn (raeburn@rtl.cygnus.com)
8198
8199 * Makefile.in (diststuff): New target.
8200
8201 * VERSION: Updated.
8202
8203 Sun Nov 14 23:33:01 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
8204
8205 * som.c (som_object_setup): Do not create dummy ".text", ".data",
8206 and ".bss" sections.
8207 (setup_sections): Do not set SEC_HAS_CONTENTS if a section's size
8208 is zero. Recognize BSS type sections and turn off SEC_LOAD and
8209 SEC_DATA (so binutils/size works). Set the correct value for
8210 a section's _raw_size.
8211 (som_slurp_symbol_table): Program entry points, and millicode are
8212 also functions. Mark them as such. Also mark L$* symbols as
8213 debugging symbols.
8214
8215 * bfd-in2.h: Rebuilt.
8216
8217 Sat Nov 13 15:27:15 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
8218
8219 * som.c (som_bfd_reloc_type_lookup): Add missing prototype. Returns
8220 a pointer to constant data. Delete bogus #define which made the
8221 function useless.
8222
8223 * som.c (som_prep_for_fixups): New function.
8224 (som_write_fixups): New function.
8225 (som_write_space_strings): New function.
8226 (som_write_symbol_strings): New function.
8227 (som_begin_writing): New function.
8228
8229 Fri Nov 12 15:29:36 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
8230
8231 * som.c (som_write_object_contents): Do not abort. Flesh out.
8232 (som_set_section_contents): Do not abort. Flesh out.
8233
8234 * som.c (som_write_headers): New function.
8235 (som_prep_headers): New function.
8236 (som_build_and_write_symbol_table): New function.
8237
8238 * som.c (som_sizeof_headers): Add missing prototype.
8239 (som_set_arch_mach): Do not abort.
8240
8241 * som.c (som_count_spaces): New function.
8242 (som_count_subspaces): New function.
8243 (compare_syms): New function.
8244 (som_compute_checksum): New function.
8245
8246 * som.c (hppa_som_gen_reloc_type): New function.
8247 (som_bfd_reloc_type_lookup): New function.
8248
8249 * som.c (try_prev_fixup): New function.
8250 (som_reloc_skip): New function.
8251 (som_reloc_addend): New function.
8252 (som_reloc_call): New function.
8253
8254 * som.c (som_initialize_reloc_queue): New function.
8255 (som_reloc_queue_insert): Likewise.
8256 (som_reloc_queue_fix): Likewise.
8257 (som_reloc_queue_find): Likewise.
8258
8259 * som.c (som_hppa_howto_table): SOM howto relocation table.
8260 (hppa_som_reloc): New function.
8261
8262 * som.c (struct reloc_queue): New structure to keep track of
8263 the last four multibyte relocations emitted.
8264 (enum pa_symbol_type): Type to fully describe the symbol types
8265 associated with .import/.export assembler directives.
8266
8267 * som.c: Include libhppa.h
8268
8269 * som.c (bfd_som_set_section_attributes): New function.
8270 (bfd_som_set_subsection_attributes): Likewise.
8271 (bfd_som_set_symboL_type): Likewise.
8272 (bfd_som_attach_unwind_info): Likewise.
8273 * som.h: Declare new exported functions.
8274
8275 * som.h (struct som_symbol): Add new fields to hold additional
8276 information needed to build/write symbol tables and fixup streams.
8277 (struct som_section_data_struct): Add new fields to hold additional
8278 information needed to build/write space and subspace headers.
8279 (som_symbol_data): New accessor macro for SOM symbol information.
8280 (R_HPPA_*): Basic relocation types to be used by the assembler.
8281
8282 Fri Nov 12 11:00:28 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
8283
8284 * trad-core.c (trad_unix_core_file_p): If new hook
8285 TRAD_CORE_ALLOW_ANY_EXTRA_SIZE defined, then skip the check for the
8286 corefile being too big.
8287 * hosts/i386sco.h: Define it.
8288
8289 Thu Nov 11 15:16:28 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
8290
8291 * bfd.c (struct _bfd): Add hppabsd_core_data.
8292 * targets.c (target_vector): Add hppabsd_core_vec.
8293 * hpux-core.c (hpux_core_core_file_p): Fail if an unknown core
8294 section is encountered during core section scanning.
8295 * hppabsd-core.c: New file.
8296 * config/hppabsd.mh: Enable HPPA BSD core files.
8297
8298 * elf32-hppa.c (hppa_elf_reloc): Remove DEFUN crud. Remove code
8299 which is either commented out or ifdef'd out. Add, update and
8300 clean comments. Fix various indention and spacing problems. Handle
8301 problems related to using "ble" to jump to a stub rather than "bl"
8302 (%r31 is trashed by "ble", but not by "bl").
8303 (NEW_INSTRUCTION): Put inside curly braces.
8304 (CURRENT_STUB_OFFSET): Fix indention problems.
8305 (hppa_elf_build_arg_reloc_stub): Fix indention and spacing problems.
8306 Add, update and clean comments. Handle "ble" %r31 lossage problems.
8307 (hppa_elf_build_long_branch_stub): Likewise.
8308 (hppa_look_for_stubs_in_section): Likewise.
8309 (hppa_elf_stub_check): Remove obsolete function.
8310
8311 * hppa_stubs.h: Add new instructions to deal with %r31 lossage
8312 problems. Delete unused instructions.
8313
8314 Tue Nov 9 11:40:27 1993 Stan Shebs (shebs@rtl.cygnus.com)
8315
8316 * m68klynx.c (TARGET_IS_BIG_ENDIAN_P): Define.
8317
8318 Tue Nov 9 11:26:05 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
8319
8320 * elfcode.h (elf_object_p): Rather than looking through an array
8321 of architectures, get the ELF EM_xxx code from the backend
8322 information. Let the generic ELF target match any EM_xxx code not
8323 matched by another ELF target. Call elf_backend_object_p to let
8324 the backend do more checks and set global information.
8325 * libelf.h (struct elf_backend_data): Added elf_machine_code and
8326 elf_backend_object_p fields.
8327 (struct bfd_elf_arch_map): Removed.
8328 (bfd_elf_arch_map, bfd_elf_arch_map_size): Don't declare.
8329 * elf32-target.h, elf64-target.h: Initialize elf_machine_code
8330 field with ELF_MACHINE_CODE. Initialize elf_backend_object_p
8331 field with elf_backend_object_p (if it is defined).
8332 * elf32-gen.c, elf32-hppa.c, elf32-i386.c, elf32-i860.c,
8333 elf32-m68k.c, elf32-m88k.c, elf32-mips.c, elf32-sparc.c,
8334 elf64-gen.c (ELF_MACHINE_CODE): Defined.
8335 * elf32-mips.c: Include ecoffswap.h to get ECOFF swapping
8336 routines.
8337 (mips_elf_object_p): Set the right machine number.
8338 (mips_elf_ecoff_debug_swap): Defined.
8339 (elf_backend_object_p): Defined to be mips_elf_object_p.
8340 (elf_backend_ecoff_debug_swap): Defined to be
8341 mips_elf_ecoff_debug_swap.
8342 * elf.c (bfd_elf_arch_map, bfd_elf_arch_map_size): Removed.
8343
8344 * libbfd-in.h (target_vector, default_vector): Declare.
8345 * libbfd.h: Rebuilt.
8346 * format.c (target_vector, default_vector): Don't declare.
8347
8348 * elf32-mips.c (elf_mips_howto_table): Don't complain on overflow
8349 for R_MIPS_26. Correct overflow detection requires matching the
8350 upper four bits of the destination against the PC. From Ted Lemon
8351 <mellon@pepper.ncd.com>.
8352
8353 * bout.c (b_out_reloc_type_lookup): Return type should point to
8354 const data.
8355 * coff-i960.c (coff_i960_reloc_type_lookup): Likewise.
8356 * elf32-hppa.c (elf_hppa_reloc_type_lookup): Likewise.
8357 * mipsbsd.c (MY(reloc_howto_type_lookup)): Likewise.
8358 * coff-i386.c (coff_i386_reloc): Made howto const.
8359 * oasys.c (oasys_write_data): Made how const.
8360
8361 * libelf.h: Added some comments.
8362 (struct elf_backend_data): Added elf_backend_ecoff_debug_swap
8363 field. Removed unused write_relocs field.
8364 * elf32-target.h: Adjusted elf_backend_data initialization
8365 accordingly.
8366 * elf64-target.h: Corrected elf_backend_data initialization to
8367 fill in all fields and to set elf_64_p to 1.
8368
8369 Mon Nov 8 18:13:14 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
8370
8371 * elfcode.h (bfd_section_from_shdr): Remove duplicate assignment
8372 to filepos in SHT_STRTAB case.
8373 (assign_file_position_for_section): Set BFD section filepos as
8374 well as ELF section sh_offset.
8375
8376 * reloc.c: Use const instead of CONST.
8377 (bfd_perform_relocation): Make variable howto a const pointer.
8378 * bfd-in2.h, libbfd.h: Rebuilt.
8379
8380 Mon Nov 8 12:19:15 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
8381
8382 * Makefile.in (realclean): Don't remove generated headers. Reverts
8383 change of 2 Jul 1993.
8384
8385 Mon Nov 8 06:08:31 1993 D. V. Henkel-Wallace (gumby@cirdan.cygnus.com)
8386
8387 * configure.bfd: make unixware equivalent to sysv4.
8388
8389 * config/i386-nlm.mt: bring in elf config; make it the default.
8390
8391 Sun Nov 7 20:21:38 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
8392
8393 * libbfd.c (bfd_put_8): Add parens around reference to "val"
8394 argument.
8395
8396 Fri Nov 5 21:45:09 1993 David J. Mackenzie (djm@thepub.cygnus.com)
8397
8398 * hosts/i386mach3.h (HOST_SEGMENT_SIZE),
8399 i386mach3.c (SEGMENT_SIZE, TEXT_START_ADDR): Correct values (?).
8400
8401 Fri Nov 5 15:17:57 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
8402
8403 * coffcode.h (coff_write_object_contents): Zero out internal_a.
8404
8405 Fri Nov 5 10:41:07 1993 David J. Mackenzie (djm@thepub.cygnus.com)
8406
8407 * aoutx.h, archive.c, archures.c, bfd.c, cache.c, coffcode.h,
8408 core.c, ctor.c, format.c, init.c, libbfd.c, opncls.c, reloc.c,
8409 section.c, syms.c, targets.c:
8410 Doc cleanup (spelling, punctuation, grammar, formatting).
8411 * bfd-in2.h, libbfd.h: Rebuild.
8412
8413 Thu Nov 4 14:46:14 1993 John Gilmore (gnu@rtl.cygnus.com)
8414
8415 * bfd-in.h (bfd_get_cacheable, bfd_set_cacheable): New accessors.
8416 * bfd.c, opncls.c: Improve comments on file descriptor cacheing.
8417
8418 Thu Nov 4 08:54:30 1993 Jeffrey A. Law (law@snake.cs.utah.edu)
8419
8420 * From Pete Hoogenboom (hoogen@cs.utah.edu)
8421 * elf32-hppa.c (hppa_elf_get_section_contents): Fix logic error
8422 in last change. Always rebuild symbol extension section the first
8423 time though if output sections exist (fixes ld -r problems).
8424
8425 Thu Nov 04 08:08:46 1993 Jeffrey Wheat (cassidy@cygnus.com)
8426
8427 * Makefile.in: Add .PHONY for check and installcheck rules.
8428
8429 Tue Nov 2 14:42:27 1993 Bill Cox (bill@tarkas.cygnus.com)
8430
8431 * libbfd-in.h (artdata): Use long, not time_t for portability, at
8432 least to HPUX. File below is a derived file.
8433
8434 Tue Nov 2 14:42:27 1993 Bill Cox (bill@tarkas.cygnus.com)
8435
8436 * libbfd.h (artdata): Use long, not time_t for portability, at
8437 least to HPUX.
8438
8439 Tue Nov 2 09:32:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
8440
8441 * config.bfd: Use bigmips for mips*-*-bsd*.
8442
8443 Mon Nov 1 14:30:09 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
8444
8445 * elfcode.h (elf_slurp_reloca_table, elf_slurp_reloc_table):
8446 Handle symbol number of zero.
8447
8448 * reloc.c (enum bfd_reloc_code_real): Added
8449 BFD_RELOC_MIPS_LITERAL, BFD_RELOC_MIPS_GOT16,
8450 BFD_RELOC_MIPS_CALL16, BFD_RELOC_MIPS_GPREL32.
8451 * bfd-in2.h: Rebuilt.
8452 * coff-mips.c (mips_bfd_reloc_type_lookup): Handle
8453 BFD_RELOC_MIPS_LITERAL.
8454 * elf32-mips.c (mips_reloc_map): Handle new relocs.
8455 (mips_elf_hi16_reloc, mips_elf_lo16_reloc): Rearrange _gp_disp
8456 checks slightly.
8457
8458 * aout-target.h (MY_bfd_debug_info_start, MY_bfd_debug_info_end,
8459 MY_bfd_debug_info_accumulat [sic]): Remove unused definitions.
8460 (MY_bfd_get_relocated_section_contents, MY_bfd_relax_section,
8461 MY_bfd_seclet_link): Define.
8462 (MY_bfd_reloc_type_lookup): Rename from
8463 MY_reloc_howto_type_lookup.
8464 (MY_bfd_make_debug_symbol): Rename from MY_make_debug_symbol.
8465 (MY(vec)): Use JUMP_TABLE rather than listing functions.
8466 * hp300hpux.c (MY_get_symtab, MY_get_symtab_upper_bound,
8467 MY_canonicalize_reloc, MY_write_object_contents): Don't define in
8468 terms of MY, because that causes a recusive invocation of CAT when
8469 expanded within JUMP_TABLE, and ANSI compilers don't expand
8470 recursive macros.
8471 * mipsbsd.c (MY_bfd_reloc_type_lookup): Rename from
8472 MY_reloc_howto_type_lookup, and don't define in terms of MY.
8473 (MY_canonicalize_reloc): Don't define in terms of MY.
8474 (aout_mips_little_vec, aout_mips_big_vec): Use JUMP_TABLE rather
8475 than listing functions.
8476
8477 Mon Nov 1 09:12:25 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
8478
8479 * config.bfd: Use m68k-elf for m68*-*-sysv4*.
8480
8481 See file ChangeLog.1
8482
8483 \f
8484 Local Variables:
8485 mode: indented-text
8486 left-margin: 8
8487 fill-column: 74
8488 version-control: never
8489 End:
This page took 0.203303 seconds and 4 git commands to generate.