* configure.in: add mips64-*-elf, mips64-*-ecoff, mips64el-*-elf,
mips64el-*-ecoff and mips64-big-*.
* defs.h: get rid of FORCE_LONG_LONG.
* mips-tdep.c (mips_find_saved_regs): add sd and sdc1 instruction
parsing. Change register size to be MIPS_REGSIZE.
Ian Lance Taylor [Thu, 17 Feb 1994 21:37:32 +0000 (21:37 +0000)]
Some support for PowerPC ELF, although it isn't in BFD yet.
* configure.in: If cpu is powerpc*, use ppc.
(ppc-*-sysv4*): Use object format elf.
* config/tc-ppc.h: Only declare a number of things if OBJ_COFF is
defined.
(TARGET_ARCH): Make it call ppc_arch.
(ppc_arch): Declare.
(TARGET_FORMAT): Set based on OBJ_COFF or OBJ_ELF.
(NO_STRING_ESCAPES): Define.
(LOCAL_LABEL, FAKE_LABEL_NAME): Define for OBJ_ELF.
* config/tc-ppc.c: Only define a number of functions of OBJ_COFF
is defined.
(md_pseudo_table): Most pseudo-ops are OBJ_COFF specific. Added
OBJ_COFF specific "bi" and "ei".
(md_parse_option): Fix handling of -u. Make -m601 set
PPC_OPCODE_601. If OBJ_ELF, accept -V and -Q.
(ppc_set_cpu): New function.
(ppc_arch): New function.
(md_begin): Call ppc_set_cpu.
(ppc_insert_operand): For a signed operand accept an unsigned
value, for IBM compatibility.
(ppc_byte): Don't call stringer for strings; instead, treat two
double quotes as a single double quote.
(ppc_comm): Set sy_tc.output for a .lcomm symbol.
(ppc_biei): New function.
(ppc_tc): If not OBJ_COFF, ignore first argument.
(ppc_fix_adjustable): Call as_bad_where, not as_bad.
(ppc_is_toc_sym): New function.
(md_apply_fix): Use ppc_is_toc_sym. Handle BFD_RELOC_16 and
BFD_RELOC_8.
David MacKenzie [Thu, 17 Feb 1994 18:19:25 +0000 (18:19 +0000)]
* corelow.c, exec.c, irix5-nat.c, mipsread.c, objfiles.c,
osfsolib.c, rs6000-nat.c, solib.c, symfile.c, utils.c,
xcoffexec.c: Use bfd_get_error and bfd_set_error and new error names.
Roland Pesch [Wed, 16 Feb 1994 01:52:25 +0000 (01:52 +0000)]
(1) remove dangling references to old internal sections (pass1, difference)
(2) move explanation of new MIPS options from summary section to MIPS-options
section; add summaries in appropriate spots.
(3) usual minor rephrasing in passing.
Ken Raeburn [Wed, 16 Feb 1994 01:18:32 +0000 (01:18 +0000)]
(lang_size_sections): Clear bfd_error before calling bfd_relax_section, in case
it returns false but doesn't flag an error. If an error is returned, indicate
which one it is in the error message.
Ken Raeburn [Wed, 16 Feb 1994 00:59:19 +0000 (00:59 +0000)]
(b_out_get_reloc_upper_bound): For BSS section, just return 0.
(aligncode): When shrinking, the addend should be set to the current offset in
the section plus the number of bytes of padding that will actually be retained.
(b_out_relax_section): If a section contains no relocations, don't bother
processing them.
(b_out_get_relocated_section_contents): Set reloc_done. Assert that
bfd_get_section_contents returns true. Check that relocs are properly ordered.
(b_out_get_relocated_section_contents, case ALIGNDONE): Assert that reloc's
addend falls between the current source offset and the raw size of the input
section.
Changed some indentation, deleted trailing whitespace, fixed some comments,
removed some "#if 1" lines.
(output_addr): New macro.
(calljx_callback, callj_callback, get_value, abs32code, aligncode,
b_out_get_relocated_section_contents): Use it for readability.
Per Bothner [Tue, 15 Feb 1994 22:31:19 +0000 (22:31 +0000)]
* readline.c (_rl_output_character_function), display.c:
Return int, not void, to conform with the expected arg of tputs.
* readline.c (init_terminal_io): tgetflag only takes 1 arg.
* readline.c (_rl_savestring): New function.
* chardefs.h: To avoid conflicts and/or warnings, define
savestring as a macro wrapper for _rl_savestring.
* display.c (extern term_xn): It's an int flag, not a string.
* charsdefs.h, rldefs.h: Remove HAVE_STRING_H-related junk.
Jeff Law [Tue, 15 Feb 1994 07:05:04 +0000 (07:05 +0000)]
* Finish basic read-write support for SOM archive libraries. Bugs
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.
Jeff Law [Sun, 13 Feb 1994 23:34:52 +0000 (23:34 +0000)]
* som.c (som_bfd_count_ar_symbols): New helper function.
(som_bfd_fill_in_ar_symbols): New helper function.
(som_slurp_armap): New function to read a SOM LST.
* gencode.c (main, gendefines): New -d option prints table of defines.
* interp.c (trap): Add a load of system calls.
(sim_memory_size): Now default to 8Mbyte.
(PARANOID): Keep vector of registers with undefined contents.
* remote-hms.c (readchar, hms_open, hms_fetch_register): Made more robust.
(remove_commands, add_commands): Add/remove hms-drain when target
is connected.
David MacKenzie [Sat, 12 Feb 1994 00:45:54 +0000 (00:45 +0000)]
Make all callers of malloc or realloc (including via obstacks)
check the result for NULL. Most set bfd_error to no_memory and
return in that case; a few are harder to fix, and are marked
with "FIXME <return type>".
* opncls.c (bfd_zalloc bfd_realloc): Check result of bfd_alloc.
* opncls.c (obstack_chunk_alloc): Define as malloc, not
bfd_xmalloc_by_size_t.
(_bfd_new_bfd): Check obstack_begin for 0 return.
* ieee.c (obstack_chunk_alloc): Define as malloc, not
bfd_xmalloc_by_size_t.
(ieee_archive_p): Check obstack_begin for 0 return and
obstack_finish for NULL return.
* hash.c (obstack_chunk_alloc): Define as malloc, not
bfd_xmalloc_by_size_t.
(bfd_hash_table_init_n): Check obstack_begin for 0 return and
obstack_finish for NULL return.
(bfd_hash_lookup): Check obstack_alloc for NULL return.
* ecofflink.c (obstack_chunk_alloc): Define as malloc, not
bfd_xmalloc_by_size_t.
bfd_ecoff_debug_accumulate
bfd_ecoff_debug_accumulate_other): Check obstack_alloc.
(add_file_shuffle add_memory_shuffle): Check obstack_alloc for
NULL return. Return boolean, not void.
(bfd_ecoff_debug_init): Check obstack_begin for 0 return.
(bfd_ecoff_debug_accumulate): Check add_file_shuffle
and add_memory_shuffle return.
(string_hash_newfunc): Check bfd_hash_allocate and bfd_hash_newfunc.
(bfd_ecoff_debug_accumulate): Check bfd_alloc.
(ecoff_add_string): Check add_memory_shuffle return.
Ian Lance Taylor [Fri, 11 Feb 1994 22:40:20 +0000 (22:40 +0000)]
* ldlang.c (lookup_name): Take new argument, force_load. If true,
reload the file even if it is already loaded.
(wild): Call lookup_name with force_load argument of 0.
(open_input_bfds): Call lookup_name with force_load argument of 1.
(print_symbol): Remove declaration of non-existent function.
(print_one_symbol): Return true rather than falling off end.
Ian Lance Taylor [Fri, 11 Feb 1994 18:16:19 +0000 (18:16 +0000)]
* config/tc-mips.c (macro): Do unaligned loads and stores
correctly when big endian, and give errors on overflow rather than
generating incorrect code.
Ken Raeburn [Thu, 10 Feb 1994 06:48:19 +0000 (06:48 +0000)]
* config/tc-sparc.c (sparc_ip): Reject integer values for pc-relative operand
fields. This forces "call 0" to become "jmpl %g0,%o7" with no relocs needed.
* config/obj-coffbfd.c (obj_coff_init_stab_section): Use memset
instead of memcpy to zero the initial stab symbol, duh.
* config/obj-elf.c (obj_elf_init_stab_section): Ditto.
* config/obj-som.c (obj_som_init_stab_section): Ditto.
Ken Raeburn [Tue, 8 Feb 1994 20:58:20 +0000 (20:58 +0000)]
* coff-alpha.c (reloc_nil): New function.
(alpha_howto_table): Use it as special_function to prevent certain relocs from
being adjusted by bfd_perform_relocation. IGNORE reloc should be
partial_inplace.
(alpha_ecoff_get_relocated_section_contents): Accept a LITERAL reloc on an
"ldl" instruction too.
Peter Schauer [Tue, 8 Feb 1994 09:01:03 +0000 (09:01 +0000)]
* README: Remove note about gcc warnings on alpha, these should be
gone now.
* c-exp.y, ch-exp.y, core.c, corelow.c, eval.c, fork-child.c,
m2-exp.y, minsyms.c, nlmread.c, parse.c, putenv.c, regex.c
remote-utils.c, stabsread.c: Include <string.h>.
* regex.c: Include "defs.h", change re_comp argument to const char *.
* infptrace.c (fetch_register, store_inferior_registers): Change
regaddr to type CORE_ADDR.
* config/alpha/alpha-nw.mt, config/alpha/alpha-osf1.mt (MT_CFLAGS):
Remove, no longer necessary now that we use bfd_vma for a CORE_ADDR.
Peter Schauer [Tue, 8 Feb 1994 08:57:46 +0000 (08:57 +0000)]
* elf32-hppa.c (CURRENT_STUB_OFFSET, hppa_elf_build_arg_reloc_stub,
hppa_elf_build_long_branch_stub): Cast to char * instead of int
before performing pointer arithmetic.