cruft (like the #pragma alloca for AIX).
In addition to that problem, the C alloca calls xmalloc, which
means checking for being out of memory can't work right. The
following changes remove all uses of alloca from BFD.
* hosts/solaris2.h: Remove alloca cruft.
* som.c: Replace alloca with a fixed size auto array.
* aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c,
ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c,
sunos.c: Replace alloca with malloc and appropriate error checking and
freeing.
* linker.c: Replace alloca with obstack_alloc.
* libbfd.h: Rebuilt.
cruft (like the #pragma alloca for AIX).
In addition to that problem, the C alloca calls xmalloc, which
means checking for being out of memory can't work right. The
following changes remove all uses of alloca from BFD.
* hosts/solaris2.h: Remove alloca cruft.
* som.c: Replace alloca with a fixed size auto array.
* aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c,
ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c:
Replace alloca with malloc and appropriate error checking and
freeing.
* linker.c: Replace alloca with obstack_alloc.
* libbfd.h: Rebuilt.
* trad-core.c (trad_unix_core_file_p): A non-zero, not zero,
return from bfd_seek indicates an error.
New macro TRAD_CORE_DSIZE_INCLUDES_TSIZE to replace
TRAD_CORE_STACK_OFFSET.
* hosts/symmetry.h: Define TRAD_CORE_DSIZE_INCLUDES_TSIZE and
TRAD_CORE_USER_OFFSET but not HOST_STACK_OFFSET.
field parameter.
(bfd_som_set_section_attributes): Use unsigned int rather than
unsigned char to avoid GNU-C extensions.
(bfd_som_attach_aux_hdr): Return a boolean to indicate success
or failure rather than aborting on failure.
* som.h (bfd_som_set_section_attributes): Fix prototype to match
som.c changes.
(bfd_som_attach_aux_hdr): Add prototype.
(hppa_som-gen_reloc_type): Likewise.
* elf32-hppa.c: Add a couple casts to make HP compiler happy.
(hppa_look_for_stubs_in_section): Do not return false on failure
until rest of code is ready to handle it. Abort for now.
action in case where caller specified no argument relocation.
(hppa_elf_build_linker_stub): Try again to get the sym_ptr_ptr
right in the original relocation and the stub's relocation.
unused symbols argument.
* elf32-hppa.c (hppa_elf_stub_reloc): Accept asymbol ** rather
than asymbol * for original target symbol. All callers changed.
Set reloc->sym_ptr_ptr appropriately.
(hppa_elf_build_linker_stub): Set reloc->sym_ptr_ptr correctly.
(hppa_elf_look_for_stubs_in_section): No longer need symbols
argument. Use the output symbols when canonicalizing the relocs,
creating them if necessary.
* linker.c (_bfd_generic_link_output_symbols): Do not rebuild/clobber
the output symbols if they already exist.
* targets.c (BFD_SEND, BFD_SEND_FMT): Add debugging versions that
check all the pointer dereferences. Enabled via DEBUG_BFD_SEND.
* bfd-in2.h: Rebuilt.
PARAMize and staticize rest of functions. Delete unused
functions. Delete unused/unnecessary arguments to some functions.
Group static vars together. Abort for bad errors until we have
error code propogation working. Work on spacing and indention.
Add FIXMEs for unresolved problems. Use enums rather than
#defines for lots of things. Merge two functions which build
linker stubs into a single function (so they can easily share a
ton of common code).
* ecoff.c, ecofflink.c, ecoffswap.h, srec.c: Likewise.
* elf32-i386.c: Likewise.
* elfcode.h (bfd_section_from_shdr): Make i unsigned; remove old
#if 0 code.
(elf_write_phdrs): Make i unsigned.
(map_program_segments): Make i and n_left unsigned.
(assign_file_positions_except_relocs): Make i unsigned.
(write_shdrs_and_ehdr): Make count unsigned.
(assign_file_positions_for_relocs): Make i unsigned.
(NAME(bfd,elf_write_object_contents)): Make count unsigned.
(section_from_elf_index): Make index argument unsigned.
* elf32-hppa.h (elf_hppa_tc_symbol): Add new arguments.
(elf_hppa_tc_make_sections): Likewise.
(elf_hppa_final_processing): Add extern decl.
* elf32-hppa.c: First half of major cleanup. Add/cleanup lots of
comments. PARAMize some static functions. Delete unused functions.
Delete unused/unnecessary arguments to many functions. Group
static vars together. Collapse common case statements together
in many places. Use default case when possible instead of listing
each case separately. Abort for bad errors until we get error
code propogation working. Work on spacing and indention problems.
Add FIXMEs for some unresolved problems. Delete hopelessly broken
COMPLEX relocation support (it's never used anyway).
(hppa_elf_rebuild_insn): Delete. Moved into libhppa.h.
(elf_hppa_tc_symbol): Accept and use new arguments (symext chains).
(elf_hppa_tc_make_sections): Likewise.
* ecoff.c (ecoff_write_object_contents): Make sure .bss section
ends on a page boundary if there is no symbol table.
(ecoff_bfd_final_link): Don't set symhdr->magic here.
operation to avoid OSF 1.3 cc bug.
* ecoff.c (ecoff_write_object_contents): Make text_size, data_size
and bss_size bfd_size_type instead of unsigned long. Make
text_start and data_start bfd_vma instead of unsigned long.
* ecofflink.c (ecoff_add_string): Remove incorrect cast of return
value.
Support for PowerPC NetWare.
* config.bfd (powerpc-*-netware*): New target; use ppc-nlm.
* config/ppc-nlm.mt: New file.
* configure.in (nlm32_powerpc_vec): New target vector; use
nlm32-powerpc.o, nlm32.o, nlm.o.
* targets.c (nlm32_powerpc_vec): Declare.
* Makefile.in (BFD32_BACKENDS): Add nlm32-powerpc.o.
(CFILES): Should add nlm32-powerpc.c, but didn't, because the
dependencies can't be sanitized.
end-sanitize-powerpc-netware
Initial support for PowerPC ELF. Done without an ABI, and
probably to be changed when I get an ABI.
* config.bfd (powerpc-*-sysv4*): New target; use ppc-elf.
* config/ppc-elf.mt: New file.
* configure.in (bfd_elf32_powerpc_vec): New target vector; use
elf32-powerpc.o, elf32.o, elf.o.
* elf32-powerpc.c: New file.
* elfcode.h (prep_headers): Add bfd_arch_powerpc case.
(elf_set_arch_mach): Likewise.
* targets.c (bfd_elf32_powerpc_vec): Declare.
* Makefile.in (BFD32_BACKENDS): Add elf32-powerpc.o.
(CFILES): Add elf32-powerpc.c.
Rebuilt dependencies.
surely remain as this hasn't been tested all that much.
* som.c (SOM_LST_HASH_SIZE, SOM_LST_MODULE_LIMIT): Define.
(struct som_misc_symbol_info): New structure to hold info necessary
to build both normal and library symbol tables.
(som_derive_misc_symbol_info): New function to derive info necessary
to build both normal and library symbol tables.
(som_build_and_write_symbol_table): Use new function to derive misc
symbol information.
(som_slurp_symbol_table): Update backend private data for symbols
appropriately.
(som_bfd_prep_for_ar_write): New function.
(som_bfd_ar_symbol_hash): New function.
(som_bfd_ar_write_symbol_stuff): New function.
(som_write_armap): Flesh out.
(som_vec): Fix ar padding character.
* som.c: Consistently use memset rather than bzero.