Fix up namespace handling in last patch.
[platform/upstream/binutils.git] / bfd / ChangeLog
1 Thu Aug  4 11:32:23 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
2
3         * coff-m68k.c (m68k_reloc_type_lookup): New function.
4         (coff_bfd_reloc_type_lookup): Define.
5         * cf-m68klynx.c (_bfd_m68kcoff_reloc_type_lookup): Define.
6
7         * elfcode.h (elf_bfd_final_link): Force the vma of sections which
8         do not have SEC_ALLOC set to be 0.  This is needed to handle
9         relocs against debugging sections.
10
11 Wed Aug  3 16:45:41 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
12
13         * coff-i960.c (coff_i960_relocate): Rewrote to change relocs
14         against locally defined symbols into relocs against section
15         symbols, for VxWorks 5.1.
16
17 Wed Aug  3 10:34:37 1994  Eric Youngdale  (ericy@cais.cais.com)
18
19         * i386linux.c (linux_add_one_symbol): Only handle
20         SHARABLE_CONFLICTS specially if BSF_CONSTRUCTOR is set.  Set hashp
21         for a GOT or PLT symbol.  Set jump field of fixup for a PLT symbol.
22         (linux_tally_symbols): Check section of real symbol.  When looking
23         for a builtin fixup, check builtin and jump flags.  Create no more
24         than one fixup, and always create one if the real symbol is in the
25         absolute section.  Only strip absolute symbols.
26
27 Wed Aug  3 05:08:24 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)
28
29         * coffcode.h (coff_write_object_contents): set internal_a.magic to
30         LYNXCOFFMAGIC whenever 68k, SPARC or i386 LynxOS
31         (yes, they have the same magic number!)
32
33 Tue Aug  2 10:43:21 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
34
35         * hp300hpux.c (BMAGIC): Define as HPUX_DOT_O_MAGIC, to make test
36         in aoutx.h work correctly.
37
38         * coff-i960.c (coff_i960_relocate): New function.
39         (howto_rellong, howto_iprmed): Use it as special_function.
40
41         * libbfd-in.h: Move declarations of bfd_read, bfd_write, bfd_seek,
42         bfd_tell, bfd_flush, and bfd_stat from here...
43         * bfd-in.h: ...to here, to make them visible to programs which
44         know more about the object file format than BFD does.
45         * libbfd.h, bfd-in2.h: Rebuilt.
46
47 Mon Aug  1 17:55:53 1994  Fred Fish  (fnf@cygnus.com)
48
49         * ptrace-core.c (ptrace_unix_core_file_p):  Convert zalloc usage
50         to bfd_zalloc.
51
52 Mon Aug  1 12:04:40 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
53
54         * elf64-sparc.c (ELF_MAXPAGESIZE): Define.
55
56         ELF linker patches from Eric Youngdale <ericy@cais.cais.com>.
57         * elfcode.h (elf_link_create_dynamic_sections): Set type of
58         _DYNAMIC to STT_OBJECT.
59         (NAME(bfd_elf,record_link_assignment)): Always create hash table
60         entry.  Set type to STT_OBJECT.
61         (elf_link_output_extsym): Don't set type of weak defined symbol to
62         STB_WEAK if symbol was referenced.
63         (map_program_segments): Check DYNAMIC as well as EXEC_P.
64         (assign_file_positions_except_relocs): Likewise.
65         * elf32-i386.c (elf_i386_create_dynamic_sections): Set type of
66         _GLOBAL_OFFSET_TABLE to STT_OBJECT.
67         (elf_i386_check_relocs): Ignore local PLT32 relocs.
68         (elf_i386_relocate_section): Treat local PLT32 relocs as PC32.
69
70         * elfcode.h (elf_adjust_dynamic_symbol): Correct weak symbol
71         handling again.
72
73         * elfcode.h (elf_slurp_reloc_table): Don't try to read the relocs
74         if there aren't any.
75
76         * configure.host (sparc-*-solaris2*): Use sysv4, not solaris2.
77         * hosts/solaris2.h: Remove.
78         * config/solaris2.mh: Remove.
79
80 Sun Jul 31 14:27:04 1994  Jeff Law  (law@snake.cs.utah.edu)
81
82         * elf32-hppa.c, elf32-hppa.h: Update comment reflecting which
83         HPPA ELF spec the code implements.
84
85 Tue Jul 26 17:38:01 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
86
87         * cpu-i960.c (MAX_ARCH): New macro.
88         (compatible): Use it in computing array bounds.  Put comma after
89         last entry in array, for regularity.
90         (arch_info_struct): Adjust spacing for easier reading.
91
92         * coff-i960.c (howto_rellong, howto_iprmed, howto_optcall): Use
93         HOWTO macro.
94
95         start-sanitize-i960xl
96         * cpu-i960.c (XL): Define as bfd_mach_i960_xl.
97         (scan_960_mach): Recognize xl machine.
98         (MAX_ARCH): Define to be XL.
99         (compatible): Add XL row to array.
100         (arch_info_struct): Add XL entry.
101
102         * archures.c (bfd_mach_i960_xl): New macro.
103         * bfd-in2.h: Regenerated.
104
105         * coffcode.h (coff_set_arch_mach_hook): For F_I960XL, set machine
106         to bfd_mach_i960_xl.
107         (coff_set_flags): For bfd_mach_i960_xl, set F_I960XL.
108         end-sanitize-i960xl
109
110 Tue Jul 26 11:04:00 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
111
112         * elfcode.h (elf_adjust_dynamic_symbol): When handling a weak
113         symbol, correct check to see whether the equivalent normal symbol
114         was referenced.
115
116         Add support for creating shared libraries under i386 ELF and SPARC
117         ELF.  Based on patches by Eric Youngdale <ericy@cais.cais.com>.
118         * libelf.h (struct elf_link_hash_entry): Remove copy_offset field.
119         Add got_offset and plt_offset fields.
120         (ELF_LINK_HASH_REF_DYNAMIC_MULTIPLE): Don't define.
121         (ELF_LINK_HASH_DEF_DYNAMIC_MULTIPLE): Don't define.
122         (ELF_LINK_HASH_NEEDS_COPY): Define.
123         (struct elf_backend_data): Add check_relocs field.
124         (struct bfd_elf_section_data): Change relocs from PTR to
125         Elf_Internal_Rela *.
126         (struct elf_obj_tdata): Add local_got_offsets field.
127         (elf_local_got_offsets): Define accessor macro.
128         (bfd_elf32_link_create_dynamic_sections): Declare.
129         (bfd_elf32_link_record_dynamic_symbol): Declare.
130         (bfd_elf64_link_create_dynamic_sections): Declare.
131         (bfd_elf64_link_record_dynamic_symbol): Declare.
132         * elfcode.h (elf_slurp_reloc_table): Don't use the section data
133         relocs field.
134         (elf_link_record_dynamic_symbol): Make globally visible.  Use
135         macro to rename to NAME(bfd_elf,link_record_dynamic_symbol).
136         (elf_link_add_object_symbols): If creating a shared library, put
137         make all local symbols dynamic.  Don't bother with the
138         DYNAMIC_MULTIPLE flags.  Call the check_relocs backend function if
139         it is defined.
140         (elf_link_create_dynamic_sections): Make globally visible.  Use
141         macro to rename to NAME(bfd_elf,link_create_dynamic_sections).  If
142         creating a shared library, make sure that _DYNAMIC is added as a
143         dynamic symbol.
144         (elf_link_read_relocs): New function.
145         (NAME(bfd_elf,record_link_assignment)): If creating a shared
146         library, always create symbols, and always make them dynamic.
147         (elf_bfd_final_link): Permit creation of shared libraries.
148         (elf_link_input_bfd): Use elf_link_read_relocs to get the relocs.
149         * elf.c (_bfd_elf_link_hash_newfunc): Don't initialize
150         copy_offset.  Initialize got_offset and plt_offset.
151         * elf32-target.h (elf_backend_check_relocs): Define as 0 if not
152         defined.
153         (elf32_bed): Initialize check_relocs field.
154         * elf64-target.h (elf_backend_check_relocs): Define as 0 if not
155         defined.
156         (elf64_bed): Initialize check_relocs field.
157         * elf32-i386.c (elf_howto_table): Change R_386_PLT32 and
158         R_386_GOTPC to be pc_relative and pcrel_offset.
159         (elf_i386_pic_plt0_entry): Define.
160         (elf_i386_pic_plt_entry): Define.
161         (elf_i386_create_dynamic_sections): Create a .got.plt section, and
162         define _GLOBAL_OFFSET_TABLE_ at the start of it.  If creating a
163         shared library, make sure that _GLOBAL_OFFSET_TABLE_ is added as a
164         dynamic symbol.  Don't create .rel.bss if creating a shared
165         library.
166         (elf_i386_check_relocs): New function.
167         (elf_i386_adjust_dynamic_symbol): Don't make a PLT entry if the
168         symbol already has one.  When making a PLT entry, set plt_offset.
169         Don't create a copy reloc when creating a shared library.  Don't
170         set copy_offset, just set ELF_LINK_HASH_NEEDS_COPY.
171         (elf_i386_allocate_dynamic_section): Remove.
172         (elf_i386_size_dynamic_sections): Look through all the sections
173         rather than assuming we know their names.  Remove any empty reloc
174         or plt sections.  Only add a DT_DEBUG entry if not creating a
175         shared library.  Only add a DT_PLTGOT entry if there is a PLT.
176         Add a DT_TEXTREL entry if required.
177         (elf_i386_relocate_section): Permit undefined symbols when
178         creating a shared library.  Handle the special relocation types
179         specially.
180         (elf_i386_finish_dynamic_symbol): Create a PLT entry if plt_offset
181         is set.  If creating a shared library, produce a PIC PLT entry.
182         Only mark a PLT symbol as undefined if it was not defined by a
183         regular object file.  Create a GOT entry if got_offset is set.
184         Create a copy reloc if ELF_LINK_HASH_NEEDS_COPY is set.
185         (elf_i386_finish_dynamic_sections): Change the handling of
186         DT_RELSZ to simply subtract out the size of .rel.plt.  If creating
187         a shared library, produce PIC PLT code.
188         (elf_backend_check_relocs): Define.
189         * elf32-sparc.c (elf_sparc_howto_table): Change R_SPARC_GOT10,
190         R_SPARC_GOT22, and R_SPARC_PC10 to not warn about reloc overflow.
191         (elf32_sparc_create_dynamic_sections): If creating a shared
192         library, make sure that _GLOBAL_OFFSET_TABLE_ is added as a
193         dynamic symbol, and set the type to STT_OBJECT.  Likewise for
194         _PROCEDURE_LINKAGE_TABLE_.  Don't create .rel.bss if creating a
195         shared library.
196         (elf32_sparc_check_relocs): New function.
197         (elf32_sparc_adjust_dynamic_symbol): Don't make a PLT entry if the
198         symbol already has one.  When making a PLT entry, set plt_offset.
199         Don't create a copy reloc when creating a shared library.  Don't
200         set copy_offset, just set ELF_LINK_HASH_NEEDS_COPY.
201         (elf32_sparc_allocate_dynamic_section): Remove.
202         (elf32_sparc_size_dynamic_sections): Look through all the sections
203         rather than assuming we know their names.  Only add a DT_DEBUG
204         entry if not creating a shared library.  Add a DT_TEXTREL entry if
205         required.
206         (elf32_sparc_relocate_section): Permit undefined symbols when
207         creating a shared library.  Handle the special relocation types
208         specially.
209         (elf32_sparc_finish_dynamic_symbol): Create a PLT entry if plt_offset
210         is set.  Only mark a PLT symbol as undefined if it was not defined
211         by a regular object file.  Create a GOT entry if got_offset is
212         set.  Create a copy reloc if ELF_LINK_HASH_NEEDS_COPY is set.
213         (elf32_sparc_finish_dynamic_sections): Store dynobj in a local
214         variable.
215         (elf_backend_check_relocs): Define.
216
217 Mon Jul 25 12:21:07 1994  Stan Shebs  (shebs@andros.cygnus.com)
218
219         * configure.in (pc532mach_vec): Change to pc532machaout_vec.
220         * config.bfd (ns32k-*-netbsd*): Use ns32k-nbsd as bfd_name.
221         * Makefile.in (ALL_MACHINES): Add cpu-ns32k.o.
222         (BFD32_BACKENDS): Add aout-ns32k.o, netbsd532.o, m88kmach3.o,
223         pc532-mach.o.
224         * targets.c (pc532machaout_vec): Use instead of pc532mach_vec.
225         * config/pc532-mach.mt (DEFAULT_VECTOR): Ditto.
226         (SELECT_VECS): Remove.
227         * config/ns32k-nbsd.mt: New file, was ns32k-netbsd.mt.
228         * config/ns32k-netbsd.mt: Remove, name too long.
229
230 Fri Jul 22 11:07:14 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
231
232         * linker.c (generic_link_check_archive_element): When changing a
233         symbol to common, set the alignment.
234         (_bfd_generic_link_add_one_symbol): When creating a common symbol,
235         set the alignment.
236         * aoutx.h (aout_link_check_ar_symbols): When changing a symbol to
237         common, set the alignment.
238         (aout_link_add_symbols): Restrict the alignment of a common symbol
239         to the alignment power given by the architecture.
240         * libelf.h (struct elf_link_hash_entry): Remove align field.  Add
241         copy_offset field.
242         * elfcode.h (elf_link_add_object_symbols): Store alignment in
243         new bfd_link_hash_entry field, not in elf_link_hash_entry field.
244         (elf_link_output_extsym): Similar change when getting alignment.
245         * elf.c (_bfd_elf_link_hash_newfunc): Don't initialize align.  Do
246         initialize copy_offset.
247         * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Use copy_offset
248         field rather than align field.  Get alignment using bfd_log2
249         rather than switch.
250         * elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
251         * elf32-i386.c (elf_i386_finish_dynamic_symbol): Use copy_offset,
252         not align.
253         * elf32-sparc.c (elf32_sparc_finish_dynamic_symbol): Likewise.
254
255         * aoutx.h (NAME(aout,some_aout_object_p)): Just check
256         STAT_FOR_EXEC, don't check MACH.
257         * m88kmach3.c (MACH): Don't define.
258         * config/i386-mach3.mt (TDEFINES): Define STAT_FOR_EXEC.
259         * config/m88k-mach3.mt (TDEFINES): Likewise.
260         * config/mips-mach3.mt (TDEFINES): Likewise.
261
262 Thu Jul 21 17:24:31 1994  Stan Shebs  (shebs@andros.cygnus.com)
263
264         * i386mach3.c: Reverted to version from before Jul 5 1994 changes.
265
266 Thu Jul 21 12:26:01 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
267
268         * reloc.c (struct reloc_howto_struct): Remove special_function1.
269         It's the wrong way to do things.
270         (HOWTO): Change accordingly.
271         (HOWTO2): Remove.
272         (_bfd_final_link_relocate): Remove references to
273         special_function1.
274         * bfd-in2.h: Rebuilt.
275         * aoutx.h (aout_link_input_section_std): Remove references to
276         special_function1.
277         (aout_link_reloc_link_order): Likewise.
278
279 Wed Jul 20 15:46:44 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
280
281         * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add rpath
282         argument.  If it is not NULL, use it to set DT_RPATH.
283         * bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
284         (bfd_elf64_size_dynamic_sections): Likewise.
285         * bfd-in2.h: Rebuilt.
286
287 Sat Jul 16 21:10:39 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
288
289         * elfcode.h (elf_get_dynamic_symtab_upper_bound): If there is no
290         dynamic symtab, return error.
291
292         * libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Define.
293         * elfcode.h (elf_link_add_object_symbols): If symbol is defined as
294         weak, set ELF_LINK_HASH_DEFINED_WEAK.
295         (elf_link_output_extsym): If symbol is defined as weak, mark it
296         STB_WEAK.
297
298         * libelf.h (struct bfd_elf_section_data): Add relocs field.
299         (shdr_name): Remove; unused.
300         * elfcode.h (elf_slurp_reloc_table): Rewrote to handle both REL
301         and RELA relocs.  Free up the unswapped relocs.  Permit the relocs
302         to be cached in the section_data.  Correct the reloc address.
303         (elf_slurp_reloca_table): Remove.
304         (elf_canonicalize_reloc): Rewrote.
305         (elf_link_input_bfd): Permit the relocs to be cached in the
306         section data.
307
308 Sat Jul 16 13:55:38 1994  Stan Shebs  (shebs@andros.cygnus.com)
309
310         * config.bfd (m88*-harris-cxux*): Recognize.
311         * hosts/harris.h (POSIX_UTIME, HAVE_PROCFS): Define.
312
313         * configure.host (m68*-atari-sysv4*): New host.
314         (m68*-cbm-sysv4*): Use m68kv4 instead of amix.
315         * hosts/amix.h: Remove.
316         * hosts/m68kv4.h: New file, was amix.h.
317
318 Thu Jul 14 15:12:24 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
319
320         * reloc.c (enum bfd_reloc_code_real, bfd_type, struct
321         reloc_howto_struct, reloc_howto_type, HOWTO, HOWTO2): Copied
322         changes over from bfd-in2.h so they get generated properly next
323         time someone runs "make headers".
324         * bfd-in2.h: Rebuilt.
325
326         * targets.c (netbsd532_vec, pc532mach_vec): Declare const.
327         (m88kmach3_vec): Restore deleted declaration.
328
329         * configure.in: Alphabetize target vector names.
330
331         * config/pc532mach.mh: New file.
332         (HDEPFILES, HDEFINES): Define here.
333         * config/pc532-mach.mt (HDEPFILES, HDEFINES): Deleted.
334         * config/ns32k-netbsd.mt (HDEPFILES, HDEFINES): Deleted.
335
336         Sun Jul 10 00:04:20 1994  Ian Dall  (dall@hfrd.dsto.gov.au)
337
338         * pc532-mach.c: New File. pc532-mach a.out format.
339
340         * netbsd532.c: New file. pc532-netbsd532 a.out format.
341
342         * hosts/pc532mach.h: New file. pc532-mach host support.
343
344         * cpu-ns32k.c: New file. ns32k support cpu specific code rather
345         than format specific code.
346
347         * config/pc532-mach.mt: New file. Support for pc532-mach target.
348
349         * config/ns32k-netbsd.mt: New file. Support for netbsd532 target.
350
351         * aout-ns32k.c, aout-ns32k.h: New files supporting aout format for
352         ns32k series. 
353
354         * targets.c: Add netbsd532_vec and pc532machaout_vec into
355         bfd_target_vector array. Move netbsd386_vec to alphabetic order
356         location.
357
358         * reloc.c (_bfd_final_link_relocate) Add support for
359         special_function1 in howto.
360
361         * libaout.h: add M_NS32032, M_NS32532, M_532_NETBSD entries in
362         machine_type enum.
363
364         * configure.in: add pc532mach_vec and netbsd532_vec entries.
365
366         * config.bfd: add pc532mach host entries. Use for both
367         ns32k-pc532-mach and ns32k-pc532-netbsd.
368
369         * config.bfd: it doesn't work to use i386-mach3 for ns32k*-*-mach.
370         add ns32k-pc532-mach* and ns32k-*-netbsd* entries.
371
372         * bfd-in2.h: Add ns32k specific relocations to bfd_reloc_code_real
373         enum.
374
375         * bfd-in2.h: Add special_function1 to struct howto. Change HOWTO
376         and NEWHOWTO macros to make special_function1 NULL. Neww HOWTO2
377         macro.
378
379         * bfd-in2.h: Split definition of struct reloc_howto_struct
380         and corresponding typedef into two statements.
381
382         * bfd-in2.h: Add entry bfd_arch_ns32k to bfd_architecture enum.
383
384         * archures.c: Add bfd_ns32k_arch prototype, and entry in
385         archures_init_table. 
386
387         * aoutx.h (aout_link_reloc_link_order): Allow for target dependent
388         MY_put_reloc macro. Allow for target dependent special_function1
389         to apply the relocation. 
390
391         * aoutx.h (aout_link_input_section_std): Allow for target
392         dependent determination of reloc howto. Allow for target dependent
393         special_function1 to apply the relocation.
394
395         * aoutx.h (get_reloc_upper_bound): Detect bss and return 0.
396
397         * aoutx.h (slurp_reloc_table): Detect bss and succesfully read
398         zero reloc entries.
399
400         * aoutx.h (machine_type): Add bfd_arch_ns32k case.
401
402         * aoutx.h: Stat to determine executable status if STAT_FOR_EXEC
403         is defined (not just MACH). Use fstat instead of stat and check
404         for fstat error.
405
406         * aoutx.h: Allow target dependent swap_std_reloc_{in,out}.
407
408         * aoutx.h: Allow CTORS reloc info to be in target dependent reloc
409         table.
410
411         * aout-target.h: Apply SWAP_MAGIC (if defined) after
412         swap_exec_header_in, otherwise we have magic in the wrong order.
413
414 Thu Jul 14 11:47:27 1994  Stan Shebs  (shebs@andros.cygnus.com)
415
416         * coff-sparc.c (sparccoff_vec): Have leading underscores.
417
418 Tue Jul 12 12:08:10 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
419
420         * aix386-core.c, aoutf1.h, cisco-core.c, elfcode.h, hppabsd-core.c,
421         hpux-core.c, irix-core.c, lynx-core.c, osf-core.c, ptrace-core.c,
422         rs6000-core.c, trad-core.c:  Remove SEC_ALLOC flag from .reg
423         sections, .reg sections are not allocated and contain debug
424         information only.
425         * osf-core.c (make_bfd_asection, osf_core_core_file_p):  Use
426         bfd_make_section_anyway instead of building unique section names.
427
428 Tue Jul 12 11:41:22 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
429
430         * libelf.h (bfd_elf32_swap_symbol_in): Declare.
431         (bfd_elf32_swap_symbol_out): Declare.
432         (bfd_elf64_swap_symbol_in, bfd_elf64_swap_symbol_out): Declare.
433         * elf32-hppa.c (elf32_hppa_args_hash_table_init): Correct cast.
434
435         * aout-encap.c (ARCH): Don't define.  Obsolete.
436         * aout0.c, aoutx.h, gen-aout.c, hp300bsd.c, hp300hpux.c: Likewise.
437         * i386aout.c, i386bsd.c, i386dynix.c, i386linux.c: Likewise.
438         * i386lynx.c, m68klynx.c, mipsbsd.c, netbsd386.c: Likewise.
439         * newsos3.c, sparclynx.c, sunos.c: Likewise.
440
441 Mon Jul 11 20:08:23 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
442
443         * section.c (STD_SECTION): Make the sixth argument boolean, not
444         the seventh.  From gary@tuva.pacsemi.oz.au (gary kopff).
445
446 Sun Jul 10 09:12:02 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)
447
448         * aoutx.h (bfd_free_cached_info): Change name of FREE to BFCI_FREE
449         in order not to collide with LynxOS's definition of FREE in
450         /usr/include/sys/proc.h
451
452 Thu Jul  7 14:18:06 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
453
454         * reloc.c (bfd_perform_relocation): Don't clobber the relocation
455         value for coff-Intel-little or coff-Intel-big.  Hack upon hack.
456
457 Thu Jul  7 10:10:34 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
458
459         * aoutx.h (howto_table_std):  Add entry for GOT relocations
460         which are present in sun3 shared libraries, to avoid assertions
461         when reading the dynamic relocations.
462
463 Thu Jul  7 10:19:20 1994  Jeff Law  (law@snake.cs.utah.edu)
464
465         * som.h (R_HPPA_COMPLEX): Fix dumb typo. 
466
467 Wed Jul  6 19:21:57 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
468
469         * hosts/sysv4.h (qsort, strtol): Don't declare.
470
471         * elfcode.h (elf_link_output_sym): Don't call output_symbol_hook
472         if it is NULL.
473
474         * elf32-mips.c (mips_elf_final_write_processing): Add ignored info
475         argument to correspond to recent libelf.h change.
476
477 Wed Jul  6 00:48:57 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
478
479         * coff-alpha.c (alpha_ecoff_mkobject_hook):  New hook to
480         additionally copy object type information from the alpha file
481         header to the BFD flags.
482         (alpha_ecoff_backend_data):  Use it.
483         (ecoffalpha_little_vec):  Add DYNAMIC to object_flags.
484         * aout64.c:  Fix typo in conditional QMAGIC definition.
485
486 Wed Jul  6 00:13:17 1994  Jeff Law  (law@snake.cs.utah.edu)
487
488         * hppabsd-core.c (hppabsd_core_core_file_p): Sanity check the
489         value of clicksz to help weed out non HPPA BSD core files.
490
491 Tue Jul  5 13:26:02 1994  Stan Shebs  (shebs@andros.cygnus.com)
492
493         Mach 3 support.
494         * config.bfd (m88*-*-mach3*, mips*-dec-mach3*, mips*-*-mach3*):
495         New targets.
496         * configure.host (i[34]86-*-mach3*, ns32k-*-mach3*): Recognize
497         "mach3" instead of "mach".
498         (m88*-*-mach3*, mips*-dec-mach3*, mips*-*-mach3*): New hosts.
499         * targets.c (m88kmach3_vec): New target vector.
500         (bfd_target_vector): Add i386mach3_vec and m88kmach3_vec, but
501         inside #if 0.
502         * aoutx.h (some_aout_object_p) [MACH]: Recognize executables by
503         checking for execute permission, instead of looking at entry
504         point.
505         * i386mach3.c: Update, define MACH, N_TXTOFF, N_TXTADDR,
506         N_SHARED_LIB, don't include aout/*.h files, etc.
507         * m88kmach3.c: New file, m88k Mach 3 target.
508         * config/m88k-mach3.mt, config/mips-mach3.mt: New files, target
509         makefile fragments.
510         * config/i386mach3.mh, config/m88kmach3.mh, config/mipsmach3.mh:
511         New files, host makefile fragments.
512         * hosts/m88kmach3.h, hosts/mipsmach3.h: New files, host definitions.
513
514 Tue Jul  5 13:56:52 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
515
516         * elfcode.h (swap_out_syms): Get alignment of common symbol from
517         st_value field of saved ELF symbol information, if there is any.
518
519 Mon Jul  4 19:13:32 1994  Jeff Law  (law@snake.cs.utah.edu)
520
521         * som.h (R_HPPA_COMPLEX): Define.
522         * elf32-hppa.h (R_HPPA_COMPLEX): Define.
523         (elf32_hppa_reloc_type): Delete R_PARISC_STUB_CALL_17.
524
525 Fri Jul  1 12:07:41 1994  Jeff Law  (law@snake.cs.utah.edu)
526
527         * Support code for enabling the new style linker for PA ELF.
528         * elfcode.h (swap_symbol_in, swap_symbol_out): Externalize.
529         (elf_compute_section_file_positions): Pass link_info to
530         the begin_write_processing hook.
531         (bfd_elf_write_object_contents): Pass NULL for new link_info
532         argument to final_write_processing hook.
533         (elf_link_output_sym): Accept new "input_section" argument for
534         the symbols's input section.  All callers changed.  Call the
535         link_output_symbol_hook if it's defined.
536         (elf_bfd_final_link): Call the final_write_processing hook if
537         it's defined.
538         * libelf.h (elf_backend_link_output_symbol_hook): Declare.
539         (elf_backend_begin_write_processing): Add new "info" argument.
540         (elf_backend_final_write_processing): Likewise.
541         * elf32-target.h (elf_backend_link_output_symbol_hook): Provide
542         a default definition.
543         (elf32_bed): Add elf_backend_link_output_symbol_hook.
544         * elf64-target.h: Likewise.
545         
546         * Major rework of the PA ELF code.  Uses the new style BFD
547         linker, major cleanups.
548         * hppa_stubs.h: Rewrite from scratch.  Much smaller and simpler.
549         * elf32-hppa.h: Delete all symbol extension related code.
550         (hppa_look_for_stubs_in_section): Delete decl.
551         (elf32_hppa_size_stubs, elf32_hppa_build_stubs): New decls.
552         * elf32-hppa.c: Symbol extension stuff moved form elf32-hppa.h
553         into elf32-hppa.c.  Do not include aout64.h.
554         (typdef hppa_stub_type): Delete.
555         (elf32_hppa_stub_name_list_struct): Delete.
556         (elf32_hppa_stub_description_struct): Delete.
557         (arg_reloc_type): Use simpler enumerations.  All references changed.
558         (arg_location, arg_reloc_relocation): Likewise.
559         (elf32_hppa_symextn_map_struct): Delete.
560         (get_symbol_value): Delete.
561         (elf32_hppa_get_sym_extn): Delete.
562         (find_stubs, new_stubs, type_of_mismatch): Delete.
563         (find_stub_by_name, add_stub_by_name): Delete.
564         (hppa_elf_stub_finish, hppa_elf_stub_reloc): Delete.
565         (hppa_elf_arg_reloc_needed): Renamed.  Simplify.
566         (hppa_elf_build_linker_stub, hppa_elf_create_stub_sec): Delete.
567         (hppa_elf_long_branch_needed_p): Delete.
568         (hppa_look_for_stubs_in_section): Delete.
569         (hppa_elf_get_section_contents): Delete.
570         (elf32_hppa_backend_symbol_processing): Delete.
571         (elf32_hppa_backend_section_processing): Delete.
572         (elf32_hppa_backend_section_from_shdr): Delete.
573         (elf32_hppa_backend_fake_sections): Delete.
574         (elf32_hppa_backend_section_from_bfd_section): Delete.
575         (NEW_INSTRUCTION): Delete.
576         (CURRENT_STUB_OFFSET): Delete.
577         (elf32_hppa_relocate_section): New function.
578         (elf32_hppa_bfd_final_link_relocate): New function.
579         (elf32_hppa_size_symext): New function.
580         (elf32_hppa_link_output_symbol_hook): New function.
581         (elf32_hppa_read_symext_info): New function.
582         (elf32_hppa_add_symbol_hook): New function.
583         (elf32_hppa_name_of_stub): New function.
584         (elf32_hppa_size_of_stub): New function.
585         (elf32_hppa_build_one_sub): New function.
586         (elf32_hppa_build_stubs): New function.
587         (elf32_hppa_size_stubs): New function.
588         (linker, stub and argument hash tables): Add appropriate
589         structures, definitions and functions to implement all three
590         hash tables.
591         (hppa_elf_relocate_insn): Don't need argument location information
592         in this function.
593         (add_entry_to_symext_chain): Accept a symbol's argument location
594         information rather than the symbol itself.  All callers changed.
595         (hppa_elf_gen_reloc_type): Simplify.
596         (hppa_elf_set_section_contents): Stub section is no longer special.
597         (hppa_elf_reloc): Greatly simplify.
598         (elf32_hppa_begin_write_processing): Accept link_info argument.
599         Handle being called from the BFD backend linker.
600         (elf32_hppa_final_write_processing): Likewise.
601         (elf_hppa_tc_make_sections): No longer call stub_finish.
602         
603 Mon Jun 27 18:07:06 1994  Steve Chamberlain  (sac@cirdan.cygnus.com)
604
605         * section.c (bfd_get_section_contents): Put in parens to get
606         precedence right.
607
608 Sun Jun 26 18:08:29 1994  Jeff Law  (law@snake.cs.utah.edu)
609
610         * libelf.h (relocate_section): New argument "output_names" added
611         to prototype.
612         * elfcode.h (elf_link_input_bfd): New argument "output_names"
613         added to prototype of relocate_section.  Pass the output symbol
614         names to relocate_section.
615         * elf32-i386.c (elf_i386_relocate_section): Use "output_names" to
616         determine the name of a local symbol.
617         * elf32-mips.c (mips_elf_relocate_section): Likewise.
618         * elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
619
620 Fri Jun 24 08:15:42 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
621
622         Add Solaris BCP (the part of Solaris which allows it to run
623         SunOS4 a.out files) core file handling.
624         * aoutf1.h (external_solaris_bcp_core, swapcore_solaris_bcp):
625         New structure and its swap in function.
626         (internal_sunos_core):  New member c_data_addr, to receive the
627         start address of the data section in the core file.
628         (swapcore_sun3, swapcore_sparc, sunos4_core_file_p):  Use it.
629         (sunos4_core_file_p):  Recognize Solaris BCP core file.
630         (sunos4_core_file_matches_executable_p):  Always indicate match
631         for Solaris BCP core files.
632
633 Thu Jun 23 15:31:28 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
634
635         Preliminary support for generating shared libraries, from Eric
636         Youngdale <ericy@cais.cais.com>.
637         * elfcode.h (prep_headers): If DYNAMIC, set e_type to ET_DYN.
638         (elf_link_add_object_symbols): If generating a shared library,
639         create dynamic sections for first input BFD with the right format.
640         (elf_link_create_dynamic_sections): Don't create .interp section
641         if creating a shared library.
642         (elf_link_input_bfd): Skip dynamic sections in input file.
643         (elf_bfd_final_link): If creating a shared library, it's OK for
644         dynobj to have sections which are not SEC_IN_MEMORY.
645         * elf32-i386.c (elf_i386_size_dynamic_sections): Only set .interp
646         section if not creating a shared library.
647         * elf32-sparc.c (elf_sparc_size_dynamic_sections): Likewise.
648
649         * elfcode.h (elf_object_p): Don't set DYNAMIC just because there
650         is an SHT_DYNAMIC section.
651
652         * cf-i386lynx.c (i386coff_vec): Don't include DYNAMIC in
653         object_flags.
654         * coff-sparc.c (sparccoff_vec): Likewise.
655         * hppabsd-core.c (hppabsd_core_vec): Likewise.
656
657         * aoutx.h (NAME(aout,some_aout_object_p)): Don't set SEC_RELOC
658         just because DYNAMIC is set.
659
660 Thu Jun 23 12:53:41 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
661
662         * configure.in: Change --with-targets to --enable-targets and
663         --with-64-bit-bfd to --enable-64-bit-bfd.
664         * Makefile.in, mpw-make.in, targets.c: Change comments.
665
666 Wed Jun 22 17:59:59 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
667
668         * config.bfd (powerpc-*-elf*): New target, just like
669         powerpc-*-sysv4*.
670
671         * linker.c (FAIL): Undefine macro before defining as enum.
672
673 Wed Jun 22 10:52:47 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
674
675         * linker.c (_bfd_generic_link_add_archive_symbols): Initialize
676         pass from abfd->archive_pass, and save it there as well.
677
678         * hash.c (bfd_hash_allocate): Don't call bfd_set_error if
679         obstack_alloc returns NULL unless the size is non-zero.
680
681         * linker.c (archive_hash_allocate): Define.
682         (_bfd_generic_link_add_archive_symbols): Use archive_hash_allocate
683         rather than obstack_alloc, for clarity.
684
685         * elfcode.h (elf_get_reloc_upper_bound): Correct.
686
687         * aout64.c (BMAGIC, QMAGIC): Define if not already defined.  From
688         Peter Schauer <pes@regent.e-technik.tu-muenchen.de>.
689
690         Linux ZMAGIC support from Eric Youngdale <ericy@cais.cais.com>.
691         * libaout.h (struct aoutdata): Add field zmagic_disk_block_size.
692         * aout-target.h (MY(callback)): Only set alignment according to
693         architecture if the section sizes are aligned to that alignment,
694         for backward compatibility.
695         (MY(set_sizes)): Initialize zmagic_disk_block_size field.
696         * aoutx.h (adjust_z_magic): Set ztih if using q_magic_format.  Set
697         text section filepos to zmagic_disk_block_size if not ztih.  Use a
698         different padding algorithm if not ztih.
699         * i386linux.c (MY_text_includes_header): Don't define.
700
701         * aoutx.h (aout_link_check_ar_symbols): Just skip N_STAB and N_FN
702         symbols; don't look them up in the hash table.  From
703         ralphc@pyramid.com (Ralph Campbell).
704
705 Tue Jun 21 11:47:20 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
706
707         * coff-go32.c (go32coff_archive_p): Remove unused function.
708
709         * section.c (bfd_abs_section): Make const.
710         (bfd_abs_section_ptr, bfd_is_abs_section): Define.
711         (bfd_und_section): Make const.
712         (bfd_und_section_ptr, bfd_is_und_section): Define.
713         (bfd_com_section): Make const.
714         (bfd_com_section_ptr): Define.
715         (bfd_ind_section): Make const.
716         (bfd_ind_section_ptr, bfd_is_ind_section): Define.
717         (bfd_abs_symbol, bfd_com_symbol): Make const.
718         (bfd_und_symbol, bfd_ind_symbol): Likewise.
719         (global_syms): Cast initialization of section field.
720         (STD_SECTION): Define as const, and cast initializations.
721         * bfd-in2.h: Rebuilt.
722         * Many files: Change uses of bfd_abs_section, etc., to use
723         bfd_abs_section_ptr or bfd_is_abs_section, etc.
724
725 Mon Jun 20 11:06:27 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
726
727         * Many files: change all bfd_target vectors to be const.  Change
728         all uses of bfd_target * to be const bfd_target *.  Change
729         bfd_target_vector and bfd_default_vector arrays to be const
730         bfd_target * const *.
731
732         * ecoff.c, libecoff.h, ecoffswap.h, coff-alpha.c, coff-mips.c,
733         elf32-mips.c: Renamed all externally visible ECOFF routines which
734         are local to BFD to start with _bfd_ecoff instead of just ecoff.
735
736         * ecoff.c (ecoff_swap_tir_in): Change input argument to const.
737         (ecoff_swap_tir_out): Likewise.
738         (ecoff_swap_rndx_in, ecoff_swap_rndx_out): Likewise.
739         (ecoff_slurp_symbolic_info): Add new arguments to correspond to
740         read_debug_info entry point in ecoff_debug_swap structure.
741         Change all calls.
742         * libecoff.h (ecoff_slurp_symbolic_info): Change declaration.
743         * ecoffswap.h (ecoff_swap_tir_in, ecoff_swap_tir_out): Declare.
744         (ecoff_swap_rndx_in, ecoff_swap_rndx_out): Declare.
745         * coff-alpha.c (alpha_ecoff_backend_data): Initialize new
746         ecoff_debug_swap fields.
747         * coff-mips.c (mips_ecoff_backend_data): Likewise.
748         * elf32-mips.c (mips_elf_read_ecoff_info): Undefine READ.
749         (mips_elf_ecoff_debug_swap): Initialize new ecoff_debug_swap
750         fields.
751         * configure.in (bfd_elf32_bigmips_vec): Use ecoff.o and
752         ecofflink.o.
753         (bfd_elf32_littlemips_vec): Likewise.
754         (ecoff_big_vec, ecoff_little_vec): Likewise.
755         (ecoffalpha_little_vec): Likewise.
756         * Makefile.in (BFD_LIBS): Remove ecoff.o and ecofflink.o.
757         (BFD32_BACKENDS): Add ecoff.o and ecofflink.o.
758
759         * aoutx.h (NAME(aout,final_link)): Check flavour of sub, not abfd,
760         when computing reloc sizes.  From Eric Youngdale
761         <ericy@cais.cais.com>.
762         * elfcode.h (elf_bfd_final_link): Don't try to compute maximum
763         reloc count or size for a non-ELF file.
764
765         * mipsbsd.c (MY_final_link_callback): Define to avoid warning.
766
767         * hp300hpux.c (MY_final_link_callback): Define to avoid warning.
768         (BMAGIC, QMAGIC): Define; used by aoutx.h.
769         (MY(slurp_symbol_table)): Change translate_from_native_sym_flags
770         calls to use new parameters.
771
772 Fri Jun 17 14:45:32 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
773
774         * aout-target.h (MY(callback)): Set the alignments of the text,
775         data and bss sections after determining the architecture.
776
777         * sunos.c (sunos_add_one_symbol): Treat a common symbol from a
778         dynamic object as being in the .bss section of the object, rather
779         than as being undefined.
780
781 Fri Jun 17 11:16:50 1994  Jeff Law  (law@snake.cs.utah.edu)
782
783         * libhppa.h (bfd_hppa_insn2fmt, hppa_rebuild_insn): Make INLINE.
784
785         * elf32-hppa.h (elf_hppa_final_processing): Delete decl.
786
787 Thu Jun 16 23:36:23 1994  Jeff Law  (law@snake.cs.utah.edu)
788
789         * elfcode.h (elf_link_input_bfd): Don't try to read local symbols
790         if there aren't any in the input file.
791
792 Thu Jun 16 14:25:22 1994  Eric Youngdale  (ericy@cais.cais.com)
793
794         * i386linux.c: Many new functions and definitions for linker
795         support for Linux shared libraries.
796         * bfd-in.h (bfd_linux_size_dynamic_sections): Declare.
797         * bfd-in2.h: Rebuild.
798
799 Thu Jun 16 14:23:46 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
800
801         * config.bfd: If second argument is ``_'', then, instead of
802         echoing config file name, echo whether target uses leading
803         underscores on symbol names.  Add appropriate settings to
804         different cases.  Used by binutils/configure.in to set default for
805         c++filt.
806
807         * elfcode.h (elf_bfd_final_link): If trying to generate a shared
808         object, warn and return false.
809
810         * aoutx.h (NAME(aout,some_aout_object_p)): Accept BMAGIC objects
811         and treat them as OMAGIC.
812
813 Wed Jun 15 18:02:21 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
814
815         Enable sparc v9 support for release.  Note that this is still a
816         work in progress, pending release of an ABI specification.
817         * config.bfd, configure.in: Include sparc v9 elf config.
818         * elfcode.h (prep_headers): Handle sparc v9 (64 bit).
819         * reloc.c (bfd_reloc_code_real): New reloc types.
820         * elf64-sparc.c: Implement elf64-sparc target.
821         * Makefile.in, targets.c: Updated.
822
823 Wed Jun 15 01:34:07 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
824
825         * libelf.h (struct elf_obj_tdata): New field dt_needed_name.
826         (elf_dt_needed_name): New accessor macro.
827         * elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name
828         is set, use that instead of the filename for the DT_NEEDED dynamic
829         entry.
830         * elf.c (bfd_elf_set_dt_needed_name): New function.
831         * bfd-in.h (bfd_elf_set_dt_needed_name): Declare.
832         * bfd-in2.h: Rebuilt.
833
834         * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add sinterpptr
835         argument, and set it to the .interp section.
836         * bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
837         (bfd_elf64_size_dynamic_sections): Likewise.
838         * bfd-in2.h: Rebuilt.
839
840         * coff-sparc.c (SWAP_OUT_RELOC_EXTRA): Define to clear the r_spare
841         field of the reloc rather than letting it be garbage.
842
843         * archive.c (bfd_slurp_armap): Recognize __.SYMDEF/ as well as
844         __.SYMDEF; the former was used in old Linux archives.  From
845         jrs@world.std.com (Rick Sladkey).
846
847         * i386linux.c (i386linux_write_object_contents): Define; like
848         MY(write_object_contents) in aout-target.h, but set MACHTYPE to
849         M_386.  From jrs@world.std.com (Rick Sladkey).
850         (MY_write_object_contents): Define.
851
852         * aoutx.h (translate_from_native_sym_flags): Treat N_SETV symbols
853         as N_DATA symbols.
854         (aout_link_add_symbols): Likewise.
855
856         * aoutx.h: Rewrite symbol duplicate elimination to use BFD hash
857         tables.
858         (struct stringtab_entry, struct stringtab_data): Remove.
859         (HASHMAXLEN, HASH_CHAR, hash, compare, log2, emit_strtab): Remove.
860         (struct strtab_hash_entry, struct strtab_hash): Define.
861         (strtab_hash_newfunc, strtab_hash_lookup): Define.
862         (stringtab_free, emit_stringtab): Define.
863         (stringtab_init, add_to_stringtab): Rewrite.
864         (NAME(aout,write_syms)): Use new stringtab code.
865         (struct aout_final_link_info, NAME(aout,final_link)): Likewise.
866         (aout_link_write_symbols, aout_link_write_other_symbol): Likewise.
867
868         * bfd-in.h (BFD_TRADITIONAL_FORMAT): Define new BFD flag to
869         request BFD to write object in the traditional format, whatever
870         that means for the particular backend.
871         * bfd-in2.h: Rebuilt.
872
873         * hash.c (bfd_hash_allocate): If obstack_alloc fails, set
874         bfd_error_no_memory.
875
876 Tue Jun 14 13:00:04 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
877
878         * libaout.h (struct aoutdata): Add q_magic_format to subformat
879         enum.
880         * aout-target.h (MY_bfd_copy_private_bfd_data): Define as function
881         if not already defined.  Copy subformat information.
882         (MY_text_includes_header): Define as 0 if not already defined.
883         (MY(backend_data)): Use MY_text_includes_header rather than 0.
884         (MY_final_link_callback): Rename from final_link_callback, and
885         define only if MY_final_link_callback is not already defined.
886         (MY_bfd_final_link): Rename use of final_link_callback to
887         MY_final_link_callback.
888         * aoutx.h (NAME(aout,some_aout_object_p)): Handle QMAGIC like
889         ZMAGIC, but set the subformat to q_magic_format.  Abort if the
890         magic number if not recognized.
891         (adjust_z_magic): Use QMAGIC if q_magic_format.
892         * i386linux.c (MY_text_includes_header): Define as 1.
893         (i386linux_bfd_final_link): New static function.
894         (MY_bfd_final_link): Define as i386linux_bfd_final_link.
895
896         * aoutx.h (translate_to_native_sym_flags): Check both section and
897         output_section against sections of abfd.
898
899         * libecoff.h (struct ecoff_link_hash_entry): Change type of
900         written from boolean to char.  Add new field small.
901         * ecoff.c (ecoff_link_hash_newfunc): Initialize written to 0
902         rather than false.  Initialize small to 0.
903         (ecoff_link_add_externals): If ECOFF type is scSUndefined, set
904         small.  If small is set, and hash table type is common, force the
905         symbol into a section named SCOMMON and change the ECOFF type from
906         scCommon to scSCommon.
907         (ecoff_link_write_external): Set written to 1 rather than true.
908         * coff-mips.c (mips_relocate_section): Correct JMPADDR reloc
909         overflow check to consider section VMA of input file.
910
911 Mon Jun 13 14:20:07 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
912
913         * aoutf1.h (aout_32_sunos4_write_object_contents): Handle a
914         machine type of 68000.
915         * aoutx.h (NAME(aout,machine_type)): Add new argument unknown.
916         Set *unknown to true if machine type is really unknown, as opposed
917         to M_UNKNOWN for the 68000.
918         (NAME(aout,set_arch_mach)): Change NAME(aout,machine_type) call
919         accordingly.
920         * libaout.h (NAME(aout,machine_type)): Add new argument to
921         prototype.
922
923 Sun Jun 12 20:21:03 1994  Jeff Law  (law@snake.cs.utah.edu)
924
925         * som.c (EXEC_AUX_ID): Define based on availablity of HPUX_AUX_ID
926         or HIUX_AUX_ID.
927         (som_begin_writing): Use EXEC_AUX_ID instead of HPUX_AUX_ID.
928         (som_write_armap): Use CPU_PA_RISC1_0 as the magic number.  Note
929         som.c is careful to always define CPU_PA_RISC1_0.
930
931 Sat Jun 11 16:32:30 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
932
933         Add weak symbols as an extension to a.out.
934         * aoutx.h (sym_in_text_section): Don't define.
935         (sym_in_data_section, sym_in_bss_section): Likewise.
936         (sym_is_undefined, sym_is_global_defn): Likewise.
937         (sym_is_debugger_info, sym_is_fortrancommon): Likewise.
938         (sym_is_absolute, sym_is_indirect): Likewise.
939         (translate_from_native_sym_flags): Rewrite for clarity.  Rearrange
940         arguments and change caller.  Handle weak symbols.
941         (translate_to_native_sym_flags): Likewise.
942         (aout_link_check_ar_symbols): Don't ignore weak symbols.  Pull
943         object in from archive if a weak defintion is found for an
944         existing undefined symbol.
945         (aout_link_add_symbols): Put all cases in switch.  Set flags of an
946         undefined symbol to 0.  Handle weak symbols.
947         (aout_link_write_symbols): Handle weak symbols.
948         (aout_link_write_other_symbol): Likewise.
949         (aout_link_input_section_std): Likewise.
950         (aout_link_input_section_ext): Likewise.
951         * sunos.c (sunos_write_dynamic_symbol): Likewise.
952
953 Fri Jun 10 13:25:13 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
954
955         * aoutx.h (NAME(aout,canonicalize_reloc)): Handle .bss section.
956         (NAME(aout,get_reloc_upper_bound)): Likewise.
957
958         * coff-i960.c (coff_i960_reloc_type_lookup): Add BFD_RELOC_CTOR.
959         * linker.c (_bfd_generic_link_write_global_symbol): Don't assume
960         the section of a common symbol is not NULL.
961
962 Wed Jun  8 23:15:53 1994  Stu Grossman  (grossman@cygnus.com)
963
964         * nlmcode.h (nlm_object_p):  Set EXEC_P and start address for GDB.
965
966 Wed Jun  8 23:57:34 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
967
968         * aoutx.h (aout_get_external_symbols): Don't try to read the
969         strings if there are no symbols.
970         (aout_link_write_other_symbol): Use the output section when
971         working out the type.
972
973 Tue Jun  7 13:25:08 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
974
975         * elfcode.h (assign_section_numbers): Put shstrtab, symtab and
976         strtab sections at end of file.  Avoids bug in some versions of
977         SVR4 strip.  From Eric Youngdale <eric@tantalus.nrl.navy.mil>.
978
979         * coffcode.h (styp_to_sec_flags): If COFF_PAGE_SIZE is defined,
980         set SEC_DEBUGGING for STYP_INFO sections.
981         (coff_compute_section_file_positions): If COFF_PAGE_SIZE is
982         defined, and D_PAGED is set, set the file position equal to the
983         section VMA modulo COFF_PAGE_SIZE.
984         * coffgen.c (coff_real_object_p): If F_EXEC is set, set D_PAGED.
985         * coff-i386.c: Set D_PAGED in BFD target.
986         (COFF_PAGE_SIZE): Define.
987         * coff-m68k.c, coff-sparc.c: Likewise.
988
989 Mon Jun  6 10:57:28 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
990
991         * elfcode.h (bfd_section_from_shdr): Don't turn a reloc section
992         into a BFD section just because SHF_ALLOC is set; require that it
993         not use the normal symbol table.
994         (elf_section_from_bfd_section): Corresponding change.
995
996         Better indirect and warning symbol handling inspired by Stuart
997         Quick <stuck@cs.man.ac.uk>.
998         * linker.c (enum link_action): Add REF, MIND, CWARN, REFC.
999         (link_action): Change UNDEF_ROW/def and UNDEFW_ROW/def from NOACT
1000         to REF.  Change UNDEF_ROW/indr and UNDEFW_ROW/indr from CYCLE to
1001         REFC.  Change DEF_ROW/indr and COMMON_ROW/indr from CYCLE to MDEF.
1002         Change DEFW_ROW/indr from CYCLE to NOACT.  Change INDR_ROW/indr
1003         from MDEF to MIND.  Change INDR_ROW/warn from WARNC to CYCLE.
1004         Change WARN_ROW/def and WARN_ROW/indr from MWARN to CWARN.  Change
1005         WARN_ROW/com from MWARN to WARN.  Change WARN_ROW/warn from NOACT
1006         to CYCLE.  Change SET_ROW/warn from WARNC to CYCLE>
1007         (_bfd_generic_link_add_one_symbol): Handle REF, MIND, CWARN and
1008         REFC.  If a new indirect symbol has been referenced, push the
1009         reference down to the symbol it points to.  FIx handling of WARN.
1010         * aoutx.h (translate_from_native_sym_flags): If N_WARNING, don't
1011         clobber e_type of next symbol.
1012         (translate_to_native_sym_flags): Likewise.
1013         (aout_link_write_symbols): Loop on bfd_link_hash_warning as well
1014         as bfd_link_hash_indirect.
1015
1016         * libaout.h (struct aout_link_hash_entry): New field written.
1017         * aoutx.h (NAME(aout,link_hash_newfunc)): Initialize written.
1018         (aout_link_write_symbols): Use written, not root.written.
1019         (aout_link_write_other_symbol): Likewise.
1020         * sunos.c (sunos_scan_dynamic_symbol): Likewise.
1021         * libecoff.h (struct ecoff_link_hash_entry): New field written.
1022         * ecoff.c (ecoff_link_hash_newfunc): Initialize written.
1023         (ecoff_link_write_external): use written, not root.written.
1024         * genlink.h (struct generic_link_hash_entry): New field written.
1025         * linker.c (_bfd_link_hash_newfunc): Don't initialize written.
1026         (generic_link_hash_newfunc): Initialize written.
1027         (_bfd_generic_link_output_symbols): Use written, not root.written.
1028         (_bfd_generic_link_write_global_symbol): Likewise.
1029         (_bfd_generic_reloc_link_order): Likewise.
1030
1031         * libecoff.h (ecoff_data_type): Add linker field.
1032         * ecoff.c (ecoff_write_object_contents): Check new tdata linker
1033         field, rather than outsymbols being non-NULL, to decide whether to
1034         output the symbols and relocs.
1035         (ecoff_bfd_final_link): Set new tdata linker field to true.
1036
1037         * ecoff.c (ecoff_bfd_copy_private_bfd_data): Don't try to copy
1038         data to a non-ECOFF file.
1039
1040         * libbfd-in.h: Add warning that libbfd.h is a generated file.
1041         * libbfd.h: Rebuilt.
1042
1043 Sun Jun  5 15:02:30 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1044
1045         Changes to support ELF strip and objcopy on dynamically linked
1046         files.
1047         * elfcode.h (elf_fake_sections): Add prototype.
1048         (bfd_section_from_shdr): Make a BFD section from an SHT_HASH
1049         section, and from an SHT_DYNSYM section, and from the dynamic
1050         string table section.
1051         (elf_object_p): Set D_PAGED if there is a program header.
1052         (elf_make_sections): Remove.
1053         (fix_up_strtabs): Remove.
1054         (elf_fake_sections): Rewrite.  Now sets sh_entsize.
1055         (assign_section_numbers): Rewrite.  Now sets sh_link and sh_info
1056         for all sections.
1057         (elf_compute_section_file_positions):  Don't call obsolete
1058         functions elf_make_sections or fix_up_strtabs.
1059         (swap_out_syms): Set sh_addralign to FILE_ALIGN rather than 4.
1060         (NAME(bfd_elf,write_object_contents)): Permit writing DYNAMIC
1061         objects.
1062         (elf_section_from_bfd_section): Treat SHT_DYNSYM like other normal
1063         sections.  If an SHT_REL or SHT_RELA section is allocated or uses
1064         an unusual symbol table, permit a BFD section to map to it.
1065         Permit most SHT_STRTAB sections to have a BFD section mapped to
1066         them.
1067         (elf_bfd_final_link): Don't set sh_link, sh_info or sh_entsize
1068         fields of dynamic sections here; do it in assign_section_numbers.
1069         * elf32-target.h, elf64-target.h: Add D_PAGED to permitted object
1070         flags.
1071
1072         * elf.c (_bfd_elf_make_section_from_shdr): Only set SEC_DATA if
1073         SEC_LOAD is set, rather than checking SEC_ALLOC.
1074
1075         * libbfd-in.h (bfd_realloc): Change last arg to "size_t size".
1076
1077 Fri Jun  3 10:58:02 1994  Jeff Law  (law@snake.cs.utah.edu)
1078
1079         * som.c (som_write_object_contents): Don't compute the file header's
1080         checksum here.
1081         (som_write_headers): Instead do it here.
1082
1083         * libbfd.h (bfd_realloc): Change last arg to "size_t size".
1084
1085 Thu Jun  2 17:39:22 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1086
1087         * hosts/sun3.h: Include <stdlib.h>.  Don't declare free, exit or
1088         getenv.
1089
1090         Add linker support for SunOS shared libraries.
1091         * sunos.c: Include bfdlink.h.  Add many new functions and
1092         definitions for SunOS shared library support.
1093         * bfd-in.h (bfd_sunos_record_link_assignment): Declare.
1094         (bfd_sunos_size_dynamic_sections): Declare.
1095         * bfd-in2.h: Rebuilt.
1096         * aoutx.h (struct aout_link_hash_entry): Move to libaout.h.
1097         (struct aout_link_hash_table): Likewise.
1098         (aout_link_hash_lookup, aout_link_hash_traverse): Likewise.
1099         (aout_hash_table): Likewise.
1100         (NAME(aout,link_hash_newfunc)): Rename from aout_link_hash_newfunc
1101         and make externally visible.
1102         (NAME(aout,link_hash_table_init)): New function.
1103         (NAME(aout,link_hash_table_create)): Call
1104         NAME(aout,link_hash_table_init), not _bfd_link_hash_table_init.
1105         (aout_link_add_symbols): Don't fail if no symbols.  If it exists,
1106         call add_dynamic_symbols backend entry point for dynamic objects.
1107         Use add_one_symbol backend entry point if it exists.
1108         (NAME(aout,final_link)): Call finish_dynamic_link backend entry
1109         point, if it exists.
1110         (aout_link_input_bfd): For a dynamic object, call
1111         link_dynamic_object backend entry point, if it exists.
1112         (aout_link_write_other_symbol): Call write_dynamic_symbol backend
1113         entry point, if it exists.
1114         (aout_link_input_section): Don't read the relocs if they have
1115         already been read.
1116         (aout_link_input_section_std): When doing a final link, for a
1117         reloc against an external symbol, call check_dynamic_reloc backend
1118         entry point, if it exists.
1119         (aout_link_input_section_ext): Likewise.
1120         * libaout.h: Protect against multiple inclusion.  Include
1121         bfdlink.h.
1122         (struct aout_link_hash_entry): Move in from aoutx.h.
1123         (struct aout_link_hash_table): Likewise.
1124         (aout_link_hash_lookup, aout_link_hash_traverse): Likewise.
1125         (aout_hash_table): Likewise.
1126         (struct aout_backend_data): Add fields add_dynamic_symbols,
1127         add_one_symbol, link_dynamic_object, write_dynamic_symbol,
1128         check_dynamic_reloc, and finish_dynamic_link.
1129         (struct aout_section_data_struct): Define new structure.
1130         (aout_section_data): Define new accessor macro.
1131         (NAME(aout,link_hash_newfunc)): Declare.
1132         (NAME(aout,link_hash_table_init)): Declare.
1133         * aoutf1.h (sunos4_aout_backend): Initialize new aout_backend_data
1134         fields.
1135         * aout-target.h (MY(backend_data)): Likewise.
1136         * i386aout.c (MY(backend_data)): Likewise.
1137         * i386mach3.c (MY(backend_data)): Likewise.
1138         * mipsbsd.c (MY(backend_data)): Likewise.
1139         * sparclynx.c (sparclynx_aout_backend): Likewise.
1140
1141         * aoutx.h (NAME(aout,slurp_symbol_table)): Don't zero out cached
1142         until we know it is non-NULL.
1143         (aout_link_write_symbols): Don't skip a warning symbol even if it
1144         has already been written out.  If skipping an indirect symbol,
1145         skip the next symbol as well.
1146
1147 Wed Jun  1 14:37:50 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1148
1149         * hosts/sun3.h: Don't declare qsort, malloc or realloc.
1150
1151 Thu May 26 13:56:03 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1152
1153         * nlmcode.h (nlm_swap_auxiliary_headers_in): Cast bfd_byte pointer
1154         to char pointer to avoid compiler warnings.
1155
1156         * dep-in.sed: Remove spaces before colons.
1157
1158         Merged changes back in from FSF gas release 2.3:
1159
1160         * Makefile.in (stmp-bfd.h): Wrap `if' block around grep
1161         invocation, to avoid a bug in BSD 4.4 make.
1162
1163         From Ralph Campbell:
1164         * mipsbsd.c (mips_fix_jmp_addr): If symbol is undefined, return an
1165         error.
1166         (mips_fix_hi16_s): Ditto.
1167
1168         Fri May 13 21:21:00 1994  DJ Delorie (dj@ctron.com)
1169
1170         * makefile.dos: define a default target, or archives won't work
1171           due to multiple matches.
1172
1173         Wed May 11 22:32:00 1994  DJ Delorie (dj@ctron.com)
1174
1175         * configure.bat: update for latest files
1176         * makefile.dos: update for correct targets and sources
1177         * coff-go32.c: [new] go32's COFF format (i386coff with underscores)
1178         * targets.c: add go32coff target
1179         * makefile.in: add coff-go32.c support
1180
1181 Thu May 26 10:10:21 1994  Jeff Law  (law@snake.cs.utah.edu)
1182
1183         * som.c (som_prep_headers): Do not set the system_id here, private
1184         bfd data has not been copied yet.
1185         (som_write_headers): Instead do it here.
1186
1187 Tue May 24 16:17:18 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1188
1189         Make MIPS ELF use new ELF backend linker.  No shared library
1190         support yet.
1191         * elf32-mips.c (bfd_mips_elf32_swap_gptab_in): New function.
1192         (bfd_mips_elf32_swap_gptab_out): New function.
1193         (mips_elf_object_p): If last symbol is LOCAL, set elf_bad_symtab.
1194         (mips_elf_final_write_processing): Set sh_info field for .gptab.*
1195         sections.
1196         (mips_elf_fake_sections): Set sh_entsize for .gptab.* sections.
1197         (mips_elf_read_ecoff_info): Read and free external symbols last,
1198         not first, for clarity.
1199         (struct mips_elf_link_hash_entry): Define new structure.
1200         (struct mips_elf_link_hash_table): Define new structure.
1201         (mips_elf_link_hash_lookup): Define new macro.
1202         (mips_elf_link_hash_traverse): Define new macro.
1203         (mips_elf_hash_table): Define new macro.
1204         (mips_elf_link_hash_newfunc): New static function.
1205         (mips_elf_link_hash_table_create): New static function.
1206         (mips_elf_add_symbol_hook): New static function.
1207         (struct extsym_info): Define new structure.
1208         (mips_elf_get_extr, mips_elf_set_index): Remove.
1209         (mips_elf_output_extsym): New static function.
1210         (gptab_compare): New static function.
1211         (mips_elf_final_link): Rewrite to use ELF backend linker, and to
1212         merge gptab information in input files.
1213         (mips_elf_relocate_hi16): New static function.
1214         (mips_elf_relocate_section): New static function.
1215         (bfd_elf32_bfd_link_hash_table_create): Define as macro before
1216         including elf32-target.h.
1217         (elf_backend_relocate_section): Likewise.
1218         (elf_backend_add_symbol_hook): Likewise.
1219         * elf.c (_bfd_elf_link_hash_newfunc): Rename from
1220         elf_link_hash_newfunc and make globally visible.  Change caller.
1221         (_bfd_elf_link_hash_table_init): New function, broken out of
1222         _bfd_elf_link_hash_table_create.
1223         (_bfd_elf_link_hash_table_create): Use
1224         _bfd_elf_link_hash_table_init.
1225         * libelf.h (struct elf_obj_tdata): Add new field bad_symtab.
1226         (elf_bad_symtab): Define new accessor macro.
1227         (_bfd_elf_link_hash_newfunc): Declare.
1228         (_bew_elf_link_hash_table_init): Declare.
1229         * elfcode.h (elf_object_p): Call backend object_p hook after
1230         swapping in all the section headers.
1231         (map_program_segments): Correct typo: Internal for External.
1232         (elf_link_add_object_symbols): If elf_bad_symtab is set, read all
1233         the symbols.  Skip STB_LOCAL symbols rather than giving an error.
1234         (elf_bfd_final_link): If elf_bad_symtab is set, allocate space for
1235         all symbols, not just locals.
1236         (elf_link_output_extsym): Only skip a symbol not mentioned by a
1237         regular file if it is mentioned by a dynamic object.
1238         (elf_link_input_bfd): If elf_bad_symtab is set, read all the
1239         symbols.
1240
1241 Fri May 20 13:38:23 1994  Jeff Law  (law@snake.cs.utah.edu)
1242
1243         * som.c (som_set_reloc_info): Do not set any relocation info
1244         for SOM fixups which are never passed to BFD.
1245
1246 Fri May 20 11:57:05 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1247
1248         * coff-mips.c (mips_relocate_section): Add MIPS_R_JMPADDR overflow
1249         checking.
1250
1251         * elf32-i386.c (elf_i386_size_dynamic_sections): Add DT_DEBUG to
1252         the dynamic linking information for the benefit of the debugger.
1253         From Peter Schauer.
1254         * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
1255
1256         * elf.c (_bfd_elf_make_section_from_shdr): New function, based on
1257         code repeated three times in bfd_section_from_shdr in elfcode.h.
1258         * libelf.h (_bfd_elf_make_section_from_shdr): Declare.
1259         * elfcode.h (bfd_section_from_shdr): Use new function
1260         _bfd_elf_make_section_from_shdr to create BFD sections.  If a
1261         reloc section does not use the main symbol table, or it is part of
1262         the process image, treat it as a normal section, not relocs.
1263         * elf32-mips.c (mips_elf_section_from_shdr): Use new function
1264         _bfd_elf_make_section_from_shdr.
1265
1266 Thu May 19 11:37:11 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1267
1268         * elf32-target.h, elf64-target.h: Change ar_max_namelen value from
1269         15 to 14 to match SVR4 ar.
1270
1271         Add support for ELF shared libraries.  Loosely based on work by
1272         Eric Youngdale <ericy@cais.com>.
1273         * libelf.h (struct elf_backend_data): Add new fields for dynamic
1274         linking: elf_backend_create_dynamic_sections,
1275         elf_backend_adjust_dynamic_symbol,
1276         elf_backend_size_dynamic_sections,
1277         elf_backend_finish_dynamic_symbol,
1278         elf_backend_finish_dynamic_sections.
1279         (struct elf_link_hash_entry): Change type of align field to
1280         bfd_size_type.  Add fields dynindx, dynstr_index, weakdef,
1281         elf_link_hash_flags.
1282         (struct elf_link_hash_table): Add fields dynobj, dynsymcount,
1283         dynstr, bucketcount.
1284         (bfd_elf32_swap_reloc_in, bfd_elf32_swap_reloc_out): Declare.
1285         (bfd_elf32_swap_reloca_in, bfd_elf32_swap_reloca_out): Declare.
1286         (bfd_elf32_swap_dyn_in, bfd_elf32_swap_dyn_out): Declare.
1287         (bfd_elf32_add_dynamic_entry): Declare.
1288         (bfd_elf64_swap_reloc_in, bfd_elf64_swap_reloc_out): Declare.
1289         (bfd_elf64_swap_reloca_in, bfd_elf64_swap_reloca_out): Declare.
1290         (bfd_elf64_swap_dyn_in, bfd_elf64_swap_dyn_out): Declare.
1291         (bfd_elf64_add_dynamic_entry): Declare.
1292         * elfcode.h (Elf_External_Dyn): Define.
1293         (elf_swap_reloc_in): Define as macro using NAME.  Make externally
1294         visible.
1295         (elf_swap_reloc_out): Likewise.
1296         (elf_swap_reloca_in, elf_swap_reloca_out): Likewise.
1297         (elf_swap_dyn_in, elf_swap_dyn_out): Define as macro using NAME
1298         and as new externally visible function.
1299         (elf_fake_sections): Set section type of dynamic sections based on
1300         section names.
1301         (elf_write_phdrs): Remove.
1302         (assign_file_position_for_section): Add new align argument.
1303         Change all callers.
1304         (get_program_header_size): New static function.
1305         (struct seg_info): Remove.
1306         (map_program_segments): Completely rewrite.
1307         (assign_file_positions_except_relocs): Completely rewrite.
1308         (assign_file_positions_for_relocs): Don't set a file position for
1309         sections which already have one.  Don't bother to align the file
1310         position here.
1311         (section_from_elf_index): Handle SHT_HASH and SHT_DYNAMIC
1312         section types.
1313         (elf_section_from_bfd_section): Likewise.
1314         (elf_slurp_symbol_table): If section_from_elf_index fails, just
1315         use bfd_abs_section rather than returning an error.
1316         (elf_sizeof_headers): Make useful.
1317         (elf_link_record_dynamic_symbol): New static function.
1318         (elf_link_add_object_symbols): Handle dynamic objects.
1319         (elf_link_create_dynamic_sections): New static function.
1320         (elf_add_dynamic_entry): Define as macro using NAME and as new
1321         externally visible function.
1322         (NAME(bfd_elf,record_link_assignment)): New function.
1323         (elf_buckets): New static variable.
1324         (NAME(bfd_elf,size_dynamic_sections)): New function.
1325         (struct elf_final_link_info): Add dynsym_sec and hash_sec fields.
1326         (elf_bfd_final_link): Handle dynamic linking.  Create a section
1327         symbol for all ELF sections, not all BFD sections.  Store section
1328         symbol index in target_index field, not index field.  Traverse
1329         over global symbols even if stripping.
1330         (elf_link_output_extsym): Output dynamic symbols.  Mark symbols
1331         defined by dynamic objects as undefined.
1332         (elf_link_input_bfd): Ignore dynamic objects.  Use target_index
1333         field for section relocs, and make sure it is set.
1334         (elf_reloc_link_order): Use target_index field for section relocs,
1335         and make sure it is set.
1336         * elf.c (elf_link_hash_newfunc): Initialize dynindx, dynstr_index,
1337         weakdef and elf_link_hash_flags fields.
1338         (_bfd_elf_link_hash_table_create): Initialize dynobj, dynsymcount,
1339         dynstr and bucketcount fields.
1340         * elf32-target.h: Initialize new dynamic linking fields.
1341         * elf64-target.h: Likewise.  
1342         * elf32-i386.c: New functions for dynamic linking support.
1343         * elf32-sparc.c: Likewise.
1344         * bfd-in.h (bfd_elf32_record_link_assignment): Declare.
1345         (bfd_elf64_record_link_assignment): Declare.
1346         (bfd_elf32_size_dynamic_sections): Declare.
1347         (bfd_elf64_size_dynamic_sections): Declare.
1348         * bfd-in2.h: Rebuilt.
1349
1350 Wed May 18 08:29:04 1994  Ian Lance Taylor  (ian@cygnus.com)
1351
1352         * som.c: Don't include <sys/dir.h> or <sys/user.h>.
1353         (som_reloc_queue_find): Call memcmp instead of bcmp.
1354         (som_bfd_reloc_type_lookup): Change first argument to bfd *.
1355         (compare_syms): Change types of arguments to const void *.
1356         (bfd_section_from_som_symbol): Removed unused local found.
1357         (som_write_armap): Add elength, map, orl_count and int arguments.
1358         (som_write_armap): Use %ld and cast to long for getuid result.
1359
1360 Wed May 18 09:09:32 1994  Jeff Law  (law@snake.cs.utah.edu)
1361
1362         * elf32-hppa.h (R_HPPA_ABS_CALL): Define.
1363         * elf32-hppa.c (hppa_elf_gen_reloc_type): Handle absolute calls.
1364
1365         * som.h (R_HPPA_ABS_CALL): Define.
1366         * som.c (hppa_som_gen_reloc_type): Delete complex relocation types.
1367
1368 Tue May 17 19:33:12 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1369
1370         * coff-i960.c (icoff_little_vec, icoff_big_vec): Indicate leading
1371         underscore, for compatibility with Intel tool chain (gnu960v2).
1372
1373 Mon May 16 10:09:22 1994  Jeff Law  (law@snake.cs.utah.edu)
1374
1375         * bfd-in2.h: Rebuilt.
1376
1377         * elf32-hppa.c: Change .hppa_linker_stubs to .PARISC.stubs,
1378         likewise for other PA specific sections.
1379         (hppa_elf_relocate_unwind_table): Delete unused
1380         function.
1381         (elf_hppa_howto_table): Completely new table based on 94-02-02
1382         draft PA ELF spec.  Change relocation tags appropriately
1383         throughout elf32-hppa.c
1384         (hppa_elf_gen_reloc_type): Rewrite and simplify based on 94-02-02
1385         spec.
1386         (hppa_elf_reloc): Likewise.
1387         (hppa_look_for_stubs_in_section): Likewise
1388         (ELF_MACHINE_CODE): Change to EM_PARISC.
1389         * elf32-hppa.h: Include "elf/hppa.h".  Change relocation tags 
1390         appropriately throughout elf32-hppa.h.
1391         (elf32_hppa_reloc_type): New table based on 94-02-02 draft PA ELF
1392         spec.
1393         (R_HPPA_ABS_CALL, R_HPPA_COMPLEX*, R_HPPA_UNWIND): Delete definitions.
1394         * elfcode.h (prep_headers): Use EM_PARISC instead of EM_HPPA.
1395         * reloc.c (bfd_reloc_code_real): Delete unused HPPA relocations.
1396         * som.h (R_HPPA_ABS_CALL, R_HPPA_COMPLEX): Delete definitions.
1397
1398         * libhppa.h (hppa_field_adjust): Avoid adding constant_value into
1399         the final value twice for LR and RR field selectors.
1400
1401 Sat May 14 09:09:19 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
1402
1403         * aoutx.h (add_to_stringtab): Use BFD_ASSERT not assert.  This
1404         avoids __eprintf troubles.
1405
1406 Fri May 13 10:51:21 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1407
1408         * bout.c (b_out_bfd_reloc_type_lookup): Handle BFD_RELOC_CTOR.
1409
1410         * config/mipsbelf.mt (SELECT_VECS): Add ecoff_big_vec and
1411         ecoff_little_vec since Irix 5 supports ECOFF executables.
1412
1413 Wed May 11 00:31:57 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1414
1415         * ecoff.c (ecoff_find_nearest_line): Handle fdr.adr != pdr.adr
1416         correctly.
1417
1418         * Makefile.in (stmp-bfd.h): Use || instead of ; to force SunOS
1419         make to invoke the shell.
1420
1421 Tue May 10 14:23:43 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1422
1423         * section.c (SEC_COFF_SHARED_LIBRARY): Renamed from
1424         SEC_SHARED_LIBRARY for clarity.  Changed all uses.
1425         * bfd-in2.h: Rebuilt.
1426         * coffcode.h (sec_to_styp_flags): If SEC_COFF_SHARED_LIBRARY is
1427         set, set STYP_NOLOAD.
1428         * coffgen.c (coff_section_from_bfd_index): Don't get an assertion
1429         failure because of a bad shared library.
1430
1431 Mon May  9 18:53:40 1994  Bill Cox  (bill@rtl.cygnus.com)
1432
1433         * linker.c: Add missing comment terminator.
1434
1435 Mon May  9 11:53:54 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1436
1437         * linker.c (_bfd_generic_link_add_one_symbol): If hashp and *hashp
1438         are not NULL, assume the caller has already looked up the symbol
1439         in the hash table and has stored the entry in *hashp.
1440         (generic_link_add_symbol_list): Set h to NULL before calling
1441         _bfd_generic_link_add_one_symbol.
1442         * ecoff.c (ecoff_link_add_externals): Likewise.
1443
1444         * elfcode.h (assign_file_positions_except_relocs): Don't require
1445         page shared between .data and .bss segments to contain zeroes.
1446
1447         * elfcode.h: Include bfdlink.h.  Added several new functions to do
1448         linking.
1449         (ELF_R_TYPE): Define.
1450         (bfd_add_to_strtab): Return unsigned long.  Change check for
1451         realloc failure.
1452         (elf_fake_sections): Check return value of bfd_add_to_strtab.
1453         (elf_compute_section_file_positions): Add link_info argument.
1454         Call elf_backend_begin_write_processing hook and prep_headers
1455         here.  Only call swap_out_syms if link_info is NULL.  Set up
1456         .shstrtab section here.  Pass dosyms argument to
1457         assign_file_positions_except_relocs.  Set output_has_begun flag.
1458         (assign_file_positions_for_symtab_and_strtabs): Add dosyms
1459         argument, and use it to control setting .symtab and .strtab file
1460         positions.
1461         (assign_file_positions_except_relocs): Add dosyms argument, and
1462         pass it on.
1463         (prep_headers): Check return value of bfd_add_to_strtab.
1464         (swap_out_syms): Likewise.  Also, don't set up .shstrtab here.
1465         (NAME(bfd_elf,write_object_contents)): Some calls moved into
1466         elf_compute_section_file_positions.
1467         (elf_set_section_contents): Likewise.
1468         (elf_slurp_symbol_table): SHN_LORESERV corrected to SHN_LORESERVE.
1469         * libelf.h: Include bfdlink.h.
1470         (struct elf_backend_data): Add fields collect,
1471         elf_add_symbol_hook, elf_backend_relocate_section.
1472         (struct bfd_elf_section_data): Add field rel_hashes.
1473         (struct elf_obj_tdata): Remove fields internal_syms and symbols.
1474         Add field sym_hashes.
1475         (obj_symbols, obj_internal_syms): Remove definitions.
1476         (elf_sym_hashes): Define.
1477         (struct elf_link_hash_entry): Define.
1478         (struct elf_link_hash_table): Define.
1479         (elf_link_hash_lookup): Define.
1480         (elf_link_hash_traverse): Define.
1481         (elf_hash_table): Define.
1482         (_bfd_elf_link_hash_table_create): Declare.
1483         (bfd_elf32_bfd_link_add_symbols): Declare.
1484         (bfd_elf32_bfd_final_link): Declare.
1485         (bfd_elf64_bfd_link_add_symbols): Declare.
1486         (bfd_elf64_bfd_final_link): Declare.
1487         * elf.c: Include bfdlink.h.
1488         (elf_link_hash_newfunc): New function.
1489         (_bfd_elf_link_hash_table_create): New function.
1490         * elf32-target.h (elf_backend_relocate_section): If not defined,
1491         define as 0 and use generic linker.  Otherwise, use ELF backend
1492         linker.
1493         (elf_backend_collect): If not defined, define as false.
1494         (elf_backend_add_symbol_hook): If not defined, define as 0.
1495         (elf32_bed): Initialize new fields.
1496         * elf64-target.h: Same changes as elf32-target.h.
1497         * elf32-i386.c: Include bfdlink.h.
1498         (elf_i386_relocate_section): New function.
1499         (elf_backend_relocate_section): Define.
1500         * elf32-sparc.c: Include bfdlink.h.
1501         (elf_info_to_howto): Change type of dst from Elf32_Internal_Rela
1502         to Elf_Internal_Rela (they're the same type anyhow).
1503         (elf_sparc_relocate_section): New function.
1504         (elf_backend_relocate_section): Define.
1505         * elf32-mips.c (elf_backend_collect): Define.
1506
1507         * Makefile.in (stmp-bfd.h): Avoid useless make error message in a
1508         different way; touch takes a numeric argument on some systems.
1509
1510 Fri May  6 13:34:14 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1511
1512         * nlmcode.h (nlm_swap_auxiliary_headers_in): Rework custom header
1513         handling for latest suggested format.
1514         (nlm_swap_auxiliary_headers_out): Likewise.
1515         (nlm_compute_section_file_positions): Likewise.
1516
1517 Fri May  6 11:11:50 1994  D. V. Henkel-Wallace  (gumby@rtl.cygnus.com)
1518
1519         * config.bfd: handle erricsson config (for OSE).
1520
1521 Thu May  5 15:40:47 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1522
1523         Patches from Ralph Campbell:
1524         * mipsbsd.c (mips_fix_jmp_addr): New function.
1525         (mips_fix_hi16_s): Use bfd_is_com_section.
1526         (mips_howto_table_ext): Call mips_fix_jmp_addr for MIPS_RELOC_JMP.
1527
1528 Fri May  6 11:48:55 1994  Steve Chamberlain  (sac@cygnus.com)
1529
1530         * config/go32.mh: XX support.
1531
1532         From bill
1533         * Makefile.in: Build sysdep.h without causing worrying but
1534         harmless error message.
1535
1536 Wed May  4 11:09:53 1994  Ian Lance Taylor  (ian@cygnus.com)
1537
1538         Changed m68k-aout to set flags to 0; m68k-sunos still uses 1.
1539         * aout0.c: New file.
1540         * targets.c (aout0_big_vec): Declare.
1541         (bfd_target_vector): Add aout0_big_vec.
1542         * config.bfd (m68*-*-aout*): Use m68k-0aout, not m68k-aout.
1543         * config/m68k-aout.mt (SELECT_VECS): Removed.
1544         * config/m68k-0aout.mt: New file.
1545         * configure.in (aout0_big_vec): New target vector: use aout0.o,
1546         aout32.o and stab-syms.o.
1547         * Makefile.in: Rebuilt dependencies.
1548         (BFD32_BACKENDS): Add aout0.o.
1549         (CFILES): Add aout0.c.
1550
1551         * libaout.h (struct aout_backend_data): Add field exec_hdr_flags.
1552         * aout-target.h (MY_exec_hdr_flags): If not defined, define as 0.
1553         MY(backend_data): Initialize exec_hdr_flags field.
1554         * aoutf1.h (sunos_32_set_arch_mach): Make static.
1555         (aout32_sunos4_write_object_contents): Set flags from backend
1556         info.
1557         (MY_exec_hdr_flags): If not defined, define as 1.
1558         (sunos4_aout_backend): Initialize exec_hdr_flags field.
1559         * aout-encap.c (encap_write_object_contents): Set flags from
1560         backend info.
1561         (MY_exec_hdr_flags): Define as N_FLAGS_COFF_ENCAPSULATE.
1562         * hp300hpux.c (MY_exec_hdr_flags): Define as 0x2.
1563         (MY(write_object_contents)): Set flags from backend info.
1564         * i386aout.c (MY(backend_data)): Initialize exec_hdr_flags field.
1565         * i386mach3.c (MY(backend_data)): Likewise.
1566         * mipsbsd.c (MY(backend_data)): Likewise.
1567         * sparclynx.c (NAME(aout,sparclynx_write_object_contents)): Set
1568         flags from backend info.
1569         (sparclynx_aout_backend): Initialize exec_hdr_flags field.
1570
1571 Wed May  4 02:56:00 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
1572
1573         * config.bfd (i386-*-gnu*): Treat like i386-*-mach*.
1574         (m68*-apollo-*): Treat all Apollo configs the same, don't handle
1575         BSD specially.
1576
1577 Tue May  3 19:43:21 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1578
1579         * cache.c: Rewrote to work correctly.
1580         * libbfd.h: Rebuilt.
1581         * opncls.c (bfd_cache_init, bfd_open_file): Don't declare.
1582         (bfd_fdopenr): Check return value of bfd_cache_init.
1583
1584 Fri Apr 29 15:08:23 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1585
1586         * cf-m68klynx.c (CALC_ADDEND): Check for PC relative relocs by
1587         enumerating them, since the reloc type can not serve as an index
1588         into the m68k COFF howto_table.
1589
1590 Fri Apr 29 09:42:39 1994  Steve Chamberlain  (sac@cygnus.com)
1591
1592         * config.bfd (*-go32): Changed to coff.
1593         * coff-h8300.c (JMPL1): Get HOWTO right for 24bit branches.
1594         * srec.c (srec_write_symbols): Write out the correct number of
1595         symbols and don't stick in extra nulls.
1596
1597 Tue Apr 26 15:07:24 1994  Stan Shebs  (shebs@andros.cygnus.com)
1598
1599         * cf-sparclynx.c (LYNXOS, COFF_LONG_FILENAMES): Define.
1600         * coff-sparc.c (BADMAG): Recognize LYNXCOFFMAGIC.
1601         (COFF_SPARC): Define.
1602         * coffcode.h (coff_new_section_hook): If COFF_SPARC, set alignment
1603         power of data and bss sections to 3.
1604         * hosts/lynx.h (__LYNXOS): Define.
1605
1606 Tue Apr 26 15:04:26 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
1607
1608         * elf32-hppa.c (hppa_elf_reloc): Adjust the addend of relocations
1609         against section symbols to avoid losing during ld -r.
1610
1611 Tue Apr 26 12:16:41 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1612
1613         * elfcode.h (shstrtab_length_fixed): Remove useless static
1614         variable.
1615         (struct elf_sect_data): Remove unused structure.
1616         (elf_object_p): Free memory if error occurs.  Check return value
1617         of bfd_default_set_arch_mach.  If elf_get_str_section fails,
1618         preserve error code rather than setting wrong_format.
1619         (null_shdr): Remove static variable.
1620         (assign_section_numbers): Remove shstrtab_length_fixed assignment.
1621         Allocate first section header on BFD obstack rather than using
1622         null_shdr.
1623         (bfd_prpsinfo): Remove unused local variable newsect.
1624
1625 Mon Apr 25 15:31:04 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1626
1627         * elfcode.h (write_relocs): Undo patch of Apr 10; breaks Solaris.
1628
1629         * elfcode.h (bfd_section_from_shdr): Use bfd_make_section_anyway
1630         to create sections.  Check return value of recursive calls.
1631         (bfd_section_from_phdr): Check return value of bfd_make_section.
1632         (elf_symbol_from_bfd_symbol): Likewise.
1633         (elf_object_p): Check return value of bfd_section_from_shdr.
1634         (section_from_elf_index): Likewise.
1635         (elf_slurp_symbol_table): Check return value of
1636         section_from_elf_index.
1637         (bfd_prstatus): Return boolean value.  Check return value of
1638         bfd_make_section.
1639         (bfd_fpregset): Likewise.
1640         (bfd_prpsinfo): Return boolean value.
1641         (elf_corefile_note): Check return values of bfd_prstatus,
1642         bfd_fpregset, and bfd_prpsinfo.
1643         (elf_core_file_p): Check return value of elf_corefile_note.
1644
1645 Fri Apr 22 11:08:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1646
1647         Get rid of the ECOFF .reginfo section hack.
1648         * ecoff.c (ecoff_mkobject_hook): Don't create a .reginfo section.
1649         (ecoff_new_section_hook): Don't handle the .reginfo section.
1650         (ecoff_sizeof_headers): Likewise.
1651         (ecoff_get_section_contents): Likewise.
1652         (ecoff_compute_section_file_positions): Likewise.
1653         (ecoff_compute_reloc_file_positions): Likewise.
1654         (ecoff_set_section_contents): Likewise.
1655         (ecoff_write_object_contents): Likewise.
1656         (ecoff_bfd_final_link): Likewise.
1657         (ecoff_bfd_copy_private_bfd_data): Copy the GP value and the
1658         register masks.
1659         (bfd_ecoff_get_gp_value): New function.
1660         (bfd_ecoff_set_gp_value): New function.
1661         (bfd_ecoff_set_regmasks): New function.
1662         * bfd-in.h (bfd_ecoff_get_gp_value): Declare.
1663         (bfd_ecoff_set_gp_value): Declare.
1664         (bfd_ecoff_set_regmasks): Declare.
1665         * bfd-in2.h: Rebuilt.
1666
1667         Fix ECOFF objcopy to actually copy debugging information.
1668         * ecoff.c (ecoff_bfd_copy_private_bfd_data): New function.
1669         (ecoff_get_extr): Assume that any ECOFF symbol with local clear is
1670         an external symbol, rather than checking the symbol flags.  Only
1671         check the flags for non-ECOFF symbols.
1672         * ecofflink.c (bfd_ecoff_debug_externals): Don't crash if the
1673         output_section field of the symbol section is NULL.
1674         * libecoff.h (ecoff_bfd_copy_private_bfd_data): Declare as
1675         function rather than defining as macro.
1676
1677         * ieee.c (ieee_object_p): Set bfd_error_got_wrong_format if
1678         appropriate.
1679
1680         * targets.c (bfd_target_vector): Add bfd_elf32_powerpc_vec.
1681
1682         * aout-adobe.c (aout_adobe_set_arch_mach): Check return value of
1683         bfd_default_set_arch_mach.  Accept bfd_arch_m68k as well as
1684         bfd_arch_unknown.
1685         * coffcode.h (coff_set_arch_mach): Check return value of
1686         bfd_default_set_arch_mach.
1687         * elfcode.h (elf_set_arch_mach): Don't check a list of ELF
1688         architectures, just see if the desired architecture matches what
1689         the ELF backend permits.
1690
1691         * coffcode.h (coff_set_arch_mach_hook): Rename SHMAGIC to
1692         SH_ARCH_MAGIC to match change in coff/sh.h.
1693         (coff_set_flags): Likewise.
1694
1695         Follow convention in which each NLM header has an 8 byte stamp
1696         followed by a four byte length.
1697         * libnlm.h (struct nlm_obj_tdata): Rename nlm_cygnus_section_hdr
1698         to nlm_cygnus_ext_header, and change type to
1699         Nlm_Internal_Cygnus_Ext_Header.
1700         (nlm_cygnus_ext_header): Rename from nlm_cygnus_section_header.
1701         * nlmcode.h (nlm_swap_auxiliary_headers_in): Use CyGnUsEx instead
1702         of CyGnUsSeCs.  Rename from cygnus_section to cygnus_ext.  Require
1703         length word to be 8.
1704         (nlm_swap_auxiliary_headers_out): Rename from cygnus_section to
1705         cygnus_ext.  Set length word to 8.
1706         (nlm_compute_section_file_positions): Rename from cygnus_section
1707         to cygnus_ext.
1708
1709 Thu Apr 21 22:54:22 1994  Stu Grossman  (grossman at cygnus.com)
1710
1711         * nlmcode.h (nlm_swap_auxiliary_headers_in):  Keep section table
1712         (from CyGnUsSeCs) in more permanent memory to keep section names
1713         from getting trashed.
1714
1715 Thu Apr 21 09:29:37 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
1716
1717         * libelf.h (elf_obj_tdata):  Add members for dynamic symbol table
1718         handling.
1719         * elfcode.h (bfd_section_from_shdr):  Handle dynamic symbol table.
1720         * elfcode.h (elf_slurp_symbol_table):  Take additional parameter
1721         to select static or dynamic symbol table and return number of
1722         symbols slurped or -1 on error.
1723         * elfcode.h (elf_get_symtab):  Set bfd symcount from
1724         elf_slurp_symbol_table result.
1725         * elfcode.h (elf_get_dynamic_symtab_upper_bound,
1726         elf_canonicalize_dynamic_symtab):  New functions to handle dynamic
1727         symbol table.
1728         * elf32-target.h, elf64-target.h (BFD_JUMP_TABLE_DYNAMIC):
1729         Change to handle dynamic symbol table, provide default definitions
1730         for dynamic relocs.
1731         * aoutx.h (howto_table_std, NAME(aout,swap_std_reloc_out),
1732         NAME(aout,swap_std_reloc_in), aout_link_input_section_std,
1733         aout_link_reloc_link_order):  Handle r_jmptable and r_relative
1734         relocations.
1735
1736 Thu Apr 21 11:58:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1737
1738         Clean up uses of _bfd_dummy_target (from Peter Schauer).
1739         * libbfd.c (_bfd_dummy_target): Set bfd_error_wrong_format.
1740         * nlm-target.h (nlm_core_file_p): Define as _bfd_dummy_target, not
1741         NULL.
1742         * srec.c (srec_vec): Use _bfd_dummy_target, not NULL, in
1743         _bfd_check_format.
1744         (symbolsrec_vec): Likewise.
1745         * tekhex.c (tekhex_vec): Likewise.
1746
1747         * libnlm.h (struct nlm_obj_tdata): Add nlm_cygnus_section_hdr
1748         field.
1749         (nlm_cygnus_section_header): New accessor macro.
1750         * nlmcode.h (nlm_object_p): Free new tdata structure if failure.
1751         Add fixed sections before swapping in auxiliary headers.  After
1752         adding sections, treat errors as real, not as wrong format.
1753         (nlm_swap_auxiliary_headers_in): Swap in the sections header; add
1754         sections to the BFD for each section it describes.
1755         (nlm_swap_auxiliary_headers_out): Swap out the sections header.
1756         (nlm_compute_section_file_positions): Account for the size of the
1757         sections header.
1758
1759 Wed Apr 20 16:45:51 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
1760
1761         * coff-sparc.c (sparccoff_vec): Change minimum alignment power to
1762         2, so that stab sections can be multiples of 4 bytes only.
1763
1764         * hosts/i386aix.h: Changes to avoid prototypes conflicts with the
1765         ones defined in stdlib.h.  (From Minh Tran-Le.)
1766
1767 Wed Apr 20 14:15:21 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1768
1769         * nlm32-ppc.c: Complete rewrite for new version of PowerPC
1770         NetWare.  Old code still present, but ifdeffed out.
1771
1772         * nlmcode.h (nlm_swap_auxiliary_headers_in): Don't assume a
1773         particular format for the customer header.  Allocate a block of
1774         memory and read it into that.
1775         (nlm_swap_auxiliary_headers_out): Write out the block of memory.
1776         (nlm_compute_section_file_positions): Include length of customer
1777         header when computing its size.
1778
1779 Mon Apr 18 14:27:17 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
1780
1781         * som.c (som_prep_headers): Get the space's number from the
1782         backend private section data rather than target_index.
1783         (bfd_som_set_section_attributes): Store the space's number
1784         in the backend private section data rather than target_index.
1785
1786         * som.h (som_copyable_section_data_struct): Add space_number.
1787
1788 Fri Apr 15 12:22:07 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1789
1790         * coff-a29k.c (reloc_processing): Always set the address of a
1791         R_IHCONST reloc to that of the immediately preceding R_IHIHALF.
1792         gas does this anyhow, but some other assemblers seem to leave
1793         garbage in the R_IHCONST address field.
1794
1795         * bfd/archive.c: Consistently use ARFMAG; from
1796         schwab@issan.informatik.uni-dortmund.de (Andreas Schwab).
1797         (_bfd_write_archive_contents): Use ARFMAG rather than '`' and
1798         '\012'.
1799         (bsd_write_armap): Likewise.
1800         (coff_write_armap): Likewise.
1801
1802         * coff-mips.c (mips_relocate_section): When relaxing, adjust local
1803         relocs against the .text section as required.
1804         * ecofflink.c (bfd_ecoff_debug_accumulate): When relaxing, adjust
1805         PDR addresses as required.
1806
1807         * ecoff.c (ecoff_emit_aggregate): Take fdr argument.  Map fdr
1808         index through rfd map if it exists.  Check for a couple of cases
1809         which gdb handles specially.  Change all callers.
1810         (ecoff_type_to_string): Take fdr argument rather than aux_ptr and
1811         bigendian argument.  Change all callers.
1812         (ecoff_print_symbol): Handle stStruct, stUnion and stEnum.
1813
1814 Thu Apr 14 13:05:10 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1815
1816         * coff-mips.c (mips_howto_table): Add dummy entries to account for
1817         numbering changes in include/coff/mips.h.  Add entries for
1818         MIPS_R_RELHI and MIPS_R_RELLO.
1819         (mips_ecoff_swap_reloc_in): Handle an extra bit for the reloc type
1820         when little endian.  Treat internal MIPS_R_RELLO or MIPS_R_RELHI
1821         relocs like MIPS_R_SWITCH, and convert r_offset from 24 to 32
1822         bits.
1823         (mips_ecoff_swap_reloc_out): Likewise.
1824         (mips_adjust_reloc_in): Handle internal MIPS_R_RELLO or
1825         MIPS_R_RELHI relocs like MIPS_R_SWITCH.
1826         (mips_adjust_reloc_out): Likewise.
1827         (mips_relhi_addr, mips_relhi_addend): New static variables.
1828         (mips_relhi_reloc, mips_rello_reloc): New functions.
1829         (mips_bfd_reloc_type_lookup): Turn BFD_RELOC_PCREL_HI16_S into
1830         MIPS_R_RELHI and turn BFD_RELOC_PCREL_LO16 into MIPS_R_RELLO.
1831         (mips_relocate_hi): Rename from mips_relocate_refhi, and add pcrel
1832         argument.  Changed all callers.
1833         (mips_relocate_section): Rename got_reflo to got_lo and
1834         reflo_int_rel to lo_int_rel.  Handle MIPS_R_RELLO and MIPS_R_RELHI
1835         relocs.
1836         (mips_relax_section): Adjust MIPS_R_RELHI/MIPS_R_RELLO pairs when
1837         expanding a PC relative call.
1838
1839         * reloc.c (bfd_reloc_code_real_type): Add BFD_RELOC_PCREL_HI16_S
1840         and BFD_RELOC_PCREL_LO16.
1841         * bfd-in2.h: Rebuilt.
1842
1843 Wed Apr 13 11:50:07 1994  Stan Shebs  (shebs@andros.cygnus.com)
1844
1845         * coff-sparc.c (sparccoff_vec): Set minimum alignment power to 3.
1846
1847 Tue Apr 12 13:36:20 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
1848
1849         * som.c (som_write_fixups): Always emit at least
1850         one relocation for any non-bss section.
1851
1852 Mon Apr 11 14:41:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1853
1854         * elfcode.h (assign_file_positions_except_relocs): Don't require
1855         the file alignment to correspond to the page size when linking
1856         with -N.
1857
1858 Sun Apr 10 01:02:24 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
1859
1860         * elfcode.h (write_relocs): For rela relocations, adjust the
1861         addend for relocations involving section symbols to account
1862         for the lossage of 1:1 mapping from input section symbols to
1863         output section symbols.
1864
1865 Fri Apr  8 12:22:02 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1866
1867         * aoutx.h (NAME(aout,make_sections)): New function.
1868         (NAME(aout,some_aout_object_p)): Call NAME(aout,make_sections)
1869         rather than making sections inline.
1870         (NAME(aout,mkobject)): Don't make any sections.
1871         (NAME(aout,adjust_sizes_and_vmas)): Call NAME(aout,make_sections).
1872         (NAME(aout,final_link)): Don't dereference obj_textsec (abfd) or
1873         obj_datasec (abfd) if they are NULL.
1874         * libaout.h (NAME(aout,make_sections)): Declare.
1875         * bout.c (b_out_mkobject): Don't make any sections.
1876         (b_out_write_object_contents): Call aout_32_make_sections.
1877         (b_out_set_section_contents): Likewise.
1878         * i386os9k.c (os9k_mkobject): Don't make any sections.
1879         (os9k_write_object_contents): Call aout_32_make_sections.
1880         (os9k_set_section_contents): Likewise.
1881
1882         * aoutx.h (NAME(aout,new_section_hook)): Don't set N_EXT in target
1883         index.
1884
1885 Wed Apr  6 20:44:56 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
1886
1887         * config.bfd, configure.host:  Add mips-*-sysv4* support.
1888
1889 Thu Apr  7 14:23:05 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1890
1891         * coff-mips.c (mips_howto_table): Add entry for MIPS_R_SWITCH.
1892         (mips_ecoff_swap_reloc_in): For MIPS_R_SWTICH, copy r_symndx into
1893         r_offset and set r_symndx to RELOC_SECTION_TEXT.
1894         (mips_ecoff_swap_reloc_out): For MIPS_R_SWITCH, get the r_symndx
1895         value from the r_offset field.
1896         (mips_adjust_reloc_in): Maximum r_type value is now MIPS_R_SWITCH.
1897         For MIPS_R_SWITCH, copy the r_offset field into the addend field.
1898         (mips_adjust_reloc_out): For MIPS_R_SWITCH, copy the addend field
1899         into the r_offset field.
1900         (mips_switch_reloc): New function.
1901         (mips_bfd_reloc_type_lookup): Translate BFD_RELOC_GPREL32 into
1902         MIPS_R_SWITCH.
1903         (mips_relocate_section): Handle MIPS_R_SWITCH.
1904         (mips_relax_section): Adjust MIPS_R_SWITCH offset if necessary.
1905
1906 Thu Apr  7 11:10:51 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
1907
1908         * elfcode.h (elf_set_section_contents): Support calling the backend
1909         function elf_backend_begin_write_processing when just beginning to
1910         write an object file.
1911
1912         * libelf.h (elf_backend_begin_write_processing): Declare.
1913
1914         * elf{32,64}-target.h (elf_backend_begin_write_processing): Provide
1915         a default definition.
1916         (elf{32,64}_bed): Add elf_backend_begin_write_processing.
1917         
1918         * elf32-hppa.h (elf_hppa_tc_symbol): Delete extern declaration.
1919         (elf_hppa_tc_make_sections): Likewise.
1920
1921         * elf32-hppa.c (symext_chain_built): Delete.
1922         (symext_chain_size): Renamed from symextn_contents_real_size.
1923         (elf32_hppa_backend_{begin,final}_write_processing): New functions.
1924         (add_entry_to_symext_chain): New function.
1925         (hppa_elf_set_section_contents): Ignore writes to the symbol extension
1926         section until it's been rebuilt internally.
1927         (hppa_elf_get_section_contents): Symbol extension section is no
1928         longer special.
1929         (elf_backend_{begin,final}_write_processing): Define.
1930         (elf_hppa_tc_make_sections): Simplify now that much code has
1931         migrated into elf32_hppa_backend_{being,final}_write_processing.
1932
1933 Wed Apr  6 17:24:14 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
1934
1935         Add new target vectors to read the dynamic symbols and dynamic
1936         relocs.  Change a.out to use these rather than reading the dynamic
1937         symbols and relocs along with the normal symbols and relocs.
1938         * targets.c (bfd_target): Add fields
1939         _bfd_get_dynamic_symtab_upper_bound,
1940         _bfd_canonicalize_dynamic_symtab,
1941         _bfd_get_dynamic_reloc_upper_bound,
1942         _bfd_canonicalize_dynamic_reloc.
1943         (BFD_JUMP_TABLE_DYNAMIC): Define.
1944         * libbfd-in.h (_bfd_nodynamic_get_dynamic_symtab_upper_bound):
1945         Define.
1946         (_bfd_nodynamic_canonicalize_dynamic_symtab): Define.
1947         (_bfd_nodynamic_get_dynamic_reloc_upper_bound): Define.
1948         (_bfd_nodynamic_canonicalize_dynamic_reloc): Define.
1949         * bfd.c (bfd_get_dynamic_symtab_upper_bound): Define.
1950         (bfd_canonicalize_dynamic_symtab): Define.
1951         (bfd_get_dynamic_reloc_upper_bound): Define.
1952         (bfd_canonicalize_dynamic_reloc): Define.
1953         * sunos.c (MY_read_dynamic_symbols): Don't define.
1954         (MY_read_dynamic_relocs): Don't define.
1955         (MY_get_dynamic_symtab_upper_bound): Define.
1956         (MY_canonicalize_dynamic_symtab): Define.
1957         (MY_get_dynamic_reloc_upper_bound): Define.
1958         (MY_canonicalize_dynamic_reloc): Define.
1959         (struct sunos_dynamic_info): Change type of dynsym_count and
1960         dynrel_count to long.  Add fields canonical_dynsym and
1961         canonical_dynrel.
1962         (sunos_read_dynamic_info): Check that BFD had DYNAMIC flag set.
1963         Clear info->canonical_dynsym and info->canonical_dynrel.
1964         (MY(read_dynamic_symbols)): Removed.
1965         (MY(read_dynamic_relocs)): Removed.
1966         (sunos_get_dynamic_symtab_upper_bound): New function.
1967         (sunos_canonicalize_dynamic_symtab): New function.
1968         (sunos_get_dynamic_reloc_upper_bound): New function.
1969         (sunos_canonicalize_dynamic_reloc): New function.
1970         * libaout.h: Declare struct reloc_ext_external and
1971         reloc_std_external to avoid prototype problems.
1972         (struct aout_backend_data): Remove fields read_dynamic_symbols and
1973         read_dynamic_relocs.
1974         (NAME(aout,translate_symbol_table)): Declare.
1975         (NAME(aout,swap_ext_reloc_in)): Declare.
1976         (NAME(aout,swap_std_reloc_in)): Declare.
1977         * aoutx.h (NAME(aout,translate_symbol_table)): Renamed from
1978         translate_symbol_table and made non-static.  Changed all callers.
1979         (NAME(aout,slurp_symbol_table)): Don't read dynamic symbols.
1980         (NAME(aout,slurp_reloc_table)): Don't read dynamic relocs.
1981         (NAME(aout,get_reloc_upper_bound)): Don't count dynamic relocs.
1982         * aoutf1.h (aout_32_sunos4_write_object_contents): Don't bother to
1983         remove dynamic symbols and relocs.  They will no longer be
1984         present.
1985         (MY_read_dynamic_symbols): Don't define.
1986         (MY_read_dynamic_relocs): Don't define.
1987         (sunos4_aout_backend): Don't initialize dynamic entry points.
1988         * aout-target.h (MY_read_dynamic_symbols): Don't define.
1989         (MY_read_dynamic_relocs): Don't define.
1990         (MY(backend_data)): Don't initialize dynamic entry points.
1991         (MY_get_dynamic_symtab_upper_bound): If not defined, define to
1992         _bfd_nodynamic version.
1993         (MY_canonicalize_dynamic_symtab): Likewise.
1994         (MY_get_dynamic_reloc_upper_bound): Likewise.
1995         (MY_canonicalize_dynamic_reloc): Likewise.
1996         * All backends: Added BFD_JUMP_TABLE_DYNAMIC to target vector.
1997         * bfd-in2.h: Rebuilt.
1998         * libbfd.h: Rebuilt.
1999
2000         * cf-m68klynx.c: Include sysdep.h.
2001
2002         * hp300hpux.c: Removed some spaces in uses of NAME to avoid
2003         problems with traditional C compilers.
2004
2005         * targets.c (bfd_target): Rearranged fields in target vector.
2006         Removed _bfd_debug_info_start, _bfd_debug_info_end and
2007         _bfd_debug_info_accumulate, which were never used.
2008         (BFD_JUMP_TABLE_GENERIC, BFD_JUMP_TABLE_COPY): Defined.
2009         (BFD_JUMP_TABLE_CORE, BFD_JUMP_TABLE_ARCHIVE): Defined.
2010         (BFD_JUMP_TABLE_SYMBOLS, BFD_JUMP_TABLE_RELOCS): Defined.
2011         (BFD_JUMP_TABLE_WRITE, BFD_JUMP_TABLE_LINK): Defined.
2012         * All backends: Changed to use the new BFD_JUMP_TABLE_* macros
2013         rather than the single JUMP_TABLE macro.  Removed many of the
2014         weird macro definitions needed to support the monolithic
2015         JUMP_TABLE.
2016         * bfd-in.h (JUMP_TABLE): Removed.
2017         * libbfd-in.h: Define a bunch of macros, and declare a few
2018         functions, for use with the new BFD_JUMP_TABLE_* macros.
2019         * libbfd.c (_bfd_dummy_new_section_hook): Removed.
2020         (bfd_false): Set bfd_error_invalid_operation.
2021         (bfd_nullvoidptr): Likewise.
2022         (bfd_n1): New function.
2023         (_bfd_nocore_core_file_matches_executable_p): Renamed from
2024         _bfd_dummy_core_file_matches_executable_p.
2025         (_bfd_nocore_core_file_failing_command): Similar rename.  Set
2026         bfd_error_invalid_operation.
2027         (_bfd_nocore_core_file_failing_signal): Likewise.
2028         (_bfd_generic_get_section_contents): Renamed from
2029         bfd_generic_get_section_contents.  Changed all callers.
2030         (_bfd_generic_set_section_contents): Similar rename.
2031         * ieee.c: #if 0 out ieee_bfd_debug_info_start,
2032         ieee_bfd_debug_info_end, ieee_bfd_debug_info_accumulate.  They
2033         were never called.
2034         * bfd-in2.h: Rebuilt.
2035         * libbfd.h: Rebuilt.
2036
2037 Tue Apr  5 22:10:04 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2038
2039         * Crude support for examining dynamic libraries.
2040         * som.c (som_object_setup): Set DYNAMIC flag for SHL_MAGIC and
2041         DL_MAGIC objects.
2042         (som_prep_headers): Preserve the system_id for DYNAMIC objects.
2043         Use SHL_MAGIC as the magic number of the DYNAMIC flag is set.
2044         Write exec headers for DYNAMIC objects.
2045         (som_begin_writing): DYNAMIC objects have the same alignment
2046         restrictions as D_PAGED objects.
2047         (bfd_section_from_som_symbol): Treat DYNAMIC objects like EXEC_P
2048         objects.
2049         (object_flags): Add DYNAMIC.
2050
2051 Tue Apr  5 17:48:52 1994  Stan Shebs  (shebs@andros.cygnus.com)
2052
2053         * i386lynx.c, sparclynx.c (NAME): Remove embedded whitespace in
2054         macro uses, confuses some non-ANSI compilers.
2055
2056 Tue Apr  5 15:50:01 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2057
2058         * som.c (som_bfd_free_cached_info): Add missing PARAMS decl.
2059         Don't free anything if we don't have a bfd_object.
2060         (som_close_and_cleanup): Call som_bfd_free_cached_info.
2061
2062 Tue Apr  5 11:22:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2063
2064         * elf32-mips.c (mips_elf_final_link): Don't remove empty sections.
2065         It turns out not to be required on Irix 5, and it causes problems
2066         if the sections happen to contain symbols.
2067
2068         * elfcode.h (write_shdrs_and_ehdr): Correct bfd_write check.
2069
2070         * aoutx.h (NAME(aout,canonicalize_reloc)): Don't error out if
2071         section->relocation is NULL; malloc might have returned NULL when
2072         given a zero size if there were no relocations.
2073         * bout.c (b_out_canonicalize_reloc): Likewise.
2074         * coffcode.h (coff_canonicalize_reloc): Likewise.
2075         * ecoff.c (ecoff_canonicalize_reloc): Likewise.
2076         * elfcode.h (elf_canonicalize_reloc): Likewise.
2077         * mipsbsd.c (MY(canonicalize_reloc)): Likewise.
2078         * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
2079         * nlmcode.h (nlm_canonicalize_reloc): Likewise.
2080         * som.c (som_canonicalize_reloc): Likewise.
2081         * hp300hpux.c (MY(slurp_reloc_table)): Likewise.  Also, if malloc
2082         returns NULL, don't report an error if we asked for zero bytes.
2083         * i386lynx.c (NAME(lynx,slurp_reloc_table)): If malloc returns
2084         NULL, don't report an error if we asked for zero bytes.
2085         * nlmcode.h (nlm_slurp_reloc_fixups): Likewise.
2086
2087 Mon Apr  4 15:30:49 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2088
2089         * aoutx.h (NAME(aout,bfd_free_cached_info)): Don't free anything
2090         if we don't have a bfd_object.
2091
2092         Made sure that every call to bfd_read, bfd_write, and bfd_seek
2093         checks the return value and handled bfd_error correctly.  These
2094         changes are not itemised.  Also:
2095         * aoutx.h (emit_strtab): Change return type to boolean, and return
2096         errors.
2097         (NAME(aout,write_syms)): Check emit_strtab return value.
2098         (NAME(aout,final_link)): Likewise.
2099         * coffcode.h (coff_write_relocs): Change return type to boolean,
2100         and return errors.
2101         (coff_write_object_contents): Check coff_write_relocs return
2102         value.
2103         * i386os9k.c (os9k_swap_exec_header_in): Change return type to
2104         boolean.
2105         (os9k_object_p): Check os9k_swap_exec_header_in return value.
2106         * oasys.c (oasys_read_record): Change return type to boolean.
2107         (oasys_slurp_symbol_table: Check oasys_read_record return value.
2108         (oasys_object_p, oasys_slurp_section_data): Likewise.
2109         (oasys_write_record): Change return type to boolean.
2110         (oasys_write_syms): Likewise.  Also, check oasys_write_record
2111         return value.
2112         (oasys_write_sections): Check oasys_write_record return value.
2113         (oasys_write_header): Change return type to boolean.  Check
2114         oasys_write_record return value.
2115         (oasys_write_end, oasys_write_data): Likewise.
2116         (oasys_write_object_contents): Check return values of
2117         oasys_write_header, oasys_write_syms, oasys_write_data, and
2118         oasys_write_end.
2119         * srec.c (srec_write_record): Change return type to boolean.
2120         (srec_write_header): Likewise.  Also, check srec_write_record
2121         return value.
2122         (srec_write_section, srec_write_terminator): Likewise.
2123         (srec_write_symbols): Change return type to boolean.
2124         (internal_srec_write_object_contents): Check return value of
2125         srec_write_symbols, srec_write_header, srec_write_section, and
2126         srec_write_terminator.
2127
2128         * Makefile.in: Rebuilt dependencies.
2129
2130 Mon Apr  4 10:56:45 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
2131
2132         * aix386-core.c (aix386_bfd_is_local_label):  Correct cast from
2133         asection to asymbol.
2134         * ptrace-core.c (ptrace_unix_bfd_is_local_label):  Correct cast from
2135         bfd to asymbol.
2136         * trad-core.c (trad_unix_bfd_is_local_label):  Correct cast from
2137         asection to asymbol.
2138
2139 Sun Apr  3 18:27:29 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2140
2141         * som.c (som_slurp_string_table): Use malloc to allocate space
2142         for the cached copy of the native string table.
2143         (som_slurp_symbol_table): Likewise for the native symbol table.
2144         (som_slurp_reloc_table): Likewise for the native and generic
2145         relocation tables.
2146         (som_bfd_free_cached_info): Free the cached native strings,
2147         symbols, and relocations.  Also free the canonical cached
2148         relocations.
2149
2150 Fri Apr  1 12:40:58 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2151
2152         * aoutx.h (aout_link_write_symbols): If keep_memory is false, make
2153         sure the symbol name is stored in permanent memory before adding
2154         it to the string table.
2155
2156         * archive.c (_bfd_write_archive_contents): Once we've found an
2157         object, don't bother to look for more when deciding whether to
2158         build a map.
2159         (compute_and_write_armap): After adding the symbols for a BFD,
2160         call bfd_free_cached_info on it.
2161
2162         Add bfd_free_cached_info support to a.out backends.
2163         * aoutx.h (aout_get_external_symbols): Renamed from
2164         aout_link_get_symbols.  Read strings even if symbols have been
2165         read.  Store string size in obj_aout_string_size.
2166         (NAME(aout,slurp_symbol_table)): Call aout_get_external_symbols to
2167         read the symbols.  Allocate the cached symbols with malloc, not
2168         bfd_alloc.
2169         (NAME(aout,slurp_reloc_table)): Allocate the cached relocs with
2170         malloc, not bfd_alloc.
2171         (NAME(aout,bfd_free_cached_info)): New function; free cached
2172         symbols and relocs.
2173         * libaout.h (struct aoutdata): Add external_string_size field.
2174         (obj_aout_external_string_size): New accessor macro.
2175         (NAME(aout,close_and_cleanup)): Don't declare.
2176         (NAME(aout,bfd_free_cached_info)): Declare.
2177         (aout_32_close_and_cleanup): Don't define.
2178         (aout_64_close_and_cleanup): Don't define.
2179         * aout-target.h (MY_bfd_free_cached_info): If not already defined,
2180         define as NAME(aout,free_cached_info).
2181         (MY_close_and_cleanup): If not already defined, define as
2182         MY_bfd_free_cached_info.
2183         * aout-adobe.c (aout_32_close_and_cleanup): Define.
2184         (aout_32_bfd_free_cached_info): Don't define.
2185         * bout.c (aout_32_close_and_cleanup): Define.
2186         (aout_32_bfd_free_cached_info): Don't define.
2187         * hp300hpux.c (MY_bfd_free_cached_info): Define as bfd_true.
2188         (MY_close_and_cleanup): Don't define.
2189         * i386lynx.c (NAME(lynx,slurp_reloc_table)): Allocate the cached
2190         relocs with malloc, not bfd_alloc.
2191         * i386os9k.c (aout_32_close_and_cleanup): Define.
2192         (aout_32_bfd_free_cached_info): Don't define.
2193
2194         Add a new entry point to free memory cached by a BFD.
2195         * targets.c (bfd_target): Add _bfd_free_cached_info field.
2196         * bfd.c (bfd_free_cached_info): Define.
2197         * bfd-in.h (JUMP_TABLE): Add _bfd_free_cached_info.
2198         * bfd-in2.h: Rebuilt.
2199         * All backends: Initialize bfd_free_cached_info entry point to
2200         bfd_true.
2201
2202         * elf32-hppa.c (elf_hppa_reloc_type_lookup): Correct type of
2203         first, unused, argument.
2204         (hppa_elf_is_local_label): Declare instead of
2205         som_bfd_is_local_label.
2206
2207         * coff-a29k.c (a29k_reloc): Add reloc_entry->address to value of
2208         absolute R_IREL reloc.
2209
2210 Thu Mar 31 11:52:15 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2211
2212         Added some support for Irix 4 shared libraries.
2213         * ecoff.c (ecoff_new_section_hook): Set SEC_SHARED_LIBRARY for a
2214         .lib section.
2215         (ecoff_sec_to_styp_flags): Set SEC_SHARED_LIBRARY if
2216         STYP_ECOFF_LIB bit is set.
2217         (ecoff_compute_section_file_positions): Round the contents of a
2218         .lib section up to the next page boundary.
2219         (ecoff_set_section_contents): If we see a .lib section, increment
2220         the vma by one to count the number of shared libraries we have.
2221         (ecoff_write_object_contents): Don't crash if we see a
2222         STYP_ECOFF_LIB section, and don't adjust text_start or data_start
2223         or bss_size either.
2224
2225         * coffcode.h (CALC_ADDEND): Change to fetch original symbol value
2226         from original BFD, rather than using value of current BFD symbol.
2227         Needed for new linker.
2228         * coff-sparc.c (CALC_ADDEND): Likewise.
2229
2230         * ecoff.c (ecoff_write_object_contents): Set the text_start and
2231         data_start entries in the optional header correctly even if a text
2232         or data section starts at location zero.
2233
2234         * reloc.c (bfd_reloc_code_real_type): Added BFD_RELOC_26 (from sef
2235         and raeburn).
2236         * bfd-in2.h: Rebuilt.
2237
2238         * nlm32-i386.c (nlm_i386_read_import): Null terminate the symbol
2239         name.
2240         * nlm32-alpha.c (nlm_alpha_read_import): Likewise.
2241         * nlm32-sparc.c (nlm_sparc_read_import): Likewise.
2242
2243         * coffgen.c (coff_write_symbol): Reindented.  Changed to return
2244         boolean, and changed written to unsigned int *.  Check error
2245         returns from called functions.
2246         (coff_write_alien_symbol): Likewise.
2247         (coff_write_native_symbol): Likewise.
2248         (coff_write_symbols): Likewise.  Reworked checks on whether to
2249         write symbol name to string table for clarity and to avoid core
2250         dumping when given a non COFF symbol.
2251         * libcoff-in.h (coff_write_symbols): Declare as returning boolean.
2252         * libcoff.h: Rebuilt.
2253         * coffcode.h (coff_write_object_contents): Check return value of
2254         coff_write_symbols.
2255
2256 Wed Mar 30 16:25:41 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2257
2258         Changes to let BFD return an error indication from
2259         get_symtab_upper_bound, bfd_canonicalize_symtab,
2260         bfd_get_reloc_upper_bound, and bfd_canonicalize_reloc.  They now
2261         return long instead of unsigned int, and use -1 to indicate an
2262         error.  Along the way, rename get_symtab_upper_bound to
2263         bfd_get_symtab_upper_bound.
2264         * bfd.c (bfd_get_reloc_upper_bound): Return long, and -1 on
2265         errors.
2266         (bfd_canonicalize_reloc): Likewise.
2267         * syms.c (bfd_get_symtab_upper_bound): Renamed from
2268         get_symtab_upper_bound.
2269         * targets.c (bfd_target): Renamed _get_symtab_upper_bound to
2270         _bfd_get_symtab_upper_bound, and changed it and
2271         _bfd_canonicalize_symtab and _get_reloc_upper_bound and
2272         _bfd_canonicalize_reloc to all return long.
2273         * aoutx.h (NAME(aout,get_symtab)): Return long, and -1 on errors.
2274         (NAME(aout,canonicalize_reloc)): Likewise.
2275         (NAME(aout,get_reloc_upper_bound)): Likewise.
2276         (NAME(aout,get_symtab_upper_bound)): Likewise.
2277         * bout.c (b_out_canonicalize_reloc): Likewise.
2278         (b_out_get_reloc_upper_bound): Likewise.
2279         * coffcode.h (coff_canonicalize_reloc): Likewise.
2280         * coffgen.c (coff_get_symtab_upper_bound): Likewise.
2281         (coff_get_symtab): Likewise.
2282         (coff_get_reloc_upper_bound): Likewise.
2283         * ecoff.c (ecoff_get_symtab_upper_bound): Likewise.
2284         (ecoff_get_symtab): Likewise.
2285         (ecoff_canonicalize_reloc): Likewise.
2286         * elfcode.h (elf_get_symtab_upper_bound): Likewise.
2287         (elf_get_reloc_upper_bound): Likewise.
2288         (elf_canonicalize_reloc): Likewise.
2289         (elf_get_symtab): Likewise.
2290         * hp300hpux.c (MY(get_symtab)): Likewise.
2291         (MY(get_symtab_upper_bound)): Likewise.
2292         (MY(canonicalize_reloc)): Likewise.
2293         * i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
2294         * ieee.c (ieee_slurp_external_symbols): Change return type to
2295         boolean.  Check for errors from get_symbol.
2296         (ieee_slurp_symbol_table): Change return type to boolean.  Check
2297         for errors from ieee_slurp_external_symbols.
2298         (ieee_get_symtab_upper_bound): Return long, and -1 on errors.
2299         (ieee_get_symtab): Likewise.
2300         (ieee_get_reloc_upper_bound): Likewise.
2301         (ieee_canonicalize_reloc): Likewise.
2302         * mipsbsd.c (MY(canonicalize_reloc)): Likewise.
2303         * nlmcode.h (nlm_get_symtab_upper_bound): Likewise.
2304         (nlm_get_symtab): Likewise.
2305         (nlm_get_reloc_upper_bound): Likewise.
2306         (nlm_canonicalize_reloc): Likewise.
2307         * oasys.c (oasys_get_symtab_upper_bound): Likewise.
2308         (oasys_get_symtab): Likewise.
2309         (oasys_get_reloc_upper_bound): Likewise.
2310         (oasys_canonicalize_reloc): Likewise.
2311         * som.c (som_get_symtab_upper_bound): Likewise.
2312         (som_get_symtab): Likewise.
2313         (som_get_reloc_upper_bound): Likewise.
2314         (som_canonicalize_reloc): Likewise.
2315         * srec.c (srec_get_symtab_upper_bound): Likewise.
2316         (srec_get_symtab): Likewise.
2317         (srec_get_reloc_upper_bound): Define as bfd_0l.
2318         (srec_canonicalize_reloc): Likewise.
2319         * tekhex.c (tekhex_get_symtab): Return long, and -1 on errors.
2320         (tekhex_get_symtab_upper_bound): Likewise.
2321         (tekhex_get_reloc_upper_bound): Define as bfd_0l.
2322         (tekhex_canonicalize_reloc): Likewise.
2323         * libaout.h (NAME(aout,get_symtab_upper_bound)): Change
2324         declaration to return long.
2325         (NAME(aout,get_symtab)): Likewise.
2326         (NAME(aout,canonicalize_reloc)): Likewise.
2327         (NAME(aout,get_reloc_upper_bound)): Likewise.
2328         * libcoff-in.h (coff_get_symtab_upper_bound): Likewise.
2329         (coff_get_symtab): Likewise.
2330         (coff_get_reloc_upper_bound): Likewise.
2331         * libecoff.h (ecoff_get_symtab_upper_bound): Likewise.
2332         (ecoff_get_symtab): Likewise.
2333         (ecoff_canonicalize_reloc): Likewise.
2334         * libelf.h (bfd_elf32_get_symtab_upper_bound): Likewise.
2335         (bfd_elf32_get_symtab): Likewise.
2336         (bfd_elf32_get_reloc_upper_bound): Likewise.
2337         (bfd_elf32_canonicalize_reloc): Likewise.
2338         (bfd_elf64_get_symtab_upper_bound): Likewise.
2339         (bfd_elf64_get_symtab): Likewise.
2340         (bfd_elf64_get_reloc_upper_bound): Likewise.
2341         (bfd_elf64_canonicalize_reloc): Likewise.
2342         * libnlm.h (nlmNAME(get_symtab_upper_bound)): Likewise.
2343         (nlmNAME(get_symtab)): Likewise.
2344         (nlmNAME(get_reloc_upper_bound)): Likewise.
2345         (nlmNAME(canonicalize_reloc)): Likewise.
2346         * archive.c (compute_and_write_armap): Use error_return and
2347         no_memory_return labels rather than freeing information in various
2348         places.  Change storage, symcount and src_count to long.  Check
2349         errors from bfd_get_symtab_upper_bound and
2350         bfd_canonicalize_symtab.
2351         * bout.c (b_out_relax_section): Change reloc_size to long.  Check
2352         for errors from bfd_get_reloc_upper_bound and
2353         bfd_canonicalize_reloc.
2354         (b_out_get_relocated_section_contents): Likewise.
2355         * coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
2356         Likewise.
2357         * elf32-mips.c: Likewise.
2358         * elf32-hppa.c (hppa_elf_stub_finish): Likewise.
2359         (hppa_look_for_stubs_in_section): Check for errors from
2360         bfd_get_symtab_upper_bound, bfd_canonicalize_symtab, and
2361         bfd_canonicalize_reloc.
2362         * ecofflink.c (bfd_ecoff_debug_accumulate_other): Check for errors
2363         from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
2364         * linker.c (generic_link_read_symbols): Likewise.
2365         (_bfd_generic_final_link): Check for errors from
2366         bfd_get_reloc_upper_bound and bfd_canonicalize_reloc.
2367         * reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
2368         * reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
2369         (bfd_coff_reloc16_get_relocated_section_contents): Likewise.
2370         * libbfd.c (bfd_0l): New function.
2371         * libbfd-in.h (bfd_0l): Declare.
2372         * aix386-core.c: Change get_symtab_upper_bound, get_symtab,
2373         get_reloc_upper_bound, and canonicalize_reloc to use bfd_0l rather
2374         than bfd_0u.
2375         * cisco-core.c, hppabsd-core.c, hpux-core.c: Likewise.
2376         * irix-core.c, osf-core.c, ptrace-core.c, trad-core.c: Likewise.
2377         * bfd-in2.h: Rebuilt.
2378         * libbfd.h: Rebuilt.
2379         * libcoff.h: Rebuilt.
2380
2381         * nlm32-sparc.c (nlm_sparc_read_reloc): Remove unused variables
2382         temp and name.
2383
2384 Wed Mar 30 08:33:04 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
2385
2386         * hosts/dpx2.h: Define POSIX_UTIME.
2387
2388 Wed Mar 30 00:31:49 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
2389
2390         * i386dynix.c, config/i386-dynix.mt:  New files, handling Dynix
2391         variant of a.out.
2392         * configure.in, config.bfd:  Use them for Dynix.
2393         * Makefile.in:  Add dependencies for i386dynix.o. 
2394         * targets.c:  Add definition for i386dynix_vec.
2395         * hosts/symmetry.h:  Do not define TRAD_CORE_USER_OFFSET for Dynix.
2396         Define HOST_DATA_START_ADDR and TRAD_UNIX_CORE_FILE_FAILING_SIGNAL
2397         for Dynix. Remove inclusion of dynix3.h, Dynix bfd is now handled by
2398         i386dynix.c
2399
2400 Mon Mar 28 12:53:27 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2401
2402         * Makefile.in (BFD32_BACKENDS): Add coff-sparc.o.
2403
2404         * coffcode.h (coff_set_flags): Handle bfd_arch_powerpc like
2405         bfd_arch_rs6000.
2406
2407         * config.bfd (powerpc-*-aix*): New target; use rs6000.mt.
2408         * config/rs6000.mt (SELECT_ARCHITECTURES): Add bfd_powerpc_arch.
2409
2410         * aoutx.h (translate_from_native_sym_flags): Set SEC_RELOC flag
2411         for generated constructor section.
2412
2413 Sun Mar 27 16:25:22 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2414
2415         * som.c (som_begin_writing): New approach at dealing with holes
2416         in executables left by the HP linker.  Does not rely on subspace
2417         alignments as subspaces are *NOT* guaranteed to be properly
2418         aligned in an executable (can you believe that!).
2419
2420 Sat Mar 26 10:25:43 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2421
2422         * som.c (som_get_section_contents): New function.  Do not try
2423         to actually read data from a section that doesn't have either
2424         SEC_LOAD or SEC_DEBUGGING set (eg $BSS$) just return true.
2425
2426         * libbfd.c (bfd_read): Set bfd_error as appropriate for a short
2427         read. (bfd_error_system_call or bfd_error_file_truncated).
2428
2429         * som.c: Do not blindly set bfd_error_system_call after a
2430         failing bfd_read, bfd_write, or bfd_seek.  In a few places
2431         (like som_object_p) override the error status set by bfd_read.
2432
2433         * aix386-core.c, aout-encap,c archive.c, bout.c: Likewise.
2434         * coff-rs6000.c, coffgen.c ecoff.c, elf.c: Likewise.
2435         * elf32-hppa.c, elfcode.h, hp300hpux.c, i386lynx.c: Likewise.
2436         * nlm32-alpha.c, nlm32-i386.c, nlm32-sparc.c: Likewise.
2437
2438         * som.c: Check return values from several bfd_{seek,read,write}
2439         calls that we just assumed were not failing.
2440
2441 Fri Mar 25 11:44:06 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
2442
2443         * hosts/sysv4.h (HAVE_PROCFS): Add comments about ptx4.
2444         * config/sysv4.mh: Add comment.
2445         * config/symmetry.mh: Change comment.
2446         * configure.host: Use sysv4, not symmetry, for i[34]86-sequent-sysv4*.
2447
2448 Fri Mar 25 17:10:45 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2449
2450         Changes to support linker relaxing of embedded MIPS PIC code to
2451         use a five instruction sequence for function calls which are out of
2452         range of the bal instruction.
2453         * libecoff.h (struct ecoff_section_tdata): Define.
2454         (ecoff_section_data): Define.
2455         (ecoff_bfd_relax_section): Don't define.
2456         * ecoff.c (ecoff_final_link_debug_accumulate): Don't read or free
2457         the debugging information if it has already been read.
2458         (ecoff_indirect_link_order): Handle _cooked_size being different
2459         from _raw_size.  Don't reread the contents or the relocs if they
2460         have already been read in.
2461         * coff-mips.c (mips_howto_table): Change bitsize of PCREL16 from
2462         18 to 16.
2463         (PCREL16_EXPANSION_ADJUSTMENT): Define.
2464         (mips_relocate_refhi): Take adjust argument.
2465         (mips_relocate_section): Handle reloc offsets stored in section
2466         used_by_bfd field.  Call mips_relax_pcrel16 to handle details of
2467         expanding an out of range PCREL16.  Keep trace of adjustments
2468         required by expansions.  Set s and unset h when converting a reloc
2469         from undefined to section.  Change handling of PC relative relocs:
2470         if against a section, they are correct in the object file, if
2471         against an external symbol they are pcrel_offset.
2472         (mips_relax_section): New function.
2473         (mips_relax_pcrel16): New function.
2474         (ecoff_bfd_relax_section): Define.
2475         * coff-alpha.c (ecoff_bfd_relax_section): Define.
2476         * ecofflink.c (bfd_ecoff_debug_accumulate): Handle adjustments
2477         built by mips_relax_section when writing out addresses.
2478         * elf32-mips.c (mips_elf_read_ecoff_info): Clear adjust field.
2479
2480         * aoutx.h (NAME(aout,find_nearest_line)): The caller expects
2481         functionname_ptr to be set to a symbol name, so prepend
2482         symbol_leading_char.
2483
2484 Thu Mar 24 11:33:46 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
2485
2486         * coff-h8300.c (h8300_reloc16_extra_cases): Add relaxing info
2487         for 16bit relative branches.
2488         * coff-h8500.c (r_high8, r_low16, r_high16): Don't complain on
2489         overflow.
2490
2491 Thu Mar 24 09:21:13 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2492
2493         * som.c (som_bfd_prep_for_ar_write): Ignore non-SOM objects.
2494         (som_bfd_ar_write_symbol_stuff, som_write_armap): Likewise.
2495
2496 Wed Mar 23 14:29:31 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
2497
2498         * netbsd386.c (N_SET_FLAGS): Delete the old definition.
2499
2500 Wed Mar 23 14:58:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2501
2502         Clean up the relaxing code for the new linker.
2503         * targets.c (_bfd_relax_section): Take boolean *again argument
2504         rather than asymbol list.
2505         * bfd.c (bfd_relax_section): Change name of fourth argument from
2506         symbols to again.
2507         * reloc.c (bfd_generic_relax_section): Take boolean *again
2508         argument rather than asymbol list.  Always return true.
2509         * bout.c: Include genlink.h.
2510         (aligncode, perform_slip): Declare.
2511         (perform_slip): Take BFD argument rather than asymbol list.
2512         Changed all callers.  Get the symbols from the BFD.  Change the
2513         hash table entry value as well as the symbol value.
2514         (abs32code): Take BFD argument rather than asymbol list.  Changed
2515         all callers.
2516         (aligncode): Likewise.
2517         (b_out_relax_section): Take boolean *again argument rather than
2518         asymbol list.  Only return false if an error occurred.  Set *again
2519         to false.  Get symbols from BFD.
2520         * reloc16.c: Include genlink.h.
2521         (bfd_perform_slip): Take BFD argument rather than asymbol list.
2522         Get the symbols from the BFD.  Change the hash table entry value
2523         as well as the symbol value.
2524         (bfd_coff_reloc16_relax_section): Take boolean *again argument
2525         rather than asymbol list.  Only return false if an error occurred.
2526         Set *again to false.  Get symbols from BFD.
2527         * coffcode.h (bfd_coff_backend_data): Change
2528         _bfd_coff_reloc16_estimate to take BFD argument rather than
2529         asymbol list.
2530         (bfd_coff_reloc16_estimate): Corresponding change.
2531         (dummy_reloc16_estimate): Corresponding change.
2532         * libcoff-in.h (bfd_coff_reloc16_relax_section): Change
2533         declaration to take boolean * rather than asymbol list.
2534         (bfd_perform_slip): Change declaration to take BFD rather than
2535         asymbol list.
2536         * coff-h8300.c (h300_reloc16_estimate): Take BFD argument rather
2537         than asymbol list.  Changed calls to bfd_perform_slip.
2538         * bfd-in2.h: Rebuilt.
2539         * libbfd.h: Rebuilt.
2540         * libcoff.h: Rebuilt.
2541         * Makefile.in: Rebuilt dependencies.
2542
2543         * genlink.h (_bfd_generic_link_get_symbols): Define.
2544         (_bfd_generic_link_get_symcount): Define.
2545         * linker.c (generic_link_read_symbols): New function.
2546         (generic_link_add_object_symbols): Use it.  Use
2547         _bfd_generic_link_get_symbols and _bfd_generic_link_get_symcount
2548         to get the symbols from the BFD.
2549         (generic_link_check_archive_element): Likewise.
2550         (_bfd_generic_final_link): Likewise.
2551         (_bfd_generic_link_output_symbols): Likewise.
2552         (default_indirect_link_order): Likewise.
2553         (generic_link_add_symbol_list): Store pointer to hash table entry
2554         in asymbol udata field.
2555
2556 Tue Mar 22 13:09:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2557
2558         * coff-mips.c (mips_howto_table): Add entry for new MIPS_R_PCREL16
2559         reloc, used in embedded PIC code.
2560         (mips_adjust_reloc_in): Change sanity check to permit new reloc.
2561         (mips_bfd_reloc_type_lookup): Turn BFD_RELOC_16_PCREL_S2 into
2562         MIPS_R_PCREL16.
2563
2564         * elf32-mips.c (mips_elf_final_link): Account for link_order
2565         relocs when allocating space for relocations.  Set SEC_RELOC flag
2566         for any section which has relocs.  Handle link_order relocs in
2567         link_order loop.  Use _bfd_generic_link_add_symbols_collect for
2568         add_symbls entry point.
2569
2570         * linker.c (_bfd_generic_final_link): Set reloc_count to 0 before
2571         counting relocs.  Set SEC_RELOC flag for any section which has
2572         relocs.
2573
2574         * linker.c (_bfd_default_link_order): Handle bfd_data_link_order.
2575
2576         * linker.c (_bfd_generic_link_add_symbols): Just call
2577         generic_link_add_symbols.
2578         (_bfd_generic_link_add_symbols_collect): New function, like
2579         _bfd_generic_link_add_symbols but also collect constructors and
2580         destructors by name as collect2 does.
2581         (generic_link_add_symbols): New function, like old
2582         _bfd_generic_link_add_symbols but with collect argument.
2583         (generic_link_add_object_symbols): Take collect argument.
2584         (generic_link_check_archive_element_no_collect): New function.
2585         (generic_link_check_archive_element_collect): New function.
2586         (generic_link_check_archive_element): Take collect argument.
2587         (generic_link_add_symbol_list): Take collect argument.
2588         (_bfd_generic_link_add_one_symbol): Rename constructor argument to
2589         collect.
2590         * libbfd-in.h (_bfd_generic_link_add_symbols_collect): Declare.
2591         * libbfd.h: Rebuilt.
2592
2593 Tue Mar 22 10:04:00 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2594
2595         * archive.c (bfd_construct_extended_name_table): Use ar_padchar
2596         for first character in an extended name.
2597         (_bfd_write_archive_contents): If ar_padchar == '/', then use
2598         "//" as the name of the special archive member holding the
2599         extended name table.
2600
2601 Mon Mar 21 12:28:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2602
2603         Support for link_order types which generate relocs in order to
2604         support -Ur in the linker.
2605         * linker.c (generic_link_add_symbol_list): Remove bitsize argument
2606         from call to _bfd_generic_link_add_one_symbol.
2607         (_bfd_generic_link_add_one_symbol): Remove bitsize argument.
2608         Don't pass bitsize to constructor call back.  Pass BFD_RELOC_CTOR
2609         instead of bitsize to add_to_set call back.
2610         (_bfd_generic_final_link): Account for link_order relocs when
2611         allocating space for relocations.  Handle them in link_order loop.
2612         (_bfd_generic_reloc_link_order): New function.
2613         (_bfd_default_link_order): If a reloc_link_order is seen here,
2614         abort.
2615         (_bfd_count_link_order_relocs): New function.
2616         * libbfd-in.h (_bfd_generic_link_add_one_symbol): Remove bitsize
2617         argument from declaration.
2618         (_bfd_generic_reloc_link_order): Declare.
2619         (_bfd_count_link_order_relocs): Declare.
2620         * libbfd.h: Rebuilt.
2621         * aoutx.h (aout_link_add_symbols): Remove bitsize argument from
2622         call to _bfd_generic_link_add_one_symbol.
2623         (NAME(aout,final_link)): Account for link_order relocs when
2624         allocating space for relocations.  Handle them after handling all
2625         input BFDs.
2626         (aout_link_reloc_link_order): New function.
2627         * ecoff.c (ecoff_link_add_externals): Remove bitsize argument from
2628         call to _bfd_generic_link_add_one_symbol.
2629         (ecoff_bfd_final_link): Account for link_order relocs when
2630         allocating space for relocations.  Handle them in link_order loop.
2631         (ecoff_link_write_external): Set the storage class of a defined
2632         linker created symbol based on the section it is in.  Correct
2633         bfd_link_hash_weak case to use .sc rather than .st.
2634         (ecoff_reloc_link_order): New function.
2635         * coff-alpha.c (alpha_bfd_reloc_type_lookup): Handle
2636         BFD_RELOC_CTOR.
2637         * coff-mips.c (mips_bfd_reloc_type_lookup): Likewise.
2638
2639         * sunos.c (sunos_read_dynamic_info): Remove unused locals dynsym
2640         and buf.
2641
2642         * cisco-core.c (cisco_core_file_p): Only pass one argument to
2643         bfd_zmalloc.  Free a pointer, not a union.
2644         (cisco_bfd_is_local_label): Correct cast from asection to asymbol.
2645
2646 Sun Mar 20 09:24:36 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2647
2648         * bfd/som.c (som_begin_writing): Fix thinko (off by one error).
2649
2650         * som.c (bfd_section_from_som_symbol): Only to do the value
2651         comparison for function symbols within executables.
2652
2653         * som.c (bfd_section_from_som_symbol): Renamed from
2654         som_section_from_subspace_index.  Pass in a native SOM symbol.
2655         For executables, iterate through the sections to find out
2656         which contains the symbol's address rather than using the
2657         symbol_info field.  (symbol_info has a different meaning for
2658         dynamicly linked executables.)
2659
2660         * trad-core.c (trad_unix_core_file_p): Don't pass abfd to
2661         bfd_zmalloc.
2662
2663         * som.c (som_begin_writing): Fix braino (one call to align
2664         space/subspace data was done unconditionally rather than
2665         just for executables.)
2666
2667         * som.c (som_begin_writing): Align text in all executables to
2668         make HPUX kernel happy.  Fixes strip/objcopy for shared
2669         executables.
2670
2671 Sat Mar 19 07:06:59 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2672
2673         * som.c (som_begin_writing): Account for alignment needs of
2674         subspaces too when writing executables.  Never request a negative
2675         bss size.  Fixes some problems with demand paged executables,
2676         still having problems with pure executables and shared executables.
2677
2678 Fri Mar 18 19:12:47 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
2679
2680         * trad-core.c (trad_unix_core_file_p): Call bfd_zmalloc not
2681         bfd_zalloc for rawptr, because later on we may call free, not
2682         bfd_release, on it.
2683
2684         * bfd.c (struct _bfd): Add cisco_core_struct to tdata union.
2685         * libbfd.c (bfd_read, bfd_seek): Add comments regarding errors.
2686         * cisco-core.c: New file.
2687         * Makefile.in: Change accordingly.
2688         * configure.in: Recognize cisco_core_vec.
2689         * config/m68k-aout.mt (SELECT_VECS): Add cisco_core_vec.
2690         * targets.c: Add cisco_core_vec.
2691         * bfd-in2.h: Rebuilt.
2692
2693 Fri Mar 18 18:13:49 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2694
2695         * som.h (som_copyable_section_data_struct): New structure
2696         containing all the private section information which needs
2697         to be copied from input section to output section during
2698         objcopy or strip.
2699         (som_section_data_struct): Remove several fields now in
2700         som_copyable_section_data_struct.  Make the space and 
2701         subspace dictionaries be pointers (to save space when
2702         only reading objects).
2703
2704         * som.c (bfd_som_set_section_attributes): Now returns a boolean;
2705         some references changed.  Allocate a copyable data stucture if
2706         none exists.  Store info into the copyable data structure.
2707         (bfd_som_set_subsection_attributes): Likewise.
2708         (som_is_space, som_is_subspace, som_is_container): New functions.
2709         Use these instead of directly accessing private data.
2710         (som_prep_headers): Allocate space and subspace headers here.
2711         Fill in some fields in the space/subspace headers from the
2712         copyable data.
2713         (som_bfd_copy_private_section_data): Only copy the stuff
2714         that we really need to make objcopy and strip work.  Allocate
2715         the copy_data structure for the output bfd before copying.
2716
2717         * som.h (struct som_exec_data): New structure to hold exec
2718         info that must be preserved when running objcopy/strip.
2719         (struct somdata): Add new "exec_data" field and accessor
2720         macro.  Add some comments on how the various fields are used.
2721         (som_section_data_struct): Make is_space and is_subspace bitfields.
2722         Delete unused subspace_index.  All references now use the
2723         target_index field within the section structure itself.
2724
2725         * som.c (make_unique_section): Delete unused declaration.
2726         (som_bfd_copy_private_bfd_data): New function.
2727         (som_object_setup): Allocate space for and save exec information
2728         that needs to be copied during objcopy/strip.
2729         (som_mkobject): Do not allocate space for a file header here.
2730         It is not used when only reading SOM objects.
2731         (som_prep_headers): Allocate space for and attach a file header
2732         to the output bfd.  For executables, use the saved system_id
2733         value rather than trying to guess the right value.  Do not abort
2734         wwhen setting file_hdr->entry* for executables.
2735         (som_begin_writing): For executables, set the exec_entry and
2736         exec_flags fields.
2737         (som_copy_private_backend_section_data): Always return a value.
2738
2739         * libhppa.h (PA_PAGESIZE): Define.
2740
2741         * som.c (SOM_ALIGN): Define.
2742         (som_begin_writing): If writing an executable, initialize all
2743         fields in the exec header to zero.  Update fields in the exec
2744         header as sizes of loadable subspaces are computed.  Carefully
2745         preserve alignments when building executables.  Actually write the
2746         exec after all the fields are filled in.
2747
2748         * Better long-filename handling.  Reads SOM ABI compliant extended
2749         names, but doesn't quite write compliant extended names yet.
2750         * som.c (som_slurp_extended_name_table): Delete function.  The
2751         generic code will handle things correctly.
2752         (som_slurp_armap): Seek to the beginning of the next member.
2753         (normalize): New function.
2754         (som_bfd_ar_write_symbol_stuff): Take the size of the extended
2755         name table into account when computing the file offsets in the
2756         SOM dictionary.  Make sure to align to an even boundary.
2757         (som_write_armap): Initialize the checksum to zero.
2758         (ar_maxchars): Fix.  Opps.
2759
2760 Fri Mar 18 20:35:24 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
2761
2762         * aoutx.h (reloc_type_lookup): Handle BFD_RELOC_CTOR on a 64-bit
2763         machine.  Handle BFD_RELOC_SPARC13 and BFD_RELOC_SPARC_BASE13.
2764
2765 Thu Mar 17 18:26:46 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
2766
2767         * bfd-in.h (BFD_VERSION): Use @VERSION@.
2768         * Makefile.in (bfd.h): Replace it with contents of VERSION file.
2769         * bfd-in2.h: Regenerated.
2770
2771         * trad-core.c (trad_unix_bfd_is_local_label): Fixed typo where
2772         this was also named trad_unix_bfd_copy_private_bfd_data.
2773
2774 Thu Mar 17 10:37:07 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
2775
2776         * aoutx.h, elfcode.h, coff-alpha.c, bout.c, ecoff.c, ecofflink.c,
2777         elf32-hppa.c, elf32-mips.c, linker.c, som.c, sunos.c: If malloc(0)
2778         returns NULL, it is not an error.  It's possible that some of
2779         these checks are not necessary (because the size can never be
2780         zero), but putting in the checks is the conservative thing to do
2781         in light of the fact that some of these malloc calls replaced
2782         unchecked alloca calls, in which a zero argument would work fine.
2783
2784 Thu Mar 17 11:44:45 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2785
2786         * osf-core.c (osf_core_bfd_copy_private_bfd_data): Remove
2787         duplicate definition.
2788         (osf_core_bfd_is_local_label): Define.
2789
2790         * reloc.c (bfd_generic_get_relocated_section_contents): Don't fail
2791         if malloc (0) fails.  bfd_canonicalize_reloc returning 0 is not a
2792         failure indication, it merely means there are no relocs.
2793
2794         * elfcode.h (NAME(bfd_elf,write_object_contents)): Don't use space
2795         after NAME, since SunOS /bin/cc can't handle it.
2796
2797 Wed Mar 16 16:43:33 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
2798
2799         * netbsd386.c (N_SET_FLAGS): Don't nuke the machine id field.
2800         From sukes@glue.umd.edu (Tasuki Hirata).
2801
2802 Wed Mar 16 07:55:54 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
2803
2804         * aoutf1.h (4 places): Use a simple #if on ARCH_SIZE, rather than
2805         all that convoluted stuff with NAME, CAT3, etc.  The convoluted
2806         stuff broke for SunOS4 /bin/cc (due to DEFUN elimination, I guess).
2807
2808 Wed Mar 16 00:02:05 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2809
2810         * som.c (som_prep_for_fixups): Detect section symbols based
2811         on either the lack of private data or the symbol flags.  Do not
2812         munge section symbol names anymore -- they no longer confuse GDB.
2813         (som_begin_writing): Leave space for an exec header if writing
2814         an executable.
2815         (som_slurp_symbol_table): Recognize both forms of section symbol
2816         names "L$0\002" and "$<FOO>$".  Change the name of "L$0\002"
2817         section symbols to be the name of the section they represent.
2818         Debugging  symbols begin with "L$0\001", not just "L$".
2819
2820 Tue Mar 15 22:58:28 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2821
2822         * bfd-in2.h, libbfd.h, libcoff.h: Rebuilt.
2823
2824         * bfd-in.h (JUMP_TABLE): Add new entries to the jump table
2825         for bfd_copy_private_section_data, bfd_copy_private_bfd_data,
2826         and bfd_is_local_label.
2827
2828         * targets.c: Add new entries to the bfd_target structure.
2829         
2830         * bfd.c (bfd_copy_private_bfd_data): New definition.
2831
2832         * section.c (bfd_copy_private_section_data): New definition.
2833
2834         * syms.c (bfd_is_local_label): New definition.
2835
2836         * libbfd-in.h (bfd_generic_is_local_label): Declare.
2837
2838         * libbfd.c (bfd_generic_is_local_label): New function.
2839
2840         * *-core.c: Provide default definitions for new functions in
2841         the target vector which all point to bfd_false.
2842
2843         * aout-target.h, coffcode.h, elf32-target.h elf64-target.h, ieee.c
2844         libaout.h, libecoff.h, nlm-target.h, oasys.c, srec.c, tekhex.c
2845         Default new vectors for copying private backend data to bfd_true.
2846         Default new vector for determining if a symbol is a local label
2847         to bfd_generic_is_local_label.
2848
2849         * som.c (som_bfd_copy_private_section_data): New function.
2850         (som_bfd_is_local_label): New function.
2851         (som_bfd_copy_private_bfd_data): For now default to bfd_true.
2852
2853         * elf32-hppa.c (hppa_elf_is_local_label): New function.
2854
2855 Tue Mar 15 23:55:47 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2856
2857         * cf-m68klynx.c (CALC_ADDEND): Use _bfd_m68klynx_howto_table.
2858
2859 Tue Mar 15 04:41:13 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
2860
2861         * Most files:
2862         Replace DEFUN and DEFUN_VOID with K&R-style function definition.
2863         Indent some of them to GNU standards.
2864
2865         * aout32.c, archures.c, core.c, cpu-h8300.c, cpu-i960.c,
2866         cpu-m68k.c, cpu-m88k.c, cpu-mips.c, cpu-vax.c, ctor.c, demo64.c,
2867         elf32-hppa.h, gen-aout.c, host-aout.c, init.c, libhppa.h,
2868         libieee.h, liboasys.h, newsos3.c, som.h, stab-syms.c, sunos.c:
2869         Update copyright years.
2870
2871 Mon Mar 14 11:41:23 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2872
2873         * som.c (som_prep_for_fixups): A relocation involving the section
2874         symbol for the *ABS* section is really a relocation involving
2875         no symbol.
2876         (som_slurp_symbol_table): Do not set BSF_GLOBAL or BSF_EXPORT for
2877         undefined symbols.  Correctly distinguish between debugger symbols
2878         and section symbols.
2879
2880         * som (setup_sections): Set SEC_DEBUGGING and the section attributes
2881         for spaces and subspaces.
2882
2883         * som.c (som_bfd_count_ar_symbols): Fix typo.
2884
2885         * som.c (som_object_setup): Set EXEC_P, D_PAGED, WP_TEXT, and
2886         HAS_RELOC based on the object's magic number.
2887         (make_unique_section): Delete function.  BFD and its users are
2888         prepared to handle multiple sections with the same name.
2889         (setup_sections): Allocate space on the BFD's obstack to hold
2890         section names.  Use bfd_make_setion_anyway rather than the
2891         obsolete make_unique_section.
2892         (som_prep_headers): Choose the correct SOM magic number based
2893         on the BFD's flags.
2894         (som_bfd_fill_in_ar_symbols): Return false, not NULL on error.
2895
2896 Sat Mar 12 09:46:09 1994  Ian Lance Taylor  (ian@cygnus.com)
2897
2898         * elf32-ppc.c: Renamed from elf32-powerpc.c.
2899         * nlm32-ppc.c: Renamed from nlm32-powerpc.c.
2900         * Makefile.in, configure.in: Corresponding changes.
2901
2902 Fri Mar 11 22:27:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
2903
2904         * elf32-powerpc.c: Extensive changes to update to preliminary ABI.
2905
2906 Fri Mar 11 00:34:59 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
2907
2908         * sunos.c (sunos_read_dynamic_info):  Assume that dynamic info
2909         is always located at the start of the data section to allow
2910         recovery of the dynamic info from a stripped executable.
2911         * ecoff.c (ecoff_styp_to_sec_flags):  Handle STYP_PDATA, STYP_XDATA
2912         and STYP_COMMENT.
2913
2914 Wed Mar  9 17:17:53 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
2915
2916         * libbfd-in.h: Remove alloca cruft.  It was missing some necessary
2917         cruft (like the #pragma alloca for AIX).
2918         In addition to that problem, the C alloca calls xmalloc, which
2919         means checking for being out of memory can't work right.  The
2920         following changes remove all uses of alloca from BFD.
2921         * hosts/solaris2.h: Remove alloca cruft.
2922         * som.c: Replace alloca with a fixed size auto array.
2923         * aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c,
2924         ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c,
2925         sunos.c: Replace alloca with malloc and appropriate error checking and
2926         freeing.
2927         * linker.c: Replace alloca with obstack_alloc.
2928         * libbfd.h: Rebuilt.
2929
2930 Tue Mar  8 12:10:38 1994  Ian Lance Taylor  (ian@cygnus.com)
2931
2932         * coff-mips.c (mips_relocate_section): Handle MIPS_R_LITERAL like
2933         MIPS_R_GPREL.
2934
2935 Sat Mar  5 14:08:54 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
2936
2937         * elf32-hppa.h, elfcode.h:  Replace uses of Elf*_Half, Elf*_Word,
2938         Elf*_Off typedefs by their expansion, the typedefs have been
2939         removed from include/elf/internal.h.
2940         * elfcode.h (bfd_section_from_shdr):  Handle SHT_DYNAMIC section like
2941         SHT_PROGBITS section.
2942
2943 Thu Mar  3 20:03:39 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2944
2945         * som.h (_PA_RISC_ID): Treat HOST_HPPAOSF just like HOST_HPPABSD.
2946
2947 Wed Mar  2 13:28:06 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)
2948
2949         * configure.host: Recognize i[34]86-sequent-*.
2950
2951         * trad-core.c (trad_unix_core_file_p): A non-zero, not zero,
2952         return from bfd_seek indicates an error.
2953         New macro TRAD_CORE_DSIZE_INCLUDES_TSIZE to replace
2954         TRAD_CORE_STACK_OFFSET.
2955         * hosts/symmetry.h: Define TRAD_CORE_DSIZE_INCLUDES_TSIZE and
2956         TRAD_CORE_USER_OFFSET but not HOST_STACK_OFFSET.
2957
2958 Wed Mar  2 11:57:03 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
2959
2960         * som.[ch]: Do not include libhppa.h in som.c, instead include
2961         it in som.h.
2962
2963         * elf32-hppa.[ch]: Do not include libhppa.h in elf32-hppa.c, instead
2964         include it in elf32-hppa.h.
2965
2966         * som.c (log2): Return -1 on error rather than aborting.
2967         (setup_sections): Bubble up an error from log2.
2968
2969         * Changes to make HP C compiler happy in both traditional
2970         and ANSI mode.
2971         * som.c (hppa_som_gen_reloc_type): Use correct enum type for
2972         field parameter.
2973         (bfd_som_set_section_attributes): Use unsigned int rather than
2974         unsigned char to avoid GNU-C extensions.
2975         (bfd_som_attach_aux_hdr): Return a boolean to indicate success
2976         or failure rather than aborting on failure.
2977
2978         * som.h (bfd_som_set_section_attributes): Fix prototype to match
2979         som.c changes.
2980         (bfd_som_attach_aux_hdr): Add prototype.
2981         (hppa_som-gen_reloc_type): Likewise.
2982
2983         * elf32-hppa.c: Add a couple casts to make HP compiler happy.
2984         (hppa_look_for_stubs_in_section): Do not return false on failure
2985         until rest of code is ready to handle it.  Abort for now.
2986
2987 Tue Mar  1 18:33:59 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)
2988
2989         * bfd-in2.h: Rebuilt.
2990
2991 Tue Mar  1 13:06:53 1994  Kung Hsu  (kung@mexican.cygnus.com)
2992
2993         * i386os9k.c: use new functions bfd_set_error and bfd_get_error.
2994         * Makefile.in: delete an extra blank.
2995         * configure.in : Add i396os9k_vec.
2996
2997 Mon Feb 28 15:41:01 1994  Kung Hsu  (kung@mexican.cygnus.com)
2998
2999         * config.bfd : Add i386-os9k.
3000         * config/i386-os9k.mt : Newly add os9k target makefile.
3001
3002         * i386os9k.c : new file to handle os9k format bfd.
3003         * Makefile.in : Handle new file i386os9k.c
3004         * targets.c : Add bfd_target_os9k_flavour and i386os9k_vec.
3005         * cache.c : Initialize cache_sentinel to 0.
3006
3007 Sun Feb 27 16:30:55 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3008
3009         * elf32-hppa.c (mismatches, retval_mismatches): Fix mismatch
3010         action in case where caller specified no argument relocation.
3011         (hppa_elf_build_linker_stub): Try again to get the sym_ptr_ptr
3012         right in the original relocation and the stub's relocation.
3013
3014         * elf32-hppa.h (hppa_look_for_stub_in_section): Fix typo.  Delete
3015         unused symbols argument.
3016
3017         * elf32-hppa.c (hppa_elf_stub_reloc): Accept asymbol ** rather
3018         than asymbol * for original target symbol.  All callers changed.
3019         Set reloc->sym_ptr_ptr appropriately.
3020         (hppa_elf_build_linker_stub): Set reloc->sym_ptr_ptr correctly.
3021         (hppa_elf_look_for_stubs_in_section): No longer need symbols
3022         argument.  Use the output symbols when canonicalizing the relocs,
3023         creating them if necessary.
3024
3025         * linker.c (_bfd_generic_link_output_symbols): Do not
3026         rebuild/clobber the output symbols if they already exist.
3027
3028 Sun Feb 27 15:22:36 1994  Stan Shebs  (shebs@andros.cygnus.com)
3029
3030         * targets.c (BFD_SEND, BFD_SEND_FMT): Add debugging versions that
3031         check all the pointer dereferences.  Enabled via DEBUG_BFD_SEND.
3032         * bfd-in2.h: Rebuilt.
3033
3034         * srec.c (hex_value): Always set to a size of 256 bytes.
3035         (srec_init): Cosmetic changes.
3036
3037 Sun Feb 27 11:18:47 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3038
3039         * elf32-hppa.c: Second half of major cleanup.  More comments,
3040         PARAMize and staticize rest of functions.  Delete unused
3041         functions.  Delete unused/unnecessary arguments to some functions.
3042         Group static vars together.  Abort for bad errors until we have
3043         error code propogation working.  Work on spacing and indention.
3044         Add FIXMEs for unresolved problems.  Use enums rather than
3045         #defines for lots of things.  Merge two functions which build
3046         linker stubs into a single function (so they can easily share a
3047         ton of common code).
3048
3049 Sat Feb 26 10:00:45 1994  Ian Lance Taylor  (ian@cygnus.com)
3050
3051         * reloc.c (_bfd_relocate_contents): Adjust handling of overflow to
3052         avoid depending upon right shifts of signed numbers, and to
3053         correct handling of src_mask with lower bits zero.
3054
3055         * aoutx.h, archive.c: Add casts to avoid warnings from SVR4 cc.
3056         * ecoff.c, ecofflink.c, ecoffswap.h, srec.c: Likewise.
3057         * elf32-i386.c: Likewise.
3058         * elfcode.h (bfd_section_from_shdr): Make i unsigned; remove old
3059         #if 0 code.
3060         (elf_write_phdrs): Make i unsigned.
3061         (map_program_segments): Make i and n_left unsigned.
3062         (assign_file_positions_except_relocs): Make i unsigned.
3063         (write_shdrs_and_ehdr): Make count unsigned.
3064         (assign_file_positions_for_relocs): Make i unsigned.
3065         (NAME(bfd,elf_write_object_contents)): Make count unsigned.
3066         (section_from_elf_index): Make index argument unsigned.
3067
3068 Fri Feb 25 21:34:58 1994  Ian Lance Taylor  (ian@cygnus.com)
3069
3070         * elfcode.h: Don't include assert.h.
3071         (swap_out_syms): Use BFD_ASSERT rather than assert.
3072
3073         * linker.c (_bfd_generic_link_write_global_symbol): Add missing
3074         break in switch.
3075
3076         * hosts/i386v4.h (qsort, strtol): Remove incorrect and useless
3077         declarations.
3078
3079 Fri Feb 25 16:35:57 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3080
3081         * libhppa.h (hppa_rebuild_insn): Moved here from elf32-hppa.c.
3082
3083         * elf32-hppa.h (elf_hppa_tc_symbol): Add new arguments.
3084         (elf_hppa_tc_make_sections): Likewise.
3085         (elf_hppa_final_processing): Add extern decl.
3086
3087         * elf32-hppa.c: First half of major cleanup.  Add/cleanup lots of
3088         comments.  PARAMize some static functions.  Delete unused functions.
3089         Delete unused/unnecessary arguments to many functions.  Group
3090         static vars together.  Collapse common case statements together
3091         in many places.  Use default case when possible instead of listing
3092         each case separately.  Abort for bad errors until we get error
3093         code propogation working.  Work on spacing and indention problems.
3094         Add FIXMEs for some unresolved problems.  Delete hopelessly broken 
3095         COMPLEX relocation support (it's never used anyway).
3096         (hppa_elf_rebuild_insn): Delete.  Moved into libhppa.h.
3097         (elf_hppa_tc_symbol): Accept and use new arguments (symext chains).
3098         (elf_hppa_tc_make_sections): Likewise.
3099
3100         * format.c (bfd_check_format_matches): Initialize matching_vector
3101         to keep gcc -Wall quiet.
3102
3103         * elfcode.h (elf_slurp_reloca_table): Fix typo.
3104
3105         * som.c (som_get_symtab_upper_bound): Use "sizeof (asymbol *)"
3106         not "sizeof (som_symbol_type *)".
3107
3108         * elfcode.h (elf_get_symtab_upper_bound): Use "sizeof (asymbol *)"
3109         not "sizeof (asymbol").  Opps.
3110
3111 Fri Feb 25 13:19:04 1994  Ted Lemon  (mellon@pepper.ncd.com)
3112
3113         * bfd.c (bfd_get_gp_size): Can't return gp value on an archive.
3114         (bfd_set_gp_size):  Can't set gp value on an archive.
3115
3116 Fri Feb 25 12:57:00 1994  Steve Chamberlain  (sac@jonny.cygnus.com)
3117
3118         * srec.c (pass_over): Don't skip too many characters when
3119         end of line seen.
3120
3121 Fri Feb 25 11:41:57 1994  Ian Lance Taylor  (ian@cygnus.com)
3122
3123         * ecoff.c (ecoff_sizeof_headers): Align result to 16 byte
3124         boundary.
3125
3126 Thu Feb 24 07:13:22 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3127
3128         * som.c (som_bfd_derive_misc_symbol_info): Derive symbol_info
3129         field for absolute symbols in the same manner as undefined
3130         and common symbols.
3131
3132 Thu Feb 24 04:29:19 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
3133
3134         * elfcode.h (elf_core_file_p):  Check for core file e_machine match
3135         like in elf_object_p.
3136
3137 Wed Feb 23 18:28:37 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3138
3139         * elfcode.h (alloca): Delete declaration.
3140
3141         * som.c (som_prep_headers): Use CPU_PA_RISC1_0 for magic
3142         number rather than HP9000S800_ID.  Note som.c is careful
3143         to make sure CPU_PA_RISC1_0 is always defined.
3144
3145 Mon Feb 21 10:12:02 1994  Stan Shebs  (shebs@andros.cygnus.com)
3146
3147         * Makefile.in (targets.o, archures.o): Use ALL_CFLAGS to supply
3148         flags to explicit compile actions.
3149
3150 Mon Feb 21 09:50:06 1994  Ian Lance Taylor  (ian@lisa.cygnus.com)
3151
3152         * ecofflink.c (ecoff_write_symhdr): Set symhdr->magic here.
3153         * ecoff.c (ecoff_write_object_contents): Make sure .bss section
3154         ends on a page boundary if there is no symbol table.
3155         (ecoff_bfd_final_link): Don't set symhdr->magic here.
3156
3157         * hosts/hp300.h: Include <stdlib.h>; don't declare free.
3158
3159         * som.c (som_bfd_count_ar_symbols): Use a pointer and alloca
3160         rather than an array of variable size.
3161         (som_bfd_fill_in_ar_symbols): Likewise.
3162         (som_bfd_ar_write_symbol_stuff): Likewise.
3163
3164         * coff-alpha.c (alpha_relocate_section): Rewrite mask and shift
3165         operation to avoid OSF 1.3 cc bug.
3166         * ecoff.c (ecoff_write_object_contents): Make text_size, data_size
3167         and bss_size bfd_size_type instead of unsigned long.  Make
3168         text_start and data_start bfd_vma instead of unsigned long.
3169         * ecofflink.c (ecoff_add_string): Remove incorrect cast of return
3170         value.
3171
3172 Sun Feb 20 16:06:54 1994  Ian Lance Taylor  (ian@lisa.cygnus.com)
3173
3174         * linker.c (_bfd_generic_link_add_archive_symbols): Consider
3175         symbols in the order they appear in the archive map.
3176
3177 Sat Feb 19 03:17:32 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
3178
3179         * coff-alpha.c (reloc_nil):  Add forward declaration, add missing
3180         error_message argument.
3181         * coff-sparc.c (bfd_coff_generic_reloc):  Add forward declaration,
3182         add missing error_message argument.
3183         * mipsbsd.c (mips_fix_hi16_s):  Add forward declaration, add missing
3184         error_message argument.
3185
3186 Fri Feb 18 11:41:58 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3187
3188         Support for PowerPC NetWare.
3189         * nlm32-powerpc.c: New file.
3190         * config.bfd (powerpc-*-netware*): New target; use ppc-nlm.
3191         * config/ppc-nlm.mt: New file.
3192         * configure.in (nlm32_powerpc_vec): New target vector; use
3193         nlm32-powerpc.o, nlm32.o, nlm.o.
3194         * targets.c (nlm32_powerpc_vec): Declare.
3195         * Makefile.in (BFD32_BACKENDS): Add nlm32-powerpc.o.
3196         (CFILES): Add nlm32-powerpc.c.
3197
3198         Initial support for PowerPC ELF.  Done without an ABI, and
3199         probably to be changed when I get an ABI.
3200         * config.bfd (powerpc-*-sysv4*): New target; use ppc-elf.
3201         * config/ppc-elf.mt: New file.
3202         * configure.in (bfd_elf32_powerpc_vec): New target vector; use
3203         elf32-powerpc.o, elf32.o, elf.o.
3204         * elf32-powerpc.c: New file.
3205         * elfcode.h (prep_headers): Add bfd_arch_powerpc case.
3206         (elf_set_arch_mach): Likewise.
3207         * targets.c (bfd_elf32_powerpc_vec): Declare.
3208         * Makefile.in (BFD32_BACKENDS): Add elf32-powerpc.o.
3209         (CFILES): Add elf32-powerpc.c.
3210         Rebuilt dependencies.
3211
3212 Thu Feb 17 15:29:55 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3213
3214         * coffgen.c (coff_write_linenumbers): Always return a value.
3215
3216         * elfcode.h (elf_slurp_symbol_table): Handle zero symbols
3217         reasonably.  Allocate x_symp using alloca.
3218
3219         * elfcode.h (map_program_segments): ELF program header entries
3220         must be sorted by load address.  This used to generate the entries
3221         in reverse order.
3222
3223         * section.c (SEC_IN_MEMORY): Define.
3224         (asection): Rename unused field otheruserdata to contents, and
3225         make it char *.
3226         (bfd_make_section_anyway): Initialize contents field to NULL.
3227         (bfd_get_section_contents): If SEC_IN_MEMORY is set, get section
3228         contents from contents field rather than from file.
3229         * bfd-in2.h: Rebuilt.
3230
3231 Thu Feb 17 08:30:53 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3232
3233         * bfd.c (bfd_get_error, bfd_set_error): New functions.
3234         (bfd_error): Make static.
3235         (bfd_error_type): Renamed from bfd_ec.  Prepend "bfd_error_" to
3236         all values.
3237         * bfd-in2.h: Regenerated.
3238         * aix386-core.c, aout-adobe.c, aout-encap.c, aout-target.h, 
3239         aoutf1.h, aoutx.h, archive.c, archures.c, 
3240         bfd.c, bout.c, cache.c, coff-alpha.c, coff-mips.c, 
3241         coff-rs6000.c, coffcode.h, coffgen.c, core.c, ctor.c, 
3242         ecoff.c, ecofflink.c, elf.c, elf32-hppa.c, elf32-mips.c, 
3243         elfcode.h, format.c, hash.c, hp300hpux.c, hppabsd-core.c, 
3244         i386lynx.c, ieee.c, libbfd.c, libelf.h, linker.c, 
3245         lynx-core.c, nlm.c, nlm32-alpha.c, nlm32-i386.c, 
3246         nlm32-sparc.c, nlmcode.h, oasys.c, opncls.c, osf-core.c, 
3247         ptrace-core.c, reloc16.c, rs6000-core.c, section.c, som.c, 
3248         srec.c, sunos.c, syms.c, targets.c, tekhex.c, 
3249         trad-core.c: Change callers.
3250
3251 Tue Feb 15 22:27:27 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3252
3253         * som.c: Remove FIXMEs for things which have been dealt with.
3254
3255 Tue Feb 15 19:39:24 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
3256
3257         * section.c (bfd_get_section_contents): Since this function reads
3258         unrelocated contents, the section's raw size is always the one to
3259         use for bounds checking.
3260
3261         * linker.c (default_indirect_link_order): In assertion, compare
3262         link_order size field against cooked size, not raw size, of input
3263         section.
3264
3265         * bout.c (b_out_get_reloc_upper_bound): For BSS section, just
3266         return 0.
3267         (aligncode): When shrinking, the addend should be set to the
3268         current offset in the section plus the number of bytes of padding
3269         that will actually be retained.
3270         (b_out_relax_section): If a section contains no relocations, don't
3271         bother processing them.
3272         (b_out_get_relocated_section_contents): Set reloc_done.  Assert
3273         that bfd_get_section_contents returns true.  Check that relocs are
3274         properly ordered.
3275         (b_out_get_relocated_section_contents, case ALIGNDONE): Assert
3276         that reloc->addend falls between the current source offset and the
3277         raw size of the input section.
3278
3279         * config.bfd: Support i960 vxworks versions > 5.0 with coff, not
3280         bout.  Default with no version number is still bout.  Support
3281         explicit i960-coff target too.
3282
3283         * bout.c: Changed some indentation, deleted trailing whitespace,
3284         fixed some comments, removed some "#if 1" lines.
3285         (output_addr): New macro.
3286         (calljx_callback, callj_callback, get_value, abs32code, aligncode,
3287         b_out_get_relocated_section_contents): Use it for readability.
3288
3289 Tue Feb 15 09:00:16 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3290
3291         * som.c (som_bfd_prep_for_ar_write): Iterate through the SOM
3292         symbols, not the BFD symbols.
3293         (som_bfd_ar_write_symbol_stuff): Likewise.
3294
3295 Mon Feb 14 22:55:20 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3296
3297         * som.c (som_slurp_symbol_table): Do not die if a BFD doesn't
3298         have any symbols.
3299
3300         * Finish basic read-write support for SOM archive libraries.  Bugs
3301         surely remain as this hasn't been tested all that much.
3302         * som.c (SOM_LST_HASH_SIZE, SOM_LST_MODULE_LIMIT): Define.
3303         (struct som_misc_symbol_info): New structure to hold info necessary
3304         to build both normal and library symbol tables.
3305         (som_derive_misc_symbol_info): New function to derive info necessary
3306         to build both normal and library symbol tables.
3307         (som_build_and_write_symbol_table): Use new function to derive misc
3308         symbol information.
3309         (som_slurp_symbol_table): Update backend private data for symbols
3310         appropriately.
3311         (som_bfd_prep_for_ar_write): New function.
3312         (som_bfd_ar_symbol_hash): New function.
3313         (som_bfd_ar_write_symbol_stuff): New function.
3314         (som_write_armap): Flesh out.
3315         (som_vec): Fix ar padding character.
3316
3317         * som.c: Consistently use memset rather than bzero.
3318
3319 Mon Feb 14 17:02:28 1994  Stu Grossman  (grossman at cygnus.com)
3320
3321         * coff-rs6000.c:  Add Lynx core file support, use HOST_AIX, where
3322         appropriate.
3323         * rs6000-core.c:  Use HOST_AIX instead of COREFILES_PLEASE.
3324         * config/rs6000.mh:  Remove defs of ARCHIVES_PLEASE and
3325         COREFILES_PLEASE.
3326         * config/rs6000lynx.mh:  Turn on Lynx core file support.
3327         * hosts/rs6000.h:  #define HOST_AIX.
3328         * hosts/rs6000lynx.h:  Create this to enable Lynx host support.
3329
3330 Sun Feb 13 14:30:00 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3331
3332         * som.h (som_symbol_data): Safely access backend private data
3333         for BFD symbols.  All callers changed.
3334
3335         * Read-only SOM archive support.
3336         * som.c (som_bfd_count_ar_symbols): New helper function.
3337         (som_bfd_fill_in_ar_symbols): New helper function.
3338         (som_slurp_armap): New function to read a SOM LST.
3339
3340         * som.h: Include <lst.h> and <ar.h>.
3341
3342 Sat Feb 12 22:34:14 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3343
3344         * elfcode.h (elf_map_symbols): Fix typo.
3345         (write_object_contents): Check return values from prep_headers and
3346         elf_compute_section_file_positions.
3347         (set_section_contents): Likewise.
3348
3349 Fri Feb 11 16:56:50 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3350
3351         * archive.c (normalize) [VMS]: Call malloc, not bfd_xmalloc.
3352         (bfd_construct_extended_name_table): Check result of normalize.
3353
3354 Tue Feb  8 08:57:31 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3355
3356         Make all callers of malloc or realloc (including via obstacks)
3357         check the result for NULL.  Most set bfd_error to no_memory and
3358         return in that case; a few are harder to fix, and are marked
3359         with "FIXME <return type>".
3360
3361         * elf32-hppa.c (hppa_elf_build_arg_reloc_stub
3362         hppa_elf_build_long_branch_stub):  Check bfd_make_empty_symbol return.
3363         * linker.c (_bfd_generic_link_output_symbols
3364         _bfd_generic_link_write_global_symbol): Ditto
3365         * section.c (bfd_make_section_anyway): Ditto.
3366
3367         * tekhex.c (find_chunk tekhex_mkobject): Check bfd_alloc.
3368         (first_phase): Ditto.  FIXME void
3369         (tekhex_make_empty_symbol): Check bfd_zalloc.
3370
3371         * sunos.c (sunos_read_dynamic_info): Check bfd_zalloc.
3372         (MY(read_dynamic_symbols) MY(read_dynamic_relocs)): Check bfd_alloc.
3373
3374         * stringhash.c (_bfd_stringtab_hash_newfunc): Check bfd_hash_allocate.
3375
3376         * srec.c: Indent.
3377         (fillup_symbols): Check bfd_alloc.  FIXME void
3378         (srec_mkobject srec_get_section_contents
3379         srec_set_section_contents): Check bfd_alloc. 
3380         (srec_make_empty_symbol): Check bfd_zalloc.
3381
3382         * som.c (hppa_som_gen_reloc_type): Check bfd_alloc_by_size_t.
3383         (make_unique_section): Check bfd_alloc.
3384         (som_new_section_hook): Check bfd_zalloc.
3385         (bfd_som_attach_aux_hdr): Ditto.  FIXME void
3386
3387         * rs6000-core.c (rs6000coff_core_p): Check bfd_zalloc.
3388
3389         * osf-core.c (osf_core_make_empty_symbol): Check bfd_zalloc.
3390         (osf_core_core_file_p): Check bfd_alloc.
3391
3392         * oasys.c (oasys_slurp_symbol_table oasys_archive_p
3393         oasys_mkobject oasys_object_p oasys_new_section_hook
3394         oasys_set_section_contents): Check bfd_alloc.
3395         (oasys_slurp_section_data): Check bfd_zalloc and bfd_alloc.
3396         (oasys_make_empty_symbol): Check bfd_zalloc.
3397
3398         * nlmcode.h (nlm_make_empty_symbol): Check bfd_zalloc.
3399         (nlm_slurp_symbol_table): Check bfd_zalloc and bfd_alloc.
3400
3401         * nlm32-sparc.c (nlm_sparc_read_import): Check bfd_alloc.
3402
3403         * nlm32-i386.c (nlm_i386_read_import): Check bfd_alloc.
3404
3405         * nlm32-alpha.c (nlm_alpha_read_import): Check bfd_alloc.
3406
3407         * linker.c (_bfd_link_hash_newfunc
3408         (generic_link_hash_newfunc
3409         (archive_hash_newfunc
3410         (_bfd_generic_link_add_one_symbol): Check bfd_hash_allocate.
3411         (_bfd_generic_final_link
3412         (_bfd_generic_link_output_symbols
3413         (default_indirect_link_order): Check bfd_alloc.
3414         (bfd_new_link_order): Check bfd_alloc_by_size_t.
3415
3416         * irix-core.c (irix_core_make_empty_symbol): Check bfd_zalloc.
3417
3418         * ieee.c: Indent.
3419         (read_id get_symbol get_section_entry ieee_archive_p ieee_object_p
3420         ieee_slurp_section_data ieee_new_section_hook): Check bfd_alloc.
3421         (do_one): Check bfd_alloc.  Return a boolean.
3422         (ieee_slurp_section_data): Check it.
3423         (init_for_output): Check bfd_alloc.  Return a boolean.
3424         (ieee_set_section_contents): Check it.
3425         (do_with_relocs):  Check bfd_alloc.  Return a boolean.
3426         (ieee_bfd_debug_info_accumulate): Ditto.  FIXME void.
3427         (ieee_mkobject): Check bfd_zalloc.
3428         (ieee_make_empty_symbol): Check bfd_zmalloc.
3429
3430         * hpux-core.c (hpux_core_make_empty_symbol): Check
3431         bfd_zalloc.
3432
3433         * hppabsd-core.c (hppabsd_core_make_empty_symbol): Check
3434         bfd_zalloc.
3435         (hppabsd_core_core_file_p): Check bfd_zalloc.
3436
3437         * hp300hpux.c (MY(slurp_symbol_table)): Check bfd_alloc.
3438
3439         * elfcode.h (elf_new_section_hook): Check bfd_alloc.
3440         (bfd_section_from_phdr): Ditto.
3441         (write_relocs): Ditto.  FIXME void
3442         (elf_map_symbols assign_section_numbers map_program_segments):
3443         Ditto.  Return a boolean. 
3444         (swap_out_syms): Ditto.  Check elf_map_symbols.
3445         (elf_slurp_symbol_table): Check bfd_zalloc.
3446         (elf_slurp_reloca_table): Check bfd_alloc.
3447         (elf_slurp_reloc_table): Ditto.
3448         (elf_compute_section_file_positions): Check assign_section_numbers.
3449         (assign_file_positions_except_relocs): Return a boolean.
3450         Check map_program_segments.
3451         (elf_compute_section_file_positions): Check it.
3452
3453         * elf32-mips.c (mips_elf_final_link): Check bfd_alloc.
3454
3455         * elf32-hppa.c (hppa_elf_stub_branch_reloc): Check bfd_zmalloc and
3456         realloc. 
3457         (hppa_elf_stub_reloc): Ditto.
3458         (hppa_elf_build_arg_reloc_stub): Check bfd_zalloc.
3459         (hppa_elf_build_long_branch_stub): Ditto.
3460         (elf32_hppa_backend_symbol_table_processing): Ditto.
3461
3462         * ecoff.c (ecoff_set_symbol_info): Check bfd_alloc.  Return a boolean.
3463         (ecoff_slurp_symbol_table): Check it.
3464         (ecoff_slurp_armap): Check bfd_alloc.
3465         (ecoff_write_armap): Check bfd_zalloc.
3466         (ecoff_link_hash_newfunc): Check bfd_hash_allocate and
3467         _bfd_link_hash_newfunc. 
3468         (ecoff_link_add_externals): Check bfd_alloc.
3469
3470         * ctor.c (bfd_constructor_entry): Check bfd_alloc.
3471
3472         * coffgen.c (coff_real_object_p): Check bfd_alloc.
3473         (coff_renumber_symbols): Check bfd_alloc_by_size_t.  Return a boolean.
3474         (coff_write_symbol): Check bfd_alloc.  FIXME int
3475         (coff_write_linenumbers): Check bfd_alloc.  Return a boolean.
3476         (coff_section_symbol): Check bfd_alloc_by_size_t.
3477         (coff_get_normalized_symtab): Check bfd_alloc.
3478         (coff_bfd_make_debug_symbol): Check bfd_zalloc.
3479         * libcoff-in.h: Change decls of coff_renumber_symbols,
3480         coff_write_linenumbers.
3481         * libcoff.h: Rebuilt.
3482         * coffcode.h (coff_write_object_contents): Check
3483         coff_renumber_symbols, coff_write_linenumbers.
3484
3485         * coffcode.h: Indent.
3486         (coff_add_missing_symbols): Check bfd_alloc_by_size_t.  Return a
3487         boolean. 
3488         (coff_write_object_contents): Check it.
3489
3490         * coff-alpha.c (alpha_relocate_section): Check bfd_alloc.
3491         * coff-mips.c (mips_relocate_section): Ditto.
3492
3493         * archive.c (bfd_slurp_bsd_armap_f2): Check bfd_alloc value.
3494         (do_slurp_bsd_armap): Ditto.
3495         (compute_and_write_armap): Check bfd_realloc value.
3496
3497         * aoutx.h (translate_from_native_sym_flags): Check bfd_alloc
3498         return value.  Return boolean value.
3499         (NAME(aout,make_empty_symbol)): Check bfd_zalloc return value.
3500         (NAME(aout,slurp_symbol_table)): Check bf_alloc and bfd_zalloc
3501         return value.
3502         (add_to_stringtab): Ditto.  FIXME void
3503         (aout_link_hash_newfunc): Check bfd_hash_allocate return value.
3504         (aout_link_add_symbols): Check bfd_alloc value.
3505         (translate_symbol_table): Check translate_from_native_sym_flags.
3506         * hp300hpux.c (MY(slurp_symbol_table)): Ditto.
3507         * aoutx.h (aout_link_hash_newfunc): Check _bfd_link_hash_newfunc.
3508
3509         * opncls.c (bfd_zalloc bfd_realloc): Check result of bfd_alloc.
3510
3511         * opncls.c (obstack_chunk_alloc): Define as malloc, not
3512         bfd_xmalloc_by_size_t. 
3513         (_bfd_new_bfd): Check obstack_begin for 0 return.
3514
3515         * ieee.c (obstack_chunk_alloc): Define as malloc, not
3516         bfd_xmalloc_by_size_t. 
3517         (ieee_archive_p): Check obstack_begin for 0 return and
3518         obstack_finish for NULL return.
3519
3520         * hash.c (obstack_chunk_alloc): Define as malloc, not
3521         bfd_xmalloc_by_size_t. 
3522         (bfd_hash_table_init_n): Check obstack_begin for 0 return and
3523         obstack_finish for NULL return.
3524         (bfd_hash_lookup): Check obstack_alloc for NULL return.
3525
3526         * ecofflink.c (obstack_chunk_alloc): Define as malloc, not
3527         bfd_xmalloc_by_size_t. 
3528         bfd_ecoff_debug_accumulate
3529         bfd_ecoff_debug_accumulate_other): Check obstack_alloc.
3530         (add_file_shuffle add_memory_shuffle): Check obstack_alloc for
3531         NULL return.  Return boolean, not void.
3532         (bfd_ecoff_debug_init): Check obstack_begin for 0 return.
3533         (bfd_ecoff_debug_accumulate): Check add_file_shuffle
3534         and add_memory_shuffle return. 
3535         (string_hash_newfunc): Check bfd_hash_allocate and bfd_hash_newfunc.
3536         (bfd_ecoff_debug_accumulate): Check bfd_alloc.
3537         (ecoff_add_string): Check add_memory_shuffle return.
3538
3539         * libbfd-in.h (xmalloc, bfd_xmalloc, bfd_xmalloc_by_size_t):
3540         Remove decls. 
3541         * libbfd.h: Rebuilt.
3542
3543 Fri Feb 11 15:35:32 1994  Stu Grossman  (grossman at cygnus.com)
3544
3545         * configure.host:  Add Lynx/rs6000 support.
3546         * config/i386-nlm.mt:  Enable a.out file support.
3547         * config/rs6000lynx.mh:  Lynx/rs6000 host support.
3548
3549 Fri Feb 11 17:25:58 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3550
3551         * archive.c (compute_and_write_armap): Rewrite somewhat to improve
3552         memory usage.
3553
3554 Fri Feb 11 13:10:42 1994  Stan Shebs  (shebs@andros.cygnus.com)
3555
3556         * archive.c: Change all references to '\n' in archive magic
3557         to '\012', for greater portability.
3558         * ecoff.c (ecoff_write_armap): Ditto.
3559
3560 Thu Feb 10 12:58:48 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3561
3562         * aoutx.h (aout_link_write_other_symbol): Check strip settings to
3563         see whether symbol should be output.
3564         * genlink.h (struct generic_write_global_symbol_info): Added info
3565         field.
3566         * linker.c (_bfd_generic_final_link): Initialize wginfo.info.
3567         (_bfd_generic_link_write_global_symbol): Check strip settings to
3568         see whether symbol should be output.
3569         * elf32-mips.c (mips_elf_final_link): Initialize wginfo.info.
3570
3571 Wed Feb  9 21:34:58 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3572
3573         * som.c (som_reloc_queue_find): Do not examine a NULL queue entry.
3574
3575         * som.c: Cast return values from BFD memory allocation routines to
3576         avoid warnings from the HP compiler.
3577
3578 Wed Feb  9 12:55:02 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3579
3580         * coff-alpha.c (alpha_relocate_section): Accept a LITERAL
3581         reloc on an "ldl" instruction too.
3582
3583         * archive.c (bfd_ar_hdr_from_filesystem): Cast status elements
3584         when passing them to sprintf.  Use %ld instead of %d.
3585
3586         * coff-rs6000.c (rs6000coff_mkarchive): Return false.
3587         (rs6000_coff_snarf_ar_hdr): Don't declare errno; it's not used.
3588         Also removed unused variable namelen.
3589         (rs6000coff_write_armap): Declare orl_count and stridx parameters.
3590
3591 Tue Feb  8 18:00:34 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3592
3593         * libbfd-in.h (xmalloc): Don't declare parameter type, to avoid
3594         conflicts.
3595         * libbfd.h: Rebuilt.
3596
3597 Tue Feb  8 15:55:50 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
3598
3599         * coff-alpha.c (reloc_nil): New function.
3600         (alpha_howto_table): Use it as special_function to prevent certain
3601         relocs from being adjusted by bfd_perform_relocation.  IGNORE
3602         reloc should be partial_inplace.
3603         (alpha_ecoff_get_relocated_section_contents): Accept a LITERAL
3604         reloc on an "ldl" instruction too.
3605
3606 Tue Feb  8 00:32:28 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
3607
3608         * elf32-hppa.c (CURRENT_STUB_OFFSET, hppa_elf_build_arg_reloc_stub,
3609         hppa_elf_build_long_branch_stub):  Cast to char * instead of int
3610         before performing pointer arithmetic.
3611
3612 Mon Feb  7 20:56:27 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
3613
3614         * config.bfd (hppa*-*-osf*): Use bfd_name hppaosf for this
3615         configuration.
3616         (hppa*-*-*elf*): This configuration used hppa-elf now.
3617
3618         * som.c: This file is also used for HOST_HPPAOSF.
3619
3620         * targets.c (bfd_target_vector): Enable som_vec for HOST_HPPAOSF.
3621
3622         * hosts/hppaosf.h: New host configuration file.
3623
3624         * config/hppabsd.mt (SELECT_VECS): Add bfd_elf32_hppa_vec as
3625         BSD handles both SOM and ELF object files.
3626
3627         * config/hppaosf.mh (HDEFINES): Delete.  No longer needed.
3628         (RANLIB): Doesn't do anything, define it to be "echo".
3629
3630         * config/hppaosf.mt: New target makefile fragment for a PA running
3631         OSF1.
3632
3633 Mon Feb  7 15:02:06 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3634
3635         * archures.c (enum bfd_architecture): Added bfd_arch_powerpc.
3636         (archures_init_table): If SELECT_ARCHITECTURES is not defined,
3637         added bfd_powerpc_arch.
3638         * bfd-in2.h: Rebuilt.
3639         * cpu-powerpc.c: New file.
3640         * Makefile.in (ALL_MACHINES, CFILES): Added cpu-powerpc.c.
3641         Rebuilt dependencies.
3642
3643         * elfcode.h (bfd_section_from_shdr): Get vma and alignment_power
3644         of an SHT_STRTAB section from sh_addr and sh_addralign, rather
3645         than just setting them to zero.
3646
3647 Sun Feb  6 20:04:10 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3648
3649         * elfcode.h (prep_headers, swap_out_syms): Check for NULL return
3650         from bfd_new_strtab. 
3651         (elf_compute_section_file_positions): Check for false return from
3652         swap_out_syms. 
3653
3654         * linker.c (default_indirect_link_order): Check for NULL return
3655         from bfd_get_relocated_section_contents.
3656
3657         * syms.c: Make example application in doc call xmalloc, not
3658         bfd_xmalloc. 
3659
3660         * aoutx.h (NAME(aout,slurp_symbol_table),
3661         aout_link_get_symbols, NAME(aout,link_hash_table_create)):
3662         * bout.c (b_out_slurp_reloc_table, b_out_squirt_out_relocs):
3663         * ecoff.c (ecoff_bfd_link_hash_table_create): 
3664         * ecofflink.c (bfd_ecoff_debug_init): 
3665         * format.c (bfd_check_format_matches): 
3666         * linker.c (_bfd_generic_link_hash_table_create): 
3667         (_bfd_generic_final_link): 
3668         * reloc16.c (bfd_coff_reloc16_relax_section): 
3669         (bfd_coff_reloc16_get_relocated_section_contents): 
3670         * elf32-hppa.c (hppa_elf_build_arg_reloc_stub): 
3671         * elf32-mips.c (mips_elf_final_link): 
3672         * elfcode.h (bfd_new_strtab): 
3673         (bfd_add_2_to_strtab): 
3674         (elf_slurp_symbol_table): 
3675         (elf_corefile_note): 
3676         * libbfd.c (bfd_zmalloc): 
3677         Use malloc and check the result, instead of bfd_xmalloc.
3678
3679 Sat Feb  5 12:39:28 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
3680
3681         * config.bfd: Put m68*-*-sysv* line after m68*-*-sysv4*.
3682
3683 Sat Feb  5 05:32:44 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
3684
3685         * srec.c (srec_write_record):  Put CONST keyword for "src" before
3686         "unsigned", some compilers don't like it after "unsigned".
3687         * libcoff.h, libcoff-in.h (bfd_perform_slip):  Rename "value" to
3688         "val" in prototype declaration because some compilers don't like
3689         arguments whose names are the same as types.
3690
3691 Sat Feb  5 01:14:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3692
3693         * aoutx.h (aout_link_check_ar_symbols): Correct test for whether
3694         object file defines symbol.  Also, if skipping a symbol, skip the
3695         second symbol of a N_WARNING or N_INDR symbol as well.
3696
3697 Fri Feb  4 23:55:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3698
3699         Add basic support for writing RS/6000 XCOFF files.
3700         * coff-rs6000.c (dummy_reloc): Removed.
3701         (rs6000coff_howto_table): Defined XCOFF relocs.
3702         (RTYPE2HOWTO): Defined to use rs6000coff_rtype2howto.
3703         (rs6000coff_rtype2howto): New function.
3704         (coff_bfd_reloc_type_lookup): Defined to use
3705         rs6000coff_reloc_type_lookup. 
3706         (rs6000coff_reloc_type_lookup): New function.
3707         (SELECT_RELOC): Defined to set r_type and r_size fields.
3708         (COFF_LONG_FILENAMES): Defined.
3709         * coffcode.h (combined_entry_type): Changed fix_tag and fix_end
3710         fields to bitfields.  Added fields fix_value and fix_scnlen.
3711         (sec_to_styp_flags): If STYP_DEBUG is defined, use it rather than
3712         STYP_INFO for the type of a section named .debug.
3713         (coff_add_missing_symbols): Don't define if RS6000COFF_C.
3714         (coff_write_object_contents): If RS6000COFF_C, don't call
3715         coff_add_missing_symbols.
3716         (coff_slurp_symbol_table): If RS6000COFF_C, then if the last aux
3717         entry has type STY_LD change the x_scnlen into a pointer to a
3718         symbol and set fix_scnlen.  Also, for a C_BSTAT symbol, change the
3719         value into a pointer to a symbol and set fix_value.
3720         * libcoff.h: Rebuilt.
3721         * coffgen.c (coff_mangle_symbols): Reindent.  If fix_value is set,
3722         get the symbol offset. Likewise for fix_scnlen.
3723         (string_size): Change type to bfd_size_type.
3724         (debug_string_size, debug_string_section): New static variables.
3725         (coff_fix_symbol_name): If bfd_coff_symname_in_debug returns true,
3726         write the symbol name into the .debug section; assume that the
3727         section has already been created with the right size.
3728         (coff_write_symbols): Initialize debug_string_size to 0.  If
3729         bfd_coff_symname_in_debug returns true, don't put symbol name in
3730         usual string table.  After writing out all symbols, if
3731         debug_string_size is not 0, check that it matches the size of the
3732         .debug section.
3733         (coff_get_normalized_symtab): Clear new fix_value and fix_scnlen
3734         fields.  If the string offset is 0, always use an empty string as
3735         the name.
3736         (coff_make_empty_symbol): Zero out the symbol structure.
3737         * reloc.c (bfd_perform_relocation): Work around one gross hack
3738         with another: actually look at the target name to avoid the broken
3739         COFF check.
3740         (bfd_reloc_code_real_type): Add BFD_RELOC_PPC_B26,
3741         BFD_RELOC_PPC_BA26 and BFD_RELOC_PPC_TOC16.
3742         * bfd-in2.h: Rebuilt.
3743
3744 Fri Feb  4 17:28:32 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3745
3746         * libbfd.c (bfd_zmalloc): Call bfd_xmalloc instead of malloc.
3747         (bfd_xmalloc, bfd_xmalloc_by_size_t): Functions deleted.
3748         * libbfd-in.h: Define them as macros calling xmalloc and declare
3749         xmalloc. 
3750         * libbfd.h: Rebuilt.
3751
3752 Thu Feb  3 16:49:35 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3753
3754         * ecofflink.c (bfd_ecoff_debug_externals): If a small undefined
3755         symbol has a value in the ECOFF symbol but not in the BFD symbol,
3756         keep the value in the ECOFF symbol.  This helps gas.
3757
3758         * linker.c (_bfd_generic_link_output_symbols,
3759         _bfd_generic_link_write_global_symbol): Don't require that all
3760         references to a common symbol be themselves common symbols.
3761
3762         * aoutx.h (aout_reloc_index_to_section): Handle N_UNDF.
3763
3764 Wed Feb  2 20:37:19 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
3765
3766         * libbfd.c, bfd-in.h, hosts/alphaosf.h, hosts/sparc-ll.h, aoutf1.h,
3767         sparclynx.c, Makefile.in: Change HOST_64_BIT to BFD_HOST_64_BIT.
3768         * bfd-in2.h: Rebuilt.
3769
3770 Wed Feb  2 12:30:13 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3771
3772         * coffswap.h (coff_swap_reloc_out): If RS6000COFF_C, handle type
3773         and size correctly.
3774         (coff_swap_aux_in): If RS6000COFF_C, change x_csect.x_scnlen to
3775         x_csect.x_scnlen.l to match change in coff/internal.h.
3776         (coff_swap_aux_out): Likewise.
3777
3778         * coff-mips.c (mips_ecoff_backend_data), coff-alpha.c
3779         (alpha_ecoff_backend_data): Change casts of aux_in and aux_out
3780         fields to match yesterday's changes.
3781
3782         * coffcode.h (coff_write_relocs): If SELECT_RELOC is defined, pass
3783         in the internal_reloc itself, not the type.
3784         * coff-apollo.c, coff-h8300.c, coff-h8500.c, coff-i386.c,
3785         coff-m68k.c, coff-sh.c, coff-we32k.c, coff-z8k.c: Changed
3786         definition of SELECT_RELOC accordingly.
3787
3788 Tue Feb  1 12:05:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3789
3790         * coffcode.h (bfd_coff_backend_data): Added new arguments to
3791         _bfd_coff_swap_aux_in and _bfd_coff_swap_aux_out: aux index number
3792         and number of aux entries.
3793         (bfd_coff_swap_aux_in, bfd_coff_swap_aux_out): Changed
3794         accordingly.
3795         * libcoff.h: Rebuilt.
3796         * coffswap.h (coff_swap_aux_in, coff_swap_aux_out): Accept new
3797         arguments.  If RS6000COFF_C, only treat C_EXT and C_HIDEXT
3798         specially if this is the last aux entry.
3799         * coffgen.c (coff_write_symbol, coff_get_normalized_symtab): Pass
3800         new arguments to swap_aux functions.
3801
3802 Sun Jan 30 15:14:36 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
3803
3804         * gen-aout.c (main): Set DEFAULT_ARCH based on preprocessor macros
3805         (only testing for m68k and vax at the moment); do verify that the
3806         preprocessor didn't trash the arch name inside the string version.
3807         Don't print out "pagesize =" line that prevents output from
3808         compiling.  Derive BYTES_IN_WORD and ARCH values from sizeof
3809         results.
3810         * Makefile.in (aout-params.h): Pass gen-aout a dummy target name.
3811         (check, installcheck): Identify directory in "no testsuites"
3812         message.
3813
3814 Sun Jan 30 13:25:28 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3815
3816         * aoutx.h (aout_link_write_symbols): Write out correct value for
3817         object file symbol.
3818
3819 Fri Jan 28 18:34:05 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
3820
3821         * hosts/vaxbsd.h (HOST_STACK_END_ADDR): Vax BSD doesn't define
3822         KERNBASE, so hard-code 0x80000000 instead.
3823
3824 Thu Jan 27 13:54:08 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3825
3826         * linker.c (generic_link_add_symbol_list): If symbol is common,
3827         set the BSF_OLD_COMMON flag.
3828
3829 Wed Jan 26 13:47:15 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3830
3831         * format.c (bfd_check_format_matches): Put the new entry in the
3832         correct element of matching_vector.
3833
3834 Tue Jan 25 11:43:28 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
3835
3836         * som.c, som.h (bfd_som_set_section_attributes,
3837         bfd_som_set_subsection_attributes): Change parameters from char
3838         to int.  Following a prototype with an old-style function definition
3839         in the presence of widened parameters is a GCC-ism not supported
3840         by the HP compiler in ANSI mode.
3841
3842 Tue Jan 25 11:46:46 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3843
3844         * reloc.c (bfd_get_reloc_size): Size of type -2 is 4 bytes, not 2.
3845
3846         * hp300hpux.c (MY(write_object_contents)): Write out the symbols
3847         before writing out the relocs, so that the right symbol indices
3848         are used.
3849
3850         * archive.c (do_slurp_bsd_armap, bfd_slurp_bsd_armap_f2): Do not
3851         try to overlay the internal carsyms on the external symdefs.  That
3852         can not work if the size of a host pointer is larger than 4 bytes.
3853
3854         * format.c (bfd_check_format_matches): Cast result of
3855         bfd_xmalloc_by_size_t.
3856         * opncls.c (_bfd_new_bfd): Avoid ANSI C prototype.
3857
3858         * archive.c: Reindented to GNU standards.
3859
3860 Mon Jan 24 14:41:23 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3861
3862         * opncls.c (_bfd_new_bfd, _bfd_new_bfd_contained_in): Add
3863         "_bfd_" to function names.
3864         * archive.c (_bfd_create_empty_archive_element_shell),
3865         libbfd-in.h: Change callers.
3866
3867         * libbfd.c (bfd_zmalloc): Renamed from zalloc.
3868         * libbfd.c (bfd_add_to_string_table),
3869         trad-core.c (trad_unix_core_file_p),
3870         targets.c (bfd_target_list),
3871         ptrace-core.c (ptrace_unix_core_file_p),
3872         opncls.c (new_bfd), libbfd-in.h,
3873         ieee.c (ieee_make_empty_symbol),
3874         elf32-hppa.c (hppa_elf_stub_branch_reloc),
3875         (hppa_elf_stub_reloc): Change callers.
3876         * libbfd.h: Regenerated.
3877
3878         * archive.c (_bfd_look_for_bfd_in_cache): Add "_bfd_" to name.
3879         (_bfd_get_elt_at_filepos), 
3880         coff-rs6000.c (rs6000coff_get_elt_at_filepos), libbfd-in.h:
3881         Change callers.
3882
3883         * format.c (bfd_check_format_matches), libbfd-in.h, targets.c,
3884         elfcode.h (elf_object_p): Rename target_vector to bfd_target_vector
3885         and default_vector to bfd_default_vector.
3886         * libbfd.h: Regenerated.
3887
3888         * format.c (bfd_check_format_matches): New function.
3889         (bfd_check_format): Call it.
3890         (bfd_matching_formats): Function removed.
3891         * targets.c: Replace the vector added on Jan 21 with a count of
3892         entries in default_vector.
3893         * bfd-in2.h: Regenerated.
3894
3895 Mon Jan 24 12:38:54 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3896
3897         * coff-alpha.c (alpha_ecoff_object_p): New function.  Set size of
3898         .pdata section based on lnnoptr field, not section header.
3899         (alpha_relocate_section): Don't bother to check if r_symndx >= 0,
3900         since it is unsigned.
3901         (ecoffalpha_little_vec): Use alpha_ecoff_object_p rather than
3902         coff_object_p.
3903         * ecoff.c (ecoff_new_section_hook): Set alignment_power field of
3904         .pdata section to 3.
3905         (ecoff_compute_section_file_positions): Save the size of the
3906         .pdata section in the line_filepos field, and actually align the
3907         .pdata section to an alignment power of 4.
3908         (ecoff_compute_reloc_file_positions): Set output_has_begun after
3909         calling ecoff_compute_section_file_positions.
3910         (ecoff_write_object_contents): Set s_lnnoptr for the .pdata
3911         section from the line_filepos field.  Set vstamp for the optional
3912         header from the vstamp of the symbolic header.
3913         (ecoff_bfd_final_link): Set vstamp of the symbolic header to the
3914         vstamp used by the first object file in the link.
3915
3916         * ecofflink.c (ecoff_align_debug): Align RFDs to debug_align.
3917
3918         * linker.c (generic_link_check_achive_element): Set SEC_ALLOC flag
3919         for a created common section.
3920         (_bfd_generic_link_add_one_symbol): Likewise.
3921
3922         * elfcode.h (swap_out_syms): Use elf_section_from_bfd_section to
3923         get the index of a common section, rather than always using
3924         SHN_COMMON (MIPS has multiple common sections).
3925
3926         * elf32-hppa.c (hppa_elf_gen_reloc_type): Typo (== for =).
3927
3928         * bfd/aoutx.h (aout_link_input_section_std,
3929         aout_link_input_section_ext): Pass additional arguments to
3930         reloc_overflow callback.
3931         * coff-alpha.c (alpha_ecoff_get_relocated_section_contents,
3932         alpha_relocat_section): Likewise.
3933         * coff-h8300.c (h8300_reloc16_extra_cases): Likewise.
3934         * coff-h8500.c (extra_case): Likewise.
3935         * coff-mips.c (mips_relocate_section): Likewise.
3936         * coff-z8k.c (extra_case): Likewise.
3937         * elf32-hppa.c (hppa_elf_stub_finish): Likewise.
3938         * reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
3939
3940         * bout.c (calljx_callback, callj_callback): Use get_value to get
3941         the symbol value and check for undefined symbols.
3942         (get_value): If the symbol is undefined, look it up in the linker
3943         hash table.
3944         (b_out_get_relocated_section_contents): For PCREL24 and PCREL13
3945         use get_value to get the symbol value and check for undefined
3946         symbols.
3947         * reloc16.c (bfd_coff_reloc16_get_value): If the symbol is
3948         undefined, look it up in the linker hash table.
3949
3950         * aoutx.h (translate_symbol_table): The string index 0 has a
3951         special meaning for normal symbols, but not for dynamic symbols.
3952
3953 Sat Jan 22 12:26:01 1994  Stu Grossman  (grossman at cygnus.com)
3954
3955         * sparclynx.c:  Setup appropriate macros to enable core file
3956         support.
3957
3958 Fri Jan 21 16:25:35 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3959
3960         * targets.c: Add a vector of matching format names.
3961         * format.c (bfd_matching_formats): New function to return it.
3962         (bfd_check_format): Set it.
3963         * bfd-in2.h: Regenerated.
3964
3965         * bfd-in.h: Remove decls of bfd_ec type and error printing functions.
3966         Remove decl of type symclass; wasn't used.
3967         * bfd.c: Document error handling, including code fragments
3968         containing the error decls that were in bfd-in.h.
3969         Remove DEFUNs.
3970         * bfd-in2.h: Regenerated.
3971
3972 Fri Jan 21 14:11:16 1994  Sean Fagan  (sef@cygnus.com)
3973
3974         * nlmcode.h, liblnm.h, nlm32-alpha.c nlm32-i386.c nlm32-sparc.c:
3975         The sparc (and possibly other?) NLM format requires a different
3976         way to write exports, so add a write_export field to the backend
3977         data (and set it to NULL for everything but the sparc).
3978
3979 Fri Jan 21 14:11:16 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
3980
3981         * sunos.c (MY(read_dynamic_relocs)): Compare info->dynrel with NULL,
3982         not (struct external_nlist *) NULL.  info->dynrel is a PTR, not
3983         a struct external_nlist *.
3984
3985 Fri Jan 21 09:29:01 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
3986
3987         * bfd.c: Remove error strings for errors removed below.
3988         * aoutx.h (translate_to_native_sym_flags), bfd-in.h (bfd_ec),
3989         oasys.c (oasys_write_sections): Rename
3990         bfd_error_nonrepresentable_section to nonrepresentable_section.
3991         None of the other bfd error names start with "bfd_error".
3992         Remove errors symbol_not_found and no_relocation_info, which seem
3993         to be unused.
3994         * bfd-in2.h: Regenerated.
3995
3996 Fri Jan 21 01:11:55 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
3997
3998         * bfd.c (bfd_get_gp_size): Added support for ELF.
3999
4000         * syms.c (BSF_DYNAMIC): New symbol flag.
4001         (bfd_print_symbol_vandf): Print it.
4002         * bfd-in2.h: Rebuilt.
4003         * libaout.h (struct aout_backend_data): New read_dynamic_symbols
4004         and read_dynamic_relocs fields.
4005         (struct aoutdata): New dynamic_info field.
4006         (obj_aout_dynamic_info): New accessor macro.
4007         * sunos.c (struct sunos_dynamic_info): New structure.
4008         (sunos_read_dynamic_info, MY(read_dynamic_symbols),
4009         MY(read_dynamic_relocs)): New functions to read dynamic symbols
4010         and relocs.
4011         * aoutx.h (NAME(aout,some_aout_object_p)): If the object is
4012         dynamically linked, set SEC_RELOC for both the .text and .data
4013         sections.
4014         (translate_from_native_sym_flags): Don't set BSF_LOCAL for an
4015         undefined symbol.
4016         (translate_symbol_table): New function, split out of
4017         slurp_symbol_table; set the BSF_DYNAMIC flag appropriately.
4018         (NAME(aout,slurp_symbol_table)): Read dynamic symbols, if any.
4019         (NAME(aout,slurp_reloc_table)): Read dynamic relocs, if any.
4020         (NAME(aout,get_reloc_upper_bound)): Include dynamic reloc count in
4021         return value.
4022         * aoutf1.h (NAME(aout,sunos4_write_object_contents)): Don't write
4023         out dynamic symbols or relocs against reloc symbols, since they
4024         are already in the .text section and we wouldn't know where to
4025         write them anyhow.
4026         (sunos4_aout_backend): Initialize read_dynamic_symbols and
4027         read_dynamic_relocs fields.
4028         * aout-target.h (MY(backend_data)): Initialize
4029         read_dynamic_symbols and read_dynamic_relocs fields.
4030
4031 Thu Jan 20 20:57:27 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
4032
4033         * hosts/alphaosf.h (uint64e_type, uint64_type, int64_type): Delete
4034         typedefs, since HOST_64_BIT will take care of defining them in
4035         bfd.h.
4036
4037 Wed Jan 19 17:28:59 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
4038
4039         * config/alphaosf.mh (HDEFINES): Don't define HOST_64_BIT here;
4040         that's dealt with elsewhere.
4041         * hosts/alphaosf.h (sprintf_vma, fprintf_vma): New macros.
4042         (uint64_typeHIGH, uint64_typeLOW): Comment with HOST_64_BIT so
4043         they get copied to bfd.h.
4044
4045         * reloc.c (enum bfd_reloc_code_real): Add some Alpha relocation
4046         types.  Reorganized some of the existing ones.
4047         * coff-alpha.c (alpha_howto_table): Construct 64-bit negative one
4048         values in case of compilation on a 32-bit machine.  Fix pcrel
4049         fields of some reloc types.
4050         (alpha_bfd_reloc_type_lookup): Handle more relocation types.
4051
4052         * bfd-in.h (uint64_typeHIGH, uint64_typeLOW): Supply default
4053         definitions when not defined, regardless of whether uint64_type is
4054         a defined macro or not.
4055         (fprintf_vma, sprintf_vma): Define only if fprintf_vma is not
4056         already defined.
4057
4058 Wed Jan 19 00:02:54 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4059
4060         * aoutx.h (translate_to_native_sym_flags): Set the type of a
4061         BSF_WARNING symbol to N_WARNING.
4062
4063 Tue Jan 18 16:43:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4064
4065         * aoutx.h (aout_link_add_symbols): Increment sym_hash as well as p
4066         for an indirect or warning symbol.
4067         (aout_link_write_symbols): Update sym_hash with the target of an
4068         indirect or warning symbol.  If an indirect symbol is defined,
4069         output the calculated value and don't output the target symbol.
4070
4071 Tue Jan 18 03:54:59 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
4072
4073         * aoutx.h (translate_from_native_sym_flags): Give warning symbols
4074         an (unused) nonzero section value, needed for check below.
4075
4076 Mon Jan 17 15:12:07 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
4077
4078         * aoutx.h (translate_from_native_sym_flags,
4079         aout_link_add_symbols): Treat N_SET[ABDT] | N_EXT like
4080         N_SET[ABDT].
4081
4082 Fri Jan 14 16:45:43 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4083
4084         * elfcode.h (elf_object_p): If there is a SHT_DYNAMIC section, set
4085         the DYNAMIC flag for the BFD.
4086         (NAME(bfd_elf,write_object_contents)): Don't try to write out a
4087         BFD with the DYNAMIC flag set, since we don't generate the program
4088         header table correctly.
4089
4090 Fri Jan 14 01:04:36 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
4091
4092         * elfcode.h (elf_slurp_symbol_table):  Free x_symp at the end
4093         of the function to avoid storage leak.
4094
4095 Thu Jan 13 23:07:32 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4096
4097         * ecoff.c (ecoff_link_write_external): An ifd can be -1.
4098
4099 Thu Jan 13 12:33:27 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
4100
4101         * som.c (som_set_reloc_info): Provide a default symbol for
4102         relocations which don't actually have an associated symbol.
4103
4104         * som.c (hppa_som_reloc): Add new "error message" argument.
4105
4106 Wed Jan 12 13:36:43 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
4107
4108         Enable gdb to write to core files on more core file readers.
4109         * libbfd.c (bfd_generic_set_section_contents):  Remove range check
4110         for section size, it is already done in bfd_set_section_contents
4111         with bfd_get_section_size_now.
4112         * aix386-core.c, hppabsd-core.c, hpux-core.c, irix-core.c,
4113         osf-core.c, ptrace-core.c, trad-core.c (*_set_section_contents):
4114         Use bfd_generic_set_section_contents instead of bfd_false.
4115
4116 Wed Jan 12 15:31:57 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4117
4118         * linker.c: Added initial documentation.
4119
4120         * linker.c (default_indirect_link_order): Don't expect space for
4121         output relocations if there aren't any input relocations.
4122
4123 Tue Jan 11 14:37:12 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4124
4125         * aoutx.h (NAME(aout,final_link)): Set a_entry before computing
4126         file offsets.
4127
4128         * elfcode.h (swap_out_syms): A common symbol is STT_OBJECT, not
4129         STT_NOTYPE.
4130
4131 Tue Jan 11 09:10:56 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
4132
4133         * config.bfd: Use ELF, not COFF for m88*-*-dgux*.
4134         Combine m88k-*-* and m88110-*-* cases into m88*-*-*.
4135
4136 Tue Jan 11 00:07:19 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4137
4138         * ecofflink.c: Extensive changes to compress and merge debugging
4139         information, and to write some of out directly rather than saving
4140         it in memory.  Several new functions and structures, and new
4141         arguments to existing functions.
4142         * ecoff.c (ecoff_compute_reloc_file_positions): Compute
4143         sym_filepos as well.
4144         (ecoff_get_extr): Use ifdmap instead of ifdbase.
4145         (ecoff_write_object_contents): Don't compute sym_filepos here.
4146         Only output symbols if outsymbols is not NULL.
4147         (ecoff_bfd_final_link): Adjust for changes in ecoff_debug_info and
4148         bfd_ecoff_debug functions.  Write out debugging information here.
4149         (ecoff_final_link_debug_accumulate): Adjust for changes in
4150         bfd_ecoff_debug functions.
4151         (ecoff_link_write_external): Use ifdmap rather than ifdbase.
4152         * elf32-mips.c (mips_elf_read_ecoff_info): Read external symbols
4153         first, to put them in the first memory buffer.  Clear fdr field.
4154         (mips_elf_get_extr): Use pointer to unswapped external symbol.
4155         (mips_elf_final_link): Adjust for changes in bfd_ecoff functions.
4156         Preserve .text, .data and .bss even if they are empty.  Save
4157         pointer to unswapped external symbol rather than copying it.
4158         Don't free up the external symbols.
4159         * libelf.h (elf_symbol_type): Change mips_extr to PTR.
4160         * bfd-in.h (bfd_ecoff_debug_init, bfd_ecoff_debug_free): Declare.
4161         (bfd_ecoff_debug_accumulate): Update declaration.
4162         (bfd_ecoff_debug_accumulate_other): Rename declaration from
4163         bfd_ecoff_debug_link_other and update.
4164         (bfd_ecoff_write_accumulated_debug): Declare.
4165         * bfd-in2.h: Rebuilt.
4166         * Makefile.in: Rebuilt dependencies.
4167
4168 Mon Jan 10 20:46:53 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
4169
4170         * Makefile.in (install): Remove "@" which follows a backslash.  In
4171         this position it just causes errors, not suppresses echoes.
4172
4173 Mon Jan 10 09:06:21 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
4174
4175         * som.c (hppa_som_gen_reloc_type): Fix handling of LT and RT
4176         field selectors.
4177
4178 Sun Jan  9 04:32:25 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
4179
4180         * config/i386-netbsd.mt (SELECT_VECS): Include i386bsd_vec.
4181
4182 Fri Jan  7 10:27:27 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
4183
4184         * aoutx.h (adjust_z_magic): Don't merge the start of bss with the
4185         end of data if they are not contiguous.
4186
4187         * aoutf1.h (sunos4_aout_backend): Comment the fields' meanings.
4188
4189 Fri Jan  7 15:40:16 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4190
4191         * ecoff.c (ecoff_mkobject_hook): Don't set SEC_SHARED_LIBRARY flag
4192         for .reginfo section here.
4193         (ecoff_new_section_hook): Set it here instead.
4194
4195 Fri Jan  7 10:29:27 1994  Stan Shebs  (shebs@andros.cygnus.com)
4196
4197         * bfd-in.h: (bfd_boolean): Add workaround for systems that also
4198         define true and false as enums.
4199         (ALMOST_STDC): Add as alternative to __STDC__.
4200         * bfd-in2.h: Rebuilt.
4201         * syms.c (bfd_print_symbol_vandf): Convert a PTR to FILE*.
4202
4203 Thu Jan  6 14:24:44 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
4204
4205         * aoutx.h (translate_to_native_sym_flags): Catch the case where
4206         there is no output section.
4207
4208 Thu Jan  6 14:37:42 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4209
4210         * nlmcode.h (nlm_object_p): If we can't read the fixed header,
4211         count it as a wrong format error, not a system call error, since
4212         the object file might simply be too small.
4213
4214         * targets.c (target_vector): Added nlm32_alpha_vec inside #ifdef
4215         BFD64.
4216         * Makefile.in (BFD32_BACKENDS): Remove nlm32-alpha.o.
4217         (BFD64_BACKENDS): Add nlm32-alpha.o.  It depends on 64 bit
4218         support, even though it is for an Alpha in 32 bit mode.
4219         * configure.in (nlm32_alpha_vec): Set target64 to true.
4220
4221         * nlm32-gen.c, nlm64-gen.c: Removed.  All nlm targets are
4222         different, so there is no point to providing a generic one.
4223         * libnlm.h: Don't bother to check for nlm_backend(bfd) being NULL
4224         in the backend accessor macros; that should no longer be possible.
4225         * targets.c (target_vector): Removed nlm32_big_generic_vec,
4226         nlm64_big_generic_vec, nlm64_little_generic_vec.
4227         * configure.in (nlm32_big_generic_vec, nlm32_little_generic_vec,
4228         nlm64_big_generic_vec, nlm64_little_generic_vec): Removed.
4229         * Makefile.in: Rebuilt dependencies, and
4230         (BFD32_BACKENDS): Removed nlm32-gen.o.
4231         (BFD64_BACKENDS): Removed nlm64-gen.o.
4232         (CFILES): Removed nlm32-gen.c and nlm64-gen.c.
4233
4234         * hp300hpux.c (ARCH_SIZE): Define before including aoutx.h.
4235
4236         * linker.c (_bfd_generic_link_add_one_symbol): Add constructor and
4237         bitsize arguments.  Changed all callers (aoutx.h).
4238         * libbfd-in.h (_bfd_generic_link_add_one_symbol): Add constructor
4239         and bitsize arguments to declaration.
4240         * libbfd.h: Rebuilt.
4241
4242         * ecoff.c: First cut at new style of linker backend for
4243         ECOFF--added a bunch of functions.  Also:
4244         (ecoff_sec_to_styp_flags): Set flags for .pdata and .xdata.
4245         (ecoff_slurp_symbolic_header): New function.
4246         (ecoff_slurp_symbolic_info): Call ecoff_slurp_symbolic_header.
4247         (ecoff_compute_reloc_file_positions): New function.
4248         (ecoff_set_section_contents): Get out quickly if count is zero.
4249         Check errors better.
4250         (ecoff_write_object_contents): Put .xdata section in data segment.
4251         Call ecoff_compute_reloc_file_positions.  Don't output relocs or
4252         external symbols if outsymbols is NULL.
4253         (ecoff_bfd_final_link): Completely rewritten.
4254         * libecoff.h: Include bfdlink.h.
4255         (struct ecoff_backend_data): Add relocate_section field.
4256         (ecoff_data_type): Add sym_hashes and symndx_to_section fields.
4257         (struct ecoff_link_hash_entry): Define.
4258         (struct ecoff_link_hash_table): Define.
4259         (ecoff_bfd_link_add_symbols): Declare as function, not macro.
4260         (ecoff_bfd_link_hash_table_create): Likewise.
4261         * ecofflink.c (bfd_ecoff_debug_one_external): New function.
4262         (bfd_ecoff_debug_externals): Call bfd_ecoff_debug_one_external.
4263         * bfd-in.h (bfd_ecoff_debug_one_external): Declare.
4264         * bfd-in2.h: Rebuilt.
4265         * coff-alpha.c (alpha_howto_table): Mark BRADDR as
4266         partial_inplace, and set the src_mask to 0x1fffff.
4267         (alpha_ecoff_get_relocated_section_contents): Remove unused
4268         variable gp_warned.
4269         (alpha_convert_external_reloc): New static function.
4270         (alpha_relocate_section): New static function.
4271         (alpha_ecoff_backend_data): Initialize relocate_section field.
4272         * coff-mips.c (mips_relocate_refhi): New static function.
4273         (mips_relocate_section): New static function.
4274         (mips_ecoff_backend_data): Initialize relocate_section field.
4275
4276         * reloc.c (_bfd_relocate_contents): Corrected signed overflow
4277         checking when there is an addend.
4278
4279         * aoutx.h (NAME(aout,final_link)): Don't abort when trying to link
4280         a non a.out file, just pass it to _bfd_default_link_order.
4281         (aout_link_input_section_std): When doing a final PC relative link
4282         against a section symbol, subtract the VMA of the input section.
4283         (aout_link_input_section_ext): Likewise.
4284
4285         * linker.c (default_indirect_link_order): Renamed from
4286         _bfd_generic_indirect_link_order and made static.
4287         (_bfd_generic_final_link): Don't switch on link_order type, just
4288         call _bfd_default_link_order.
4289         (_bfd_default_link_order): Handle bfd_indirect_link_order type.
4290         * genlink.h: Removed declaration of
4291         _bfd_generic_indirect_link_order.
4292         * elf32-mips.c (mips_elf_final_link): Don't switch on link_order
4293         type, just call _bfd_default_link_order.
4294
4295 Tue Jan  4 21:23:37 1994  Ian Lance Taylor  (ian@cygnus.com)
4296
4297         * linker.c (generic_link_check_archive_element): Base the name of
4298         the created common section on the name of the section the symbol
4299         came from.
4300         (_bfd_generic_link_add_one_symbol): (case BIG): A common symbol
4301         must have a section, so don't bother to create one.
4302
4303 Mon Jan  3 15:32:16 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
4304
4305         * aout-target.h (MY(vec)): Add DYNAMIC to mask of object flags.
4306         * aoutf1.h (NAME(aout,sunos4_write_object_contents)):
4307         If the DYNAMIC flag is set, set it in the exec header.
4308         * aoutx.h (NAME(aout,some_aout_object_p)): If the object is
4309         dynamically linked, set the DYNAMIC flag in the BFD.
4310         * libaout.h (N_SET_DYNAMIC): New macro.
4311         (N_DYNAMIC): Add missing 0 in mask.
4312
4313 Mon Jan  3 11:41:45 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4314
4315         * ecoff.c (ecoff_get_extr): Don't output section symbols as
4316         external symbols.
4317
4318         * bfd-in.h, hash.c: Change bfd_hash_allocate argument from size_t
4319         to unsigned int, because size_t may not be defined in bfd.h.
4320         * bfd-in2.h: Rebuilt.
4321
4322         * bfd-in.h (bfd_get{b,l}[_signed_]{16,32,64}): Declare argument to
4323         be a const pointer.
4324         * bfd-in2.h: Rebuilt.
4325         * libbfd.c (bfd_get{b,l}[_signed_]{16,32,64}): Declare argument to
4326         be a const pointer.
4327         * targets.c (bfd_target): Change swap function pointers
4328         accordingly.
4329         * archive.c (do_slurp_coff_armap): Change swap accordingly.
4330         * aix386-core.c: Change NO_GET and NO_GETS accordingly.
4331         * hppabsd-core.c, hpux-core.c, irix-core.c, osf-core.c,
4332         ptrace-core.c, trad-core.c: Change NO_GET and NO_SIGNED_GET
4333         accordingly.
4334
4335         * libbfd-in.h (struct artdata): Added tdata field.
4336         (_bfd_add_bfd_to_archive_cache): Declare.
4337         (_bfd_get_elt_at_filepos): Declare.
4338         (_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr.
4339         * libbfd.h: Rebuilt.
4340         * archive.c: Cleaned up some more.
4341         (_bfd_generic_mkarchive, bfd_generic_archive_p): Initialize
4342         pointer elements of artdata.
4343         (_bfd_add_bfd_to_archive_cache): Renamed from add_bfd_to_cache.
4344         (_bfd_snarf_ar_hdr): Renamed from snarf_ar_hdr.
4345         (_bfd_get_elt_at_filepos): Renamed from get_elt_at_filepos.
4346         (get_extended_arelt_filename, bfd_construct_extended_name_table,
4347         bfd_ar_hdr_from_filesystem, compute_and_write_armap): Made static.
4348         * ecoff.c: Some comment changes.
4349         (ecoff_slurp_armap): Handle rename of snarf_ar_hdr.  Set
4350         ardata->tdata to raw_armap.
4351         (ecoff_archive_p): Initialize pointer elements of artdata.
4352         * coff-rs6000.c (rs6000coff_get_elt_at_filepos): Handle rename of
4353         add_bfd_to_cache.
4354
4355         * hash.c: Added some documentation.
4356
4357 Mon Jan  3 11:09:28 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
4358
4359         * aout-target.h, netbsd386.c: Replace NO_SWAP_MAGIC with SWAP_MAGIC,
4360         and do the swapping here rather than calling ntohl from the N_*
4361         macros.  This cleans up assumptions about the size of a host long,
4362         the existence to ntohl, etc.
4363
4364 Sat Jan  1 13:50:05 1994  Rob Savoye  (rob@darkstar.cygnus.com)
4365
4366         * config.bfd: Add support for VSTa micro-kernel. It currently uses
4367         i386-aout.
4368
4369 Sat Jan  1 10:18:54 1994  David J. Mackenzie  (djm@thepub.cygnus.com)
4370
4371         * hosts/i386mach3.h (HOST_SEGMENT_SIZE): Fix value.
4372         * i386mach3.c (SEGMENT_SIZE): Fix value.
4373
4374 Fri Dec 31 16:23:43 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4375
4376         Minor cleanups suggested by CodeCenter.
4377         * aoutx.h, coffgen.c, ecoff.c, ecofflink.c, elf.c, libbfd.c,
4378         linker.c, reloc.c, section.c, srec.c: Added /*ARGSUSED*/ as
4379         appropriate.
4380         * aoutx.h (struct external_exec): Removed unnecessary declaration.
4381         (NAME(aout,some_aout_object_p)): Set some tdata pointers to NULL.
4382         (adjust_z_magic): Removed useless variable data_vma.
4383         (stringtab_init): Initialize hash_zero.
4384         (add_to_stringtab): Removed unused fourth argument.
4385         (NAME(aout,swap_std_reloc_out)): Removed useless variable
4386         r_addend.
4387         (aout_link_input_section): Added some casts.
4388         * archive.c (get_extended_arelt_filename, do_slurp_coff_armap,
4389         bfd_ar_hdr_from_filesystem, bsd_write_armap, coff_write_armap):
4390         Minor code rewriting to make it more C like.
4391         (do_slurp_bsd_armap): Added some casts.
4392         * ecoff.c (ecoff_write_object_contents): Removed useless variable
4393         scn_base.
4394         (ecoff_write_armap): Added some casts.  Use "" rather than "\0".
4395         * ecofflink.c (bfd_ecoff_write_debug): Added a cast.
4396         * libaout.h (struct internal_exec): Removed unnecessary
4397         declaration.
4398         * linker.c (_bfd_generic_indirect_link_order): Added a cast.
4399         * opncls.c (new_bfd): Removed a cast.
4400         * reloc.c (bfd_generic_get_relocated_section_contents): Added
4401         some casts.
4402         * srec.c (internal_srec_write_object_contents): Removed useless
4403         variable bytes_written.
4404
4405 Fri Dec 31 11:46:13 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
4406
4407         * i386mach3.c (N_TXTADDR): Don't define after all.
4408         (TEXT_START_ADDR): Don't include exec header size in value.
4409
4410 Thu Dec 30 15:47:54 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
4411
4412         * i386mach3.c (N_TXTADDR): Define.
4413
4414 Thu Dec 30 13:37:24 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4415
4416         Extensive changes to move the bulk of the linker into BFD so that
4417         more efficient backend code can be written for specific object
4418         files.  Only existing efficient backend is a.out.
4419         * seclet.c, seclet.h: Removed.
4420         * hash.c, linker.c, genlink.h: New files.
4421         * bfd-in.h: Removed bfd_error_vector.  Declared hash table
4422         structures and functions.
4423         (JUMP_TABLE): Removed bfd_seclet_link, added
4424         bfd_link_hash_table_create, bfd_link_add_symbols and
4425         bfd_final_link.
4426         * All backends: Changed accordingly.
4427         * bfd-in2.h: Rebuilt.
4428         * bfd.c (struct _bfd): Added link_next and archive_pass fields.
4429         Removed ld_symbols field.
4430         (bfd_nonrepresentable_section, bfd_undefined_symbol,
4431         bfd_reloc_value_truncated, bfd_reloc_is_dangerous,
4432         bfd_error_vector): Removed.
4433         (bfd_default_error_trap, bfd_error_trap,
4434         bfd_error_nonrepresentabltrap): Removed.
4435         (bfd_get_relocated_section_contents): Pass link_info.  Pass
4436         link_order instead of seclet.  Pass symbols.
4437         (bfd_relax_section): Pass link_info.
4438         (bfd_seclet_link): Removed.
4439         (bfd_link_hash_table_create, bfd_link_add_symbols,
4440         bfd_final_link): New macros.
4441         * libbfd-in.h: If __GNUC__ is defined and alloca is not, define
4442         alloca as __builtin_alloca.  Declare internal linking functions.
4443         * libbfd.h: Rebuilt.
4444         * libbfd.c (bfd_seek): Comment out fseek assertion.  It's worked
4445         for months.
4446         * reloc.c (reloc_howto_type): Added error_message argument to
4447         special_function field.  Changed all callers and all definitions.
4448         (bfd_get_reloc_size): Make argument a const pointer.
4449         (bfd_perform_relocation): Add error_message argument to hold
4450         string set if return value if bfd_reloc_dangerous.  Changed all
4451         callers.
4452         (_bfd_final_link_relocate, _bfd_relocate_contents): New functions.
4453         * section.c (asection): Renamed seclets_head and seclets_tail to
4454         link_order_head and link_order_tail.
4455         * targets.c (bfd_target): Replaced seclet argument with link_info
4456         and link_order and symbols arguments in
4457         bfd_get_relocated_section_contents.  Added symbols argument to
4458         bfd_relax_section.  Removed bfd_seclet_link.  Added
4459         bfd_link_hash_table_create, bfd_link_add_symbols and
4460         bfd_final_link.
4461         * libaout.h (struct aoutdata): Added external_syms,
4462         external_sym_count, external_strings, sym_hashes fields.
4463         (obj_aout_external_syms, obj_aout_external_sym_count,
4464         obj_aout_external_strings, obj_aout_sym_hashes): New accessor
4465         macros.
4466         (WRITE_HEADERS): Only output symbols if outsymbols is not NULL.
4467         * aoutx.h: Wrote new back end linker routines.
4468         (translate_to_native_sym_flags): Return boolean value.  Don't use
4469         bfd_error_vector.
4470         (NAME(aout,write_syms)): Return boolean value.  Check return value
4471         of translate_to_native_sym_flags and bfd_write.
4472         * aout-target.h (final_link_callback): New function.
4473         (MY_bfd_final_link): New function.
4474         * aout-adobe.c (aout_adobe_write_object_contents): Check return
4475         value of aout_32_write_syms.
4476         * hp300hpux.c (MY(write_object_contents)): Likewise.
4477         * i386lynx.c (WRITE_HEADERS): Likewise.
4478         * libaout.h (WRITE_HEADERS): Likewise.
4479         * bout.c: Changed functions to use link_info->callbacks rather
4480         than bfd_error_vector, and link_orders rather than seclets.
4481         * coff-alpha.c: Likewise.
4482         * coff-h8300.c: Likewise.
4483         * coff-h8500.c: Likewise.
4484         * coff-sh.c: Likewise.
4485         * coff-z8k.c: Likewise.
4486         * elf32-hppa.c: Likewise.
4487         * reloc16.c: Likewise.
4488         * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Look
4489         up _gp in the hash table rather than in outsymbols.
4490         * coff-a29k.c (a29k_reloc): Pass errors back in new error_message
4491         argument rather than printing them.
4492         * coffcode.h (bfd_coff_reloc16_extra_cases): Take link_info and
4493         link_order arguments rather than seclet.  Changed all uses and
4494         definitions.
4495         (bfd_coff_reloc16_estimate): Pass link_info arguments.  Changed
4496         all uses and definitions.
4497         * libcoff.h: Rebuilt.
4498         * ecoff.c (ecoff_get_extr): If symbol is defined by linker, but
4499         not by ECOFF, make it scAbs.
4500         (ecoff_bfd_final_link): Renamed from ecoff_bfd_seclet_link and
4501         rewritten.
4502         * elf32-mips.c (mips_elf_final_link): Renamed from
4503         mips_elf_seclet_link and rewritten.
4504         * elf32-hppa.c (elf32_hppa_stub_description): Added link_info
4505         field.
4506         (new_stub, add_stub_by_name, hppa_elf_build_arg_reloc_stub,
4507         hppa_elf_build_long_branch_stub, hppa_look_for_stubs_in_section):
4508         Added link_info arguments.  Changed all callers.
4509         * elfcode.h (elf_slurp_symbol_table): Don't quit if outsymbols is
4510         not NULL.
4511         * oasys.c (oasys_write_sections): Return boolean value rather than
4512         using bfd_error_vector.
4513         (oasys_write_object_contents): Check return value of
4514         oasys_write_sections.
4515         * hosts/std-host.h: Don't declare qsort or strtol.
4516         * Makefile.in: Rebuild dependencies.
4517         (BFD_LIBS): Removed seclet.o.  Added hash.o and linker.o.
4518         (CFILES): Removed seclet.c.  Added hash.c and linker.c.
4519         (HFILES): Removed seclet.h.  Added genlink.h.
4520
4521 Thu Dec 30 07:41:36 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
4522
4523         * section.c (bfd_get_section_contents):  Return zero filled buffer
4524         if section has no contents.
4525
4526 Tue Dec 28 12:43:54 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4527
4528         * elf.c (bfd_elf_generic_reloc): If this is not an inplace reloc,
4529         then skip bfd_perform_relocation even if the addend is non-zero.
4530
4531 Tue Dec 21 09:22:19 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)
4532
4533         * coffcode.h (coff_write_relocs) [SWAP_OUT_RELOC_OFFSET]: Copy
4534         addend to r_offset field.
4535
4536         * Makefile.in (CFILES): Added coff-sparc.c.  Rebuild dependencies.
4537
4538         * coff-sparc.c (SWAP_IN_RELOC_OFFSET, SWAP_OUT_RELOC_OFFSET,
4539         CALC_ADDEND): Define.
4540
4541         * aix386-core.c (aix386_core_file_p): Use cd_regs[0] for computing
4542         the offsetof because AIX /bin/cc does not like to take the address
4543         of an array.  (From Minh Tran-Le.)
4544
4545 Thu Dec 16 13:06:32 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4546
4547         * Thu Dec 16 15:41:06 1993  Peter Hoogenboom  (hoogen@cs.utah.edu)
4548
4549         * elf32-hppa.c (hppa_elf_build_arg_reloc_stub): Make sure to copy
4550         the return pointer into %r2 if no jump-in-call-delay-slot
4551         optimization was done.
4552
4553         * hosts/hp300bsd.h: Correctly identify 4.3BSD vs 4.4BSD.
4554
4555 Wed Dec 15 08:04:16 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
4556
4557         * hosts/std-host.h: (time): Don't declare; conflicts on Mach3.
4558
4559         * hosts/i386mach3.h (HOST_PAGE_SIZE): Set to 1 to avoid padding.
4560         (HOST_SEGMENT_SIZE): Set to 0 for same reason.
4561
4562         * i386mach3.c (PAGE_SIZE, SEGMENT_SIZE): Same changes as above.
4563         (TEXT_START_ADDR): Correct.
4564         (MY_backend_data): Define.
4565
4566         * aoutx.h (adjust_o_magic, adjust_z_magic, adjust_n_magic):
4567         New functions; code moved from aout_<size>_adjust_sizes_and_vmas.
4568
4569 Tue Dec 14 21:48:33 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4570
4571         * som.c (som_begin_writing): Fix thinkos in auxiliary header
4572         support.
4573         (bfd_som_attach_aux_hdr): Likewise.
4574
4575 Mon Dec 13 23:34:48 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4576
4577         * elf32-hppa.c (hppa_elf_gen_reloc_type): Handle 'T' field
4578         selectors for PIC code.
4579
4580         * som.c (hppa_som_gen_reloc_type): Handle 'T' field selectors.
4581         (som_write_fixups): Handle R_DLT_REL, R_FSEL, R_RSEL, R_LSEL
4582         relocations needed by PIC.
4583
4584 Tue Dec  7 15:47:51 1993  Stu Grossman  (grossman at cygnus.com)
4585
4586         * nlmcode.h:  Fixes to avoid compiler warnings...
4587
4588 Tue Dec  7 15:10:54 1993  Ian Lance Taylor  (ian@cygnus.com)
4589
4590         * libnlm.h (nlm_backend_data): Removed macro definition.
4591         (nlm_alpha_backend_data): Adjusted accordingly.
4592
4593 Sun Dec  5 19:32:08 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4594
4595         * som.c (som_begin_writing): Flesh out code for handling simple
4596         auxiliary headers.
4597         (bfd_som_attach_aux_hdr): New function.
4598
4599         * som.h (struct somdata): Add fields for attaching version and
4600         copyright headers.  Add accessor macros.
4601
4602         * som.c (R_DLT_REL, R_AUX_UNWIND, R_SEC_STMT): Add protected
4603         definitions for old versions of HPUX which fail to define them.
4604         (som_hppa_howto_talbe): Add R_DLT_REL, R_AUX_UNWIND, and R_SEC_STMT
4605         now that they're safe.  Delete bogus R_STATEMENT relocations.
4606
4607         * som.c (som_hppa_howto_table): Add missing R_END_TRY.  Delete 
4608         extra R_DATA_OVERRIDE.
4609         (hppa_som_gen_reloc_type): Generate a relocation for the rounding
4610         mode selector if needed.
4611         (som_write_fixups): Handle requests for a change in the default
4612         rounding mode.  Rounding modes do not consume input bytes, but
4613         are just markers much like R_ENTRY and R_EXIT.
4614
4615 Sat Dec  4 19:40:32 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4616
4617         Fri Dec  3 09:55:17 1993  Pete Hoogenboom  (hoogen@cs.utah.edu)
4618
4619         * elf32-hppa.c: (hppa_elf_reloc):  Do not do code reordering when
4620         the branch instruction as originally been nullified.
4621         hppa_elf_reloc):  Avoid useless call to bfd_put_32 () in the
4622         case of no code reordering due to an LDO instruction in the
4623         delay slot of the branch.  Make sure to relocate the correct
4624         instruction.  Do not perform instruction reordering for millicode
4625         calls.
4626         (hppa_elf_build_arg_reloc_stub):  Change the relocation type
4627         to R_HPPA_STUB_CALL_17 when special processing might be needed.
4628         (hppa_elf_build_long_branch_stub): Prevent code reordering on
4629         a call from a linker stub to another linker stub and for millicode
4630         calls.  Do not trash the return register for calls from one linker
4631         stub to a second linker stub.
4632
4633         * elf32-hppa.c: (elf_hppa_howto_table):  PLABEL and DLT
4634         relocations are not pc-relative.
4635
4636         * hppa_stubs.h: (BLE_N_XXX_0_31):  New instruction used in
4637         linker stub code. 
4638         (COPY_2_31):  Likewise.
4639
4640 Fri Dec  3 18:40:58 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4641
4642         * config/solaris2.mh (HDEFINES): Remove -Dconst=
4643         * hosts/solaris.h: If not __GNUC__, define const as empty.
4644
4645 Thu Dec  2 15:43:32 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4646
4647         * ecoff.c: Added various casts for 32/64 bit cross targeting.
4648         (ecoff_mkobject_hook): Set SEC_SHARED_LIBRARY for the .reginfo
4649         section so that the linker ignores it.
4650         * ecofflink.c: Added various casts for 32/64 bit cross targeting.
4651         (ecoff_add_bytes): Changed need argument to size_t.
4652         (bfd_ecoff_debug_link_other): Check return value of
4653         ecoff_add_string.
4654
4655         * libbfd-in.h (new_bfd): Use void rather than an empty parameter
4656         list.
4657         * libbfd.h: Rebuilt.
4658
4659         * libnlm.h (struct nlm_obj_tdata): New field backend_data.
4660         (nlm_backend_data, nlm_alpha_backend_data): New accessor macros.
4661         (struct nlm_backend_data): New field no_uninitialized_data.
4662         (nlm_no_uninitialized_data): New accessor macro.
4663         * nlmcode.h (nlm_compute_section_file_positions): Handle
4664         no_uninitialized_data.
4665         (nlm_external_reloc_compare): Sort relocs by address for a
4666         particular symbol, to make the sort more stable.
4667         (nlm_write_object_contents): Cast the arguments to qsort.  Get the
4668         value of a debugging symbol the same way we get the value of a
4669         normal symbol.
4670         * nlm32-alpha.c: Various changes.  Write out GP and .lita relocs.
4671         Set no_uninitialized_data to true.
4672         * nlm32-i386.c (nlm32_i386_backend), nlm32-sparc.c
4673         (nlm32_sparc_backend): Set no_uninitialized_data field false.
4674         * nlmswap.h (nlm_swap_fixed_header_out): Zero out destination
4675         before filling it in.
4676
4677 Wed Dec  1 21:47:58 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4678
4679         * som.c (som_section_type, som_decode_symcalss): New functions.
4680         (som_get_symbol_info): Use them.
4681         (som_slurp_symbol_table): Set the section of common and undefined
4682         symbols correctly.
4683
4684 Wed Dec  1 14:15:10 1993  Ken Raeburn  (raeburn@cygnus.com)
4685
4686         * elfcode.h (write_relocs): Initialize local var LAST_SYM_IDX, to
4687         make gcc happy.
4688
4689         * mipsbsd.c: Changes from Ralph Campbell:
4690         (mips_howto_table_ext): MIPS_RELOC_LO16 should use
4691         complain_overflow_dont.
4692         (aout_mips_*_vec): Make name use "a.out" instead of "aout", to
4693         make gdb happy.
4694
4695         * bfd.c (bfd_errmsgs): Reword invalid-target message.
4696
4697         * config.bfd: For sparc*-*-coff, use sparc-coff.
4698         * configure.in: Handle sparccoff_vec.
4699         * targets.c (sparccoff_vec): Declare.
4700
4701         * reloc.c (bfd_get_reloc_size): New function.
4702         (struct reloc_howto_type): Update documentation of size field.
4703
4704 Wed Dec  1 14:39:05 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4705
4706         * nlm32-alpha.c: New file; preliminary Alpha NetWare support.
4707         * config.bfd (alpha-*-netware*): New target; use alpha-nlm.
4708         * config/alpha-nlm.mt: New file.
4709         * configure.in (nlm32_alpha_vec): New vector; use nlm32-alpha.o,
4710         nlm32.o, and nlm.o.
4711         * Makefile.in (BFD32_BACKENDS): Added nlm32-alpha.o.
4712         (CFILES): Added nlm32-alpha.c.
4713         Rebuilt dependencies.
4714         * targets.c (nlm32_alpha_vec): Declare.
4715
4716         * libnlm.h (struct nlm_backend_data): New fields
4717         optional_prefix_size, nlm_backend_object_p, nlm_write_prefix,
4718         nlm_set_public_section, nlm_get_public_offset.  Removed unused
4719         nlm_write_reloc field.  Changed nlm_write_import to remove
4720         unnecessary symbol argument.  Renamed nlm_write_externals to
4721         nlm_write_external, and changed cound argument from bfd_vma to
4722         bfd_size_type.
4723         (nlm_optional_prefix_size, nlm_backend_object_p_func,
4724         nlm_write_prefix_func, nlm_set_public_section_func,
4725         nlm_get_public_offset_func): New accessor macros.
4726         (nlm_write_reloc_func): Removed.
4727         (nlm_write_external_func): Adjusted for field renaming.
4728         * nlm32-i386.c (nlm_i386_write_import): Renamed from
4729         nlm_i386_write_reloc.  Removed old nlm_i386_write_import which
4730         just called old nlm_i386_write_reloc.
4731         (nlm_i386_write_external): Renamed from nlm_i386_write_externals.
4732         Declared.  Changed second argument from bfd_vma to bfd_size_type.
4733         (nlm32_i386_backend): Adjusted for changes to fields and names.
4734         * nlm32-sparc.c (nlm_sparc_mangle_relocs): Removed unused,
4735         ifdeffed out code.
4736         (nlm_sparc_write_import): Removed second argument.
4737         (nlm_sparc_write_external): Renamed from
4738         nlm_sparc_write_externals.  Changed second argument from bfd_vma
4739         to bfd_size_type.
4740         (nlm32_sparc_backend): Adjusted for changes to fields and names.
4741         * nlmcode.h: Removed some unused code.
4742         (nlm_object_p): Don't destroy tdata pointer.  Call
4743         backend_object_p function if it exists.
4744         (nlm_slurp_symbol_table): Removed unused variable rcount.  Call
4745         set_public_section_func if it exists instead of checking
4746         NLM_HIBIT.
4747         (nlm_compute_section_file_positions): Account for
4748         optional_prefix_size.
4749         (nlm_write_object_contents): Account for optional_prefix_size.
4750         Removed useless variable write_reloc_func.  Changed declaration
4751         and call of write_import_func.  Call write_prefix_func if it
4752         exists.  Removed unused variables len and temp.  Call
4753         get_public_offset_func if it exists rather than setting NLM_HIBIT.
4754         * nlmswap.h: Declare functions.
4755
4756         * bfd-in.h (uint64_typeLOW, uint64_typeHIGH): Fully parenthesize
4757         for clarity.
4758         (fprintf_vma, sprintf_vma): Use %lx, not %x.
4759         * bfd-in2.h: Rebuilt.
4760         * hosts/alphaosf.h (uint64_typeLOW, uint64_typeHIGH): Cast results
4761         to unsigned long.
4762
4763         * config.bfd: Don't set target64 here, as the setting is ignored.
4764         * configure.in (ecoffalpha_little_vec): Set target64.
4765
4766         * config/alphaosf.mt (TDEFINES): Removed; setting host parameters
4767         in TDEFINES is wrong.
4768
4769         * coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
4770         Remove unused variable output_section.
4771
4772 Tue Nov 30 16:45:23 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4773
4774         * irix-core.c: New file for Irix 4 and Irix 5 core support.
4775         Functions taken out of coff-mips.c.  Handle vmap type VMAPFILE.
4776         * coff-mips.c: Irix 4 core file support moved to irix-core.c.
4777         * targets.c: If IRIX_CORE defined, include irix_core_vec in
4778         target_vector.
4779         * config/irix4.mh (HDEFINES): Add -DIRIX_CORE.
4780         (HDEPFILES): Define to be irix-core.o.
4781         * config/irix5.mh (HDEFINES): Define to be -DIRIX_CORE.
4782         (HDEPFILES): Define to be irix-core.o.
4783         * Makefile.in (OPTIONAL_BACKENDS): Added irix-core.o.  Removed
4784         sco-core.o, which no longer exists.
4785         (CFILES): Added all *-core.c files.
4786         Rebuilt dependencies.
4787
4788 Wed Nov 24 02:02:41 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4789
4790         * elfcode.h (map_program_segments): Restore check of file_size !=
4791         mem_size, but only if SHT_PROGBITS.
4792
4793         * ecofflink.c: New file to hold ECOFF debug information linking
4794         routines.
4795         * ecoff.c (ecoff_clear_output_flags, ecoff_rel, ecoff_dump_seclet,
4796         ecoff_add_string, ecoff_get_debug): Removed.  Functionality now in
4797         ecofflink.c.
4798         (ecoff_get_extr, ecoff_set_index): New functions.
4799         (ecoff_slurp_symbolic_info): Don't save raw_size.
4800         (ecoff_bfd_seclet_link): Rewrote to use ecofflink.c functions.
4801         (ecoff_compute_section_file_positions): Don't set EXEC_P just
4802         because there is a start address.
4803         (ecoff_write_object_contents): Handle external symbols here.  Use
4804         ecofflink.c functions to write out debugging information.
4805         * elf32-mips.c (mips_elf_read_ecoff_info, mips_elf_get_extr,
4806         mips_elf_set_index): New functions.
4807         (mips_elf_seclet_link): Discard empty sections, the .options
4808         section and .gptab sections.  Handle linking .mdebug section.
4809         * libecoff.h (ecoff_data_type): Removed raw_size and ifdbase.
4810         * libelf.h (elf_symbol_type): Added mips_extr to tc_data union.
4811         * bfd-in.h: Added prototypes for routines in ecofflink.c (some are
4812         called by gas, so they are public).
4813         * bfd-in2.h: Rebuilt.
4814         * Makefile.in (BFD_LIBS): Added ecofflink.o.
4815         (CFILES): Added ecofflink.c.
4816         (ecofflink.o): New target.  Rebuilt dependencies.
4817
4818 Mon Nov 22 22:26:42 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4819
4820         * som.c (hppa_object_p): Also recognize SHARED_MAGIC_CNX as
4821         a valid magic number if it's been defined.
4822
4823 Mon Nov 22 14:17:36 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4824
4825         * ecoff.c (ecoff_mkobject): Don't create .scommon section; linker
4826         no longer requires it.
4827         (ecoff_bfd_seclet_link, ecoff_sizeof_headers,
4828         ecoff_write_object_contents): Don't treat .scommon section
4829         specially.
4830
4831 Mon Nov 22 10:54:27 1993  Fred Fish  (fnf@cygnus.com)
4832
4833         Merged changes from kev@spuds.geg.mot.com (Kevin A. Buettner):
4834         * bfd/config/delta88.mh (HDEFINES): Define this to be -DPTRACE_CORE.
4835         * bfd/config/delta88.mh (HDEPFILES): Defined to be ptrace-core.o.
4836         * bfd/ptrace-core.c:  New file for dealing with core files with
4837         start with the ptrace_user structure found on BCS compliant systems.
4838         * bfd/targets.c (ptrace_core_vec):  New vector.
4839
4840 Mon Nov 22 02:33:12 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4841
4842         * Minimal support for reading SOM fixup streams.  Allows
4843         objdump -r to do something reasonable.
4844         * som.c (som_get_reloc_upper_bound): Implement.
4845         (som_canonicalize_reloc): Implement.
4846         (som_set_reloc_info, som_slurp_reloc_table): New functions.
4847
4848 Sun Nov 21 13:46:55 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
4849
4850         * hosts/lynx.h (FPRINTF_ALREADY_DECLARED): Define.
4851         * hosts/sparclynx.h: Include lynx.h instead of duplicating it.
4852
4853 Fri Nov 19 14:34:04 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4854
4855         * coff-a29k.c (a29k_reloc): For R_IREL, don't left shift
4856         signed_value before sign extending it.  Don't subtract out
4857         reloc_entry->address.  This makes it compatible with what gas is
4858         generating.
4859
4860         * elfcode.h (elf_fake_sections): Accept .sbss as the name for a
4861         SHT_NOBITS sections.
4862         (map_program_segments): Don't leave the loop after the first
4863         SHT_NOBITS section.
4864         (assign_file_positions_except_relocs): Only force sh_offset and
4865         sh_addr to match modulo maxpagesize for a section which is not
4866         SHT_NOBITS.  Changed the method used to force page alignment after
4867         a SHT_NOBITS section to only do it for the last such consecutive
4868         section, and to really force page alignment.
4869
4870 Fri Nov 19 04:02:01 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
4871
4872         * coffcode.h (coff_slurp_symbol_table): Print more verbose message
4873         in the case of an unknown (or unhandled) storage class.
4874
4875         * config/i386-lynx.mt (TDEFINES): FPRINTF_ALREADY_DECLARED should
4876         not be defined here, since it is a host attribute, not a target
4877         one.
4878         * config/m68k-lynx.mt, config/sparc-lynx.mt: Ditto.
4879
4880         * coffcode.h (coff_bfd_reloc_type_lookup): Don't define if already
4881         defined.
4882
4883         * coff-sparc.c: Define some relocations, based on ELF relocations.
4884         (enum reloc_type, bfd_coff_generic_reloc, coff_sparc_howto_table,
4885         struct coff_reloc_map, sparc_reloc_map,
4886         coff_sparc_reloc_type_lookup): Borrowed from elf32-sparc.c and
4887         elf.c, renamed.
4888         (coff_bfd_reloc_type_lookup): Define to be coff_sparc_reloc_....
4889         (rtype2howto): Index into coff_sparc_howto_table using
4890         dst->r_type.
4891
4892 Thu Nov 18 11:45:39 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4893
4894         * config.bfd (mips*-*-irix5*): New target; use mipsbelf.
4895         * configure.host (mips-sgi-irix5*) New host; use irix5 (no
4896         hosts/irix5.h created; just use std-host.h).
4897         * config/irix5.mh: New file; like irix4.mh, but don't use -G or
4898         -lmalloc.
4899         * Makefile.in: Rebuilt dependencies.
4900
4901         * ecoffswap.h: Changed type of internal pointers for swap out
4902         functions to const *.
4903
4904         * elf32-mips.c (mips_elf_got16_reloc): New function.  Handle GOT16
4905         correctly for assembler, but linker support not implemented.
4906         (elf_mips_howto_table): Use mips_elf_got16_reloc for GOT16.
4907         (mips_elf_sym_is_global): New function; at least on Irix 5, all
4908         non section symbols are considered global.
4909         (elf_backend_sym_is_global): Define.
4910         (mips_elf_final_write_processing): New function.  Set the MIPS
4911         architecture level correctly.
4912         (elf_backend_final_write_processing): Define.
4913         (mips_elf_section_from_shdr): Handle SHT_MIPS_OPTIONS.
4914         (mips_elf_fake_sections): Set entsize of .mdebug or .reginfo
4915         section to 1.  Handle .options section.
4916         (mips_elf_acom_section, mips_elf_acom_symbol,
4917         mips_elf_acom_symbol_ptr): New static variables, used to build a
4918         generic .acommon section to hold SHN_MIPS_ACOMMON symbols.
4919         (mips_elf_symbol_processing): Handle SHN_MIPS_ACOMMON symbols by
4920         putting them all in a global .acommon section.
4921
4922         * elfcode.h (bfd_section_from_shdr): Don't dump core if target
4923         section has no ELF section data.
4924         (elf_make_sections): Set addralign of reloc section to 4.
4925         (elf_fake_sections): Likewise.
4926         (map_program_segments): Don't consider section 0.
4927         (assign_file_positions_except_relocs): Don't consider section 0.
4928         In the main loop, skip the symtab and strtab sections, since their
4929         positions are set elsewhere.
4930         (swap_out_syms): Set addralign of symtab section to 4.  Set
4931         addralign of strtab sections to 1.
4932         (assign_file_positions_for_relocs): Don't consider section 0.
4933         (write_object_contents): Don't write out section 0.
4934
4935         * libelf.h (struct elf_backend_data): Added fields
4936         elf_backend_sym_is_global and elf_backend_final_write_processing.
4937         * elf32-target.h (elf32_bed): Added corresponding initializers.
4938         * elf64-target.h (elf64_bed): Likewise.
4939         * elfcode.h (sym_is_global): Take abfd argument.  Call
4940         elf_backend_sym_is_global if it is not NULL.
4941         (elf_map_symbols): Pass abfd to sym_is_global.
4942         (write_object_contents): Call elf_backend_final_write_processing
4943         if it is defined.
4944
4945 Wed Nov 17 18:43:28 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
4946
4947         * libecoff.h: Include coff/ecoff.h.
4948         (struct ecoff_backend_data): Move external debugging information
4949         fields into a single field pointing to an ecoff_debug_swap
4950         structure.
4951         (ecoff_data_type): Move debugging information fields into a single
4952         field pointing to an ecoff_debug_info structure.
4953         * coff-alpha.c, coff-mips.c, ecoff.c: Corresponding changes.
4954
4955 Wed Nov 17 17:38:58 1993  Sean Eric Fagan  (sef@cygnus.com)
4956
4957         * nlmswap.h: New file to swap fixed header.  Included by NLM
4958         backends.
4959         * libnlm.h (struct reloc_and_sec): Define.
4960         (struct nlm_backend_data): Add fields fixed_header_size,
4961         nlm_read_import, nlm_write_import, nlm_swap_fhdr_in,
4962         nlm_swap_fhdr_out.
4963         (nlm_fixed_header_size, nlm_read_import_func,
4964         nlm_write_import_func, nlm_swap_fixed_header_in_func,
4965         nlm_swap_fixed_header_out_func, nlm_write_external_func): New
4966         accessor macros.
4967         * nlmcode.h: Use new functions.
4968         * nlm32-i386.c: Provide new functions.
4969         * nlm32-sparc.c: New file; SPARC NLM backend.
4970
4971 Wed Nov 17 13:56:10 1993  Stan Shebs  (shebs@rtl.cygnus.com)
4972
4973         * i386lynx.c (swap_std_reloc_in, swap_ext_reloc_in): Ignore
4974         garbage bits appearing in the upper end of symbolnums.
4975
4976         * config/sparc-lynx.mt (TDEFINES): Add -DFPRINTF_ALREADY_DECLARED.
4977
4978 Tue Nov 16 17:03:41 1993  Stu Grossman  (grossman at cygnus.com)
4979
4980         * lynx-core.c (lynx_core_file_p):  Change bfd_zalloc to bfd_alloc.
4981         * m68klynx.c:  Define core file macros.
4982         * hosts/i386lynx.h, hosts/m68klynx.h, hosts/lynx.h:  Move all
4983         non-architecture specific stuff into lynx.h.
4984
4985 Tue Nov 16 15:45:54 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
4986
4987         * i386linux.c: Define new macro ZMAGIC_DISK_BLOCK_SIZE to 1024, and
4988         change PAGE_SIZE to 4096.
4989
4990 Mon Nov 15 11:48:08 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)
4991
4992         * Makefile.in (diststuff): New target.
4993
4994         * VERSION: Updated.
4995
4996 Sun Nov 14 23:33:01 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
4997
4998         * som.c (som_object_setup): Do not create dummy ".text", ".data",
4999         and ".bss" sections.
5000         (setup_sections): Do not set SEC_HAS_CONTENTS if a section's size
5001         is zero.  Recognize BSS type sections and turn off SEC_LOAD and
5002         SEC_DATA (so binutils/size works).  Set the correct value for
5003         a section's _raw_size.
5004         (som_slurp_symbol_table): Program entry points, and millicode are
5005         also functions.  Mark them as such.  Also mark L$* symbols as
5006         debugging symbols.
5007
5008         * bfd-in2.h: Rebuilt.
5009
5010 Sat Nov 13 15:27:15 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
5011
5012         * som.c (som_bfd_reloc_type_lookup): Add missing prototype.  Returns
5013         a pointer to constant data.  Delete bogus #define which made the 
5014         function useless.
5015
5016         * som.c (som_prep_for_fixups): New function.
5017         (som_write_fixups): New function.
5018         (som_write_space_strings): New function.
5019         (som_write_symbol_strings): New function.
5020         (som_begin_writing): New function.
5021
5022 Fri Nov 12 15:29:36 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
5023
5024         * som.c (som_write_object_contents): Do not abort.  Flesh out.
5025         (som_set_section_contents): Do not abort.  Flesh out.
5026
5027         * som.c (som_write_headers): New function.
5028         (som_prep_headers): New function.
5029         (som_build_and_write_symbol_table): New function.
5030
5031         * som.c (som_sizeof_headers): Add missing prototype.
5032         (som_set_arch_mach): Do not abort.
5033
5034         * som.c (som_count_spaces): New function.
5035         (som_count_subspaces): New function.
5036         (compare_syms): New function.
5037         (som_compute_checksum): New function.
5038
5039         * som.c (hppa_som_gen_reloc_type): New function.
5040         (som_bfd_reloc_type_lookup): New function.
5041
5042         * som.c (try_prev_fixup): New function.
5043         (som_reloc_skip): New function.
5044         (som_reloc_addend): New function.
5045         (som_reloc_call): New function.
5046
5047         * som.c (som_initialize_reloc_queue): New function.
5048         (som_reloc_queue_insert): Likewise.
5049         (som_reloc_queue_fix): Likewise.
5050         (som_reloc_queue_find): Likewise.
5051
5052         * som.c (som_hppa_howto_table): SOM howto relocation table.
5053         (hppa_som_reloc): New function.
5054
5055         * som.c (struct reloc_queue): New structure to keep track of
5056         the last four multibyte relocations emitted.
5057         (enum pa_symbol_type): Type to fully describe the symbol types
5058         associated with .import/.export assembler directives.
5059
5060         * som.c: Include libhppa.h
5061
5062         * som.c (bfd_som_set_section_attributes): New function.
5063         (bfd_som_set_subsection_attributes): Likewise.
5064         (bfd_som_set_symboL_type): Likewise.
5065         (bfd_som_attach_unwind_info): Likewise.
5066         * som.h: Declare new exported functions.
5067
5068         * som.h (struct som_symbol): Add new fields to hold additional
5069         information needed to build/write symbol tables and fixup streams.
5070         (struct som_section_data_struct): Add new fields to hold additional
5071         information needed to build/write space and subspace headers.
5072         (som_symbol_data): New accessor macro for SOM symbol information.
5073         (R_HPPA_*): Basic relocation types to be used by the assembler.
5074
5075 Fri Nov 12 11:00:28 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
5076
5077         * trad-core.c (trad_unix_core_file_p): If new hook
5078         TRAD_CORE_ALLOW_ANY_EXTRA_SIZE defined, then skip the check for the
5079         corefile being too big.
5080         * hosts/i386sco.h: Define it.
5081
5082 Thu Nov 11 15:16:28 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
5083
5084         * bfd.c (struct _bfd): Add hppabsd_core_data.
5085         * targets.c (target_vector): Add hppabsd_core_vec.
5086         * hpux-core.c (hpux_core_core_file_p): Fail if an unknown core
5087         section is encountered during core section scanning.
5088         * hppabsd-core.c: New file.
5089         * config/hppabsd.mh: Enable HPPA BSD core files.
5090
5091         * elf32-hppa.c (hppa_elf_reloc): Remove DEFUN crud.  Remove code
5092         which is either commented out or ifdef'd out.  Add, update and
5093         clean comments.  Fix various indention and spacing problems.  Handle
5094         problems related to using "ble" to jump to a stub rather than "bl"
5095         (%r31 is trashed by "ble", but not by "bl").
5096         (NEW_INSTRUCTION): Put inside curly braces.
5097         (CURRENT_STUB_OFFSET): Fix indention problems.
5098         (hppa_elf_build_arg_reloc_stub): Fix indention and spacing problems.
5099         Add, update and clean comments.  Handle "ble" %r31 lossage problems.
5100         (hppa_elf_build_long_branch_stub): Likewise.
5101         (hppa_look_for_stubs_in_section): Likewise.
5102         (hppa_elf_stub_check): Remove obsolete function.
5103
5104         * hppa_stubs.h: Add new instructions to deal with %r31 lossage
5105         problems.  Delete unused instructions.
5106         
5107 Tue Nov  9 11:40:27 1993  Stan Shebs  (shebs@rtl.cygnus.com)
5108
5109         * m68klynx.c (TARGET_IS_BIG_ENDIAN_P): Define.
5110
5111 Tue Nov  9 11:26:05 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
5112
5113         * elfcode.h (elf_object_p): Rather than looking through an array
5114         of architectures, get the ELF EM_xxx code from the backend
5115         information.  Let the generic ELF target match any EM_xxx code not
5116         matched by another ELF target.  Call elf_backend_object_p to let
5117         the backend do more checks and set global information.
5118         * libelf.h (struct elf_backend_data): Added elf_machine_code and
5119         elf_backend_object_p fields.
5120         (struct bfd_elf_arch_map): Removed.
5121         (bfd_elf_arch_map, bfd_elf_arch_map_size): Don't declare.
5122         * elf32-target.h, elf64-target.h: Initialize elf_machine_code
5123         field with ELF_MACHINE_CODE.  Initialize elf_backend_object_p
5124         field with elf_backend_object_p (if it is defined).
5125         * elf32-gen.c, elf32-hppa.c, elf32-i386.c, elf32-i860.c,
5126         elf32-m68k.c, elf32-m88k.c, elf32-mips.c, elf32-sparc.c,
5127         elf64-gen.c (ELF_MACHINE_CODE): Defined.
5128         * elf32-mips.c: Include ecoffswap.h to get ECOFF swapping
5129         routines.
5130         (mips_elf_object_p): Set the right machine number.
5131         (mips_elf_ecoff_debug_swap): Defined.
5132         (elf_backend_object_p): Defined to be mips_elf_object_p.
5133         (elf_backend_ecoff_debug_swap): Defined to be
5134         mips_elf_ecoff_debug_swap.
5135         * elf.c (bfd_elf_arch_map, bfd_elf_arch_map_size): Removed.
5136
5137         * libbfd-in.h (target_vector, default_vector): Declare.
5138         * libbfd.h: Rebuilt.
5139         * format.c (target_vector, default_vector): Don't declare.
5140
5141         * elf32-mips.c (elf_mips_howto_table): Don't complain on overflow
5142         for R_MIPS_26.  Correct overflow detection requires matching the
5143         upper four bits of the destination against the PC.  From Ted Lemon
5144         <mellon@pepper.ncd.com>.
5145
5146         * bout.c (b_out_reloc_type_lookup): Return type should point to
5147         const data.
5148         * coff-i960.c (coff_i960_reloc_type_lookup): Likewise.
5149         * elf32-hppa.c (elf_hppa_reloc_type_lookup): Likewise.
5150         * mipsbsd.c (MY(reloc_howto_type_lookup)): Likewise.
5151         * coff-i386.c (coff_i386_reloc): Made howto const.
5152         * oasys.c (oasys_write_data): Made how const.
5153
5154         * libelf.h: Added some comments.
5155         (struct elf_backend_data): Added elf_backend_ecoff_debug_swap
5156         field.  Removed unused write_relocs field.
5157         * elf32-target.h: Adjusted elf_backend_data initialization
5158         accordingly.
5159         * elf64-target.h: Corrected elf_backend_data initialization to
5160         fill in all fields and to set elf_64_p to 1.
5161
5162 Mon Nov  8 18:13:14 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
5163
5164         * elfcode.h (bfd_section_from_shdr): Remove duplicate assignment
5165         to filepos in SHT_STRTAB case.
5166         (assign_file_position_for_section): Set BFD section filepos as
5167         well as ELF section sh_offset.
5168
5169         * reloc.c: Use const instead of CONST.
5170         (bfd_perform_relocation): Make variable howto a const pointer.
5171         * bfd-in2.h, libbfd.h: Rebuilt.
5172
5173 Mon Nov  8 12:19:15 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
5174
5175         * Makefile.in (realclean): Don't remove generated headers.  Reverts
5176         change of 2 Jul 1993.
5177
5178 Mon Nov  8 06:08:31 1993  D. V. Henkel-Wallace  (gumby@cirdan.cygnus.com)
5179
5180         * configure.bfd: make unixware equivalent to sysv4.
5181
5182         * config/i386-nlm.mt: bring in elf config; make it the default.
5183
5184 Sun Nov  7 20:21:38 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
5185
5186         * libbfd.c (bfd_put_8): Add parens around reference to "val"
5187         argument.
5188
5189 Fri Nov  5 21:45:09 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
5190
5191         * hosts/i386mach3.h (HOST_SEGMENT_SIZE),
5192         i386mach3.c (SEGMENT_SIZE, TEXT_START_ADDR): Correct values (?).
5193
5194 Fri Nov  5 15:17:57 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
5195
5196         * coffcode.h (coff_write_object_contents): Zero out internal_a.
5197
5198 Fri Nov  5 10:41:07 1993  David J. Mackenzie  (djm@thepub.cygnus.com)
5199
5200         * aoutx.h, archive.c, archures.c, bfd.c, cache.c, coffcode.h,
5201         core.c, ctor.c, format.c, init.c, libbfd.c, opncls.c, reloc.c,
5202         section.c, syms.c, targets.c:
5203         Doc cleanup (spelling, punctuation, grammar, formatting).
5204         * bfd-in2.h, libbfd.h: Rebuild.
5205
5206 Thu Nov  4 14:46:14 1993  John Gilmore  (gnu@rtl.cygnus.com)
5207
5208         * bfd-in.h (bfd_get_cacheable, bfd_set_cacheable):  New accessors.
5209         * bfd.c, opncls.c:  Improve comments on file descriptor cacheing.
5210
5211 Thu Nov  4 08:54:30 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
5212
5213         * From Pete Hoogenboom (hoogen@cs.utah.edu)
5214         * elf32-hppa.c (hppa_elf_get_section_contents): Fix logic error
5215         in last change.  Always rebuild symbol extension section the first
5216         time though if output sections exist (fixes ld -r problems).
5217
5218 Thu Nov 04 08:08:46 1993  Jeffrey Wheat  (cassidy@cygnus.com)
5219
5220         * Makefile.in: Add .PHONY for check and installcheck rules.
5221
5222 Tue Nov  2 14:42:27 1993  Bill Cox (bill@tarkas.cygnus.com)
5223
5224         * libbfd-in.h (artdata): Use long, not time_t for portability, at
5225           least to HPUX.  File below is a derived file.
5226
5227 Tue Nov  2 14:42:27 1993  Bill Cox (bill@tarkas.cygnus.com)
5228
5229         * libbfd.h (artdata): Use long, not time_t for portability, at
5230           least to HPUX.
5231
5232 Tue Nov  2 09:32:25 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
5233
5234         * config.bfd: Use bigmips for mips*-*-bsd*.
5235
5236 Mon Nov  1 14:30:09 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
5237
5238         * elfcode.h (elf_slurp_reloca_table, elf_slurp_reloc_table):
5239         Handle symbol number of zero.
5240
5241         * reloc.c (enum bfd_reloc_code_real): Added
5242         BFD_RELOC_MIPS_LITERAL, BFD_RELOC_MIPS_GOT16,
5243         BFD_RELOC_MIPS_CALL16, BFD_RELOC_MIPS_GPREL32.
5244         * bfd-in2.h: Rebuilt.
5245         * coff-mips.c (mips_bfd_reloc_type_lookup): Handle
5246         BFD_RELOC_MIPS_LITERAL.
5247         * elf32-mips.c (mips_reloc_map): Handle new relocs.
5248         (mips_elf_hi16_reloc, mips_elf_lo16_reloc): Rearrange _gp_disp
5249         checks slightly.
5250
5251         * aout-target.h (MY_bfd_debug_info_start, MY_bfd_debug_info_end,
5252         MY_bfd_debug_info_accumulat [sic]): Remove unused definitions.
5253         (MY_bfd_get_relocated_section_contents, MY_bfd_relax_section,
5254         MY_bfd_seclet_link): Define.
5255         (MY_bfd_reloc_type_lookup): Rename from
5256         MY_reloc_howto_type_lookup.
5257         (MY_bfd_make_debug_symbol): Rename from MY_make_debug_symbol.
5258         (MY(vec)): Use JUMP_TABLE rather than listing functions.
5259         * hp300hpux.c (MY_get_symtab, MY_get_symtab_upper_bound,
5260         MY_canonicalize_reloc, MY_write_object_contents): Don't define in
5261         terms of MY, because that causes a recusive invocation of CAT when
5262         expanded within JUMP_TABLE, and ANSI compilers don't expand
5263         recursive macros.
5264         * mipsbsd.c (MY_bfd_reloc_type_lookup): Rename from
5265         MY_reloc_howto_type_lookup, and don't define in terms of MY.
5266         (MY_canonicalize_reloc): Don't define in terms of MY.
5267         (aout_mips_little_vec, aout_mips_big_vec): Use JUMP_TABLE rather
5268         than listing functions.
5269
5270 Mon Nov  1 09:12:25 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
5271
5272         * config.bfd: Use m68k-elf for m68*-*-sysv4*.
5273
5274 See file ChangeLog.1
5275
5276 \f
5277 Local Variables:
5278 mode: indented-text
5279 left-margin: 8
5280 fill-column: 74
5281 version-control: never
5282 End: