Ian Lance Taylor [Mon, 13 Mar 1995 21:55:44 +0000 (21:55 +0000)]
* elfcode.h (write_relocs): Make static. Use PTR argument as a
pointer to a boolean variable set to true if something fails.
Cast to PTR rather than void *.
(sym_is_global): Rewrite for clarity.
(map_program_segments): If the program header size is too small,
call _bfd_error_handler and return failure rather than aborting.
(NAME(bfd_elf,write_object_contents)): Pass boolean variable when
calling write_relocs.
(elf_symbol_from_bfd_symbol): Use BFD_ASSERT rather than abort.
(struct elf_info_failed): Define.
(NAME(bfd_elf,size_dynamic_sections)): Declare variables in inner
blocks. Pass elf_info_failed structure when calling
elf_export_symbol and elf_adjust_dynamic_symbol.
(elf_export_symbol): Treat data argument as elf_info_failed rather
than bfd_link_info. Set failed field on error.
(elf_adjust_dynamic_symbol): Likewise.
(struct elf_finfo_failed): Define.
(elf_bfd_final_link): Pass elf_finfo_failed structure when calling
elf_link_output_extsym. Use BFD_ASSERT rather than abort.
(elf_link_output_extsym): Treat data argument as elf_finfo_failed
rather than elf_final_link_info. Set failed field on error.
(elf_link_input_bfd): Use BFD_ASSERT rather than abort.
(elf_reloc_link_order): Likewise.
Ian Lance Taylor [Mon, 13 Mar 1995 20:39:36 +0000 (20:39 +0000)]
* elf32-sparc.c (elf32_sparc_size_dynamic_sections): Only write
out PLTRELSZ, PLTREL and JMPREL relocs if there is a .rela.plt
section. Solaris 2.4 apparently does not handle empty reloc
information correctly.
Ken Raeburn [Sat, 11 Mar 1995 00:30:30 +0000 (00:30 +0000)]
* config/obj-coff.c: Redo my 10 Jan change, but get it right this time. :-)
(fixup_segment): If linkrelax is set, just return.
(write_object_file): Don't treat h8300 and z8k specially with regard to fixups.
* config/tc-h8300.c (md_begin): Set linkrelax.
* config/tc-z8k.c (md_begin): Ditto.
Ken Raeburn [Sat, 11 Mar 1995 00:17:26 +0000 (00:17 +0000)]
* gas/h8300/ffxx1.s: Add .word 0 at the end to eliminate uncertainty as to
whether there should be trailing bytes in the output file.
* gas/h8300/ffxx1.d: Adjust reloc values to permit an addend value of
0x00000000ffffffff on 64-bit hosts. (I'm not sure if this is correct.) End
with "..." to match trailing zero bytes.
Ian Lance Taylor [Fri, 10 Mar 1995 20:02:51 +0000 (20:02 +0000)]
* ldlex.l: Return -lFILENAME as the token LNAME.
* ldgram.y: Add token LNAME.
(input_list): Treat LNAME like NAME, but pass it to
lang_add_input_file as lang_input_file_is_l_enum.
* ld.texinfo: Document using -lFILENAME in INPUT.
Ian Lance Taylor [Fri, 10 Mar 1995 18:13:31 +0000 (18:13 +0000)]
* objcopy.c (strip_options): Add --keep-symbol.
(copy_options): Likewise.
(copy_usage): Mention --keep-symbol and -K.
(strip_usage): Likewise.
(keep_symbols): New static variable.
(is_strip_symbol): Adjust the return value according to
keep_symbols.
(strip_main): Handle -K. For -N, check that -K was not given.
(copy_main): Likewise.
* binutils.texi, objcopy.1, strip.1: Document -K.
Peter Schauer [Fri, 10 Mar 1995 11:24:30 +0000 (11:24 +0000)]
* gdb.base/funcargs.exp (call_after_alloca): Remove `next'
test, it causes stepping out of call_after_alloca_subr with
optimizing compilers.
(localvars_in_indirect_call): Consume GDB prompt if `finish'
fails.
* gdb.c++/misc.cc (class Contains_static_instance,
class Contains_nested_static_instance),
gdb.c++/classes.exp (test_static_members): Test printing of
a class that contains a static instance of the class.
Peter Schauer [Fri, 10 Mar 1995 11:21:32 +0000 (11:21 +0000)]
Fix problems with infinite recursion when printing a class
that contains a static instance of the class.
* cp-valprint.c (dont_print_vb_obstack): Renamed from
dont_print_obstack, made static.
(dont_print_statmem_obstack): New obstack, controls printing
of static member classes.
(_initialize_cp_valprint): Initialize it.
(cp_print_static_field): New function, handles printing of
static members.
(cp_print_value_fields): New parameter dont_print_statmem to
handle recursive printing of static member classes, use
cp_print_static_field to handle printing of static members.
* c-valprint.c (cp_print_value_fields): Update prototype and
call to include additional dont_print_statmem parameter.
* c-valprint.c, f-valprint.c (dont_print_obstack): Remove unused
extern declaration.
* alpha-tdep.c, findvar.c, infptrace.c: Include <string.h>.
* config/alpha/tm-alpha.h (FRAME_FIND_SAVED_REGS): Call
alpha_find_saved_regs if fi->saved_regs is still NULL.
* elfread.c (elf_symtab_read): Ensure that the filename field
of a minsym is nonempty. Ignore solib trampoline symbols from
the main symbol table, they might have a bogus value.
* procfs.c (set_proc_siginfo), config/alpha/alpha-osf2.mh:
Fix typos in comments.
Jim Kingdon [Fri, 10 Mar 1995 01:26:09 +0000 (01:26 +0000)]
* mdebugread.c (parse_symbol, psymtab_to_symtab_1): Initialize
pdr.framereg field of MIPS_EFI_SYMBOL_NAME symbol to -1. That way
we know whether the PDR ever got set.
* mips-tdep.c (find_proc_desc): If pdr.framereg field is -1, don't
use the PDR, just examine prologues instead.
* coffswap.h (coff_swap_scnhdr_out): If the line number count or
the reloc count does not fit, print an error and return 0.
* coffcode.h (coff_write_object_contents): Check return value of
coff_swap_scnhdr_out.
* ecoff.c (_bfd_ecoff_write_object_contents): Check return value
of bfd_coff_swap_scnhdr_out.
* bfd.c: Include <stdarg.h> or <varargs.h>, depending upon
ANSI_PROTOTYPES.
(bfd_error_handler_type): New global type.
(_bfd_error_program_name): New static variable.
(_bfd_default_error_handler): New static function.
(_bfd_error_handler): New BFD private global variable.
(bfd_set_error_handler): New globally visible function.
(bfd_set_error_program_name): New globally visible function.
* libbfd-in.h (_bfd_error_handler): Declare.
* bfd-in2.h, libbfd.h: Rebuild.
David Edelsohn [Thu, 9 Mar 1995 21:54:14 +0000 (21:54 +0000)]
Delete this patch, it breaks the h8300 assembler.
Tue Jan 10 13:34:14 1995 Ken Raeburn <raeburn@cujo.cygnus.com>
* config/obj-coff.c (write_object_file): Don't treat h8300 and z8k
specially with regard to fixups.
* aoutx.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter,
and use it instead of bfd_get_symcount. Check r_index after
setting r_extern based on whether this is a base relative reloc.
(NAME(aout,swap_std_reloc_IN)): Add symcount parameter, and use it
instead of bfd_get_symcount.
(NAME(aout,slurp_reloc_table)): Pass bfd_get_symcount to reloc
swap routines.
* libaout.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter
to declaration.
(NAME(aout,swap_std_reloc_in)): Likewise.
* sunos.c (sunos_canonicalize_dynamic_reloc): Pass
info->dynsym_count to reloc swap routines.
* aout-ns32k.c (MY_swap_std_reloc_in): Add symcount parameter.
* hp300hpux.c (MY(swap_std_reloc_in)): Likewise.
(MY(slurp_reloc_table)): Pass bfd_get_symcount to reloc swap
routine.
* i386lynx.c (NAME(lynx,swap_ext_reloc_in)): Add symcount
parameter.
(NAME(lynx,swap_std_reloc_in)): Likewise.
(NAME(lynx,slurp_reloc_table)): Pass bfd_get_symcount to reloc
swap routines.
Stu Grossman [Thu, 9 Mar 1995 00:25:15 +0000 (00:25 +0000)]
* source.c (forward_search_command reverse_search_command): Set
convenience variable $_ to be the line # of the match.
* symtab.c (decode_line_1): Allow convenience variables to be
used in line specs (for breakpoints and such).
* config/tc-mips.c (md_begin): Check for a cpu string of r8000 or
r10000. If mips_isa is 4, set the machine number to 8000.
(append_insn): If mips_isa is at least 4, don't generate nops for
coprocessor delays. Check INSN_READ_FPR_R when setting
mips_cprmask[1].
(mips_emit_delays): If mips_isa is at least 4, don't generate nops
for coprocessor delays.
(mips_ip): Check for INSN_ISA4 instructions. Handle new argument
types 'h', 'R', 'N', and 'M'.
(md_longopts): Accept "mips4".
(md_parse_option): Handle -mips4, and -mcpu=10000 and -mcpu=8000.
(s_mipsset): Permit .set mips4.
Ken Raeburn [Wed, 8 Mar 1995 08:23:24 +0000 (08:23 +0000)]
* m68k-dis.c (BREAK_UP_BIG_DECL): Make secondary array static and const.
(reg_names): Now const.
(print_insn_arg): Arrays cacheFieldName and names now const.
(print_indexed): Array scales now const.
Ken Raeburn [Wed, 8 Mar 1995 08:20:11 +0000 (08:20 +0000)]
Separated out opcode aliases from m68k opcode table, to reduce table size and
processing time. Aliases are now a separate table.
* m68k.h (enum m68k_architecture): Deleted.
(struct m68k_opcode_alias): New type.
(m68k_opcodes): Now const. Deleted opcode aliases with exactly matching
constraints, values and flags. As a side effect of this, the
MOTOROLA_SYNTAX_ONLY and MIT_SYNTAX_ONLY macros, which so far as I know were
never used, now may need re-examining.
(numopcodes): Now const.
(m68k_opcode_aliases, numaliases): New variables.
(endop): Deleted.
[DONT_DEFINE_TABLE]: Declare numopcodes, numaliases, and m68k_opcode_aliases;
update declaration of m68k_opcodes.
Ken Raeburn [Wed, 8 Mar 1995 08:10:49 +0000 (08:10 +0000)]
* config/tc-m68k.c (opcode_ptr): Return pointer to const.
(md_begin): Make hash table errors fatal. Process opcode aliases after main
opcode table.
(md_apply_fix_2, case 4): Recode setting of lower_limit to avoid gcc warning.
David Edelsohn [Wed, 8 Mar 1995 05:19:46 +0000 (05:19 +0000)]
* arc-dis.c (print_insn_arc_base): Split into big and little fns.
(print_insn_arc_{host,graphics,audio}): Likewise.
(print_insn): Add prototype.
Delete "+ 4" addition to relative branch address.
(arc_get_disassembler): New arg `big_p'. Return little or big
print fn accordingly.
* arc-opc.c (arc_opcode_init_tables): Init arc_operand_map once.
(arc_opcode_supported): Use ARC_OPCODE_CPU to ignore byte order.
(arc_opval_supported): Likewise.
* disassemble.c (disassembler): Pass big endian flag to
arc_get_disassembler.
* coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_adjust_symndx.
(bfd_coff_adjust_symndx): Define.
(coff_adjust_symndx): Define as NULL if not already defined.
(bfd_coff_std_swap_table): Initialize new field to
coff_adjust_symndx.
* cofflink.c (coff_link_input_bfd): Call coff_adjust_symndx if it
is defined.
* coff-a29k.c (coff_a29k_adjust_symndx): New static function.
(coff_adjust_symndx): Define before including coffcode.h.
* libcoff.h: Rebuild.
Stu Grossman [Tue, 7 Mar 1995 09:26:39 +0000 (09:26 +0000)]
* Makefile.in: Add rules for monitor.o and rom68k-rom.o to make
Sun make (with VPATH) work...
* monitor.c monitor.h rom68k-rom.c: Serious cleanup to make IDP
(rom68k) target work right.
* array-rom.c op50-rom.c w89k-rom.c: Partial updates to new
monitor.c interface. More work needs to be done here.
* config/m68k/tm-monitor.h: Change DECR_PC_AFTER_BREAK to 0 to
match the IDP monitor. Also, set NUM_REGS to 18 cuz there's no
floating-point for this card.
Stu Grossman [Tue, 7 Mar 1995 09:03:37 +0000 (09:03 +0000)]
* serial.h ser-go32.c ser-go32-para.c ser-mac.c ser-tcp.c
ser-unix.c: Add SERIAL_SETSTOPBITS to set the number of stopbits
(needed for IDP board?!?!?).
Jeff Law [Mon, 6 Mar 1995 17:04:18 +0000 (17:04 +0000)]
* hppa.h (delay_type): Delete unused enumeration.
(pa_opcode): Replace unused delayed field with an architecture
field.
(pa_opcodes): Mark each instruction as either PA1.0 or PA1.1.
Jeff Law [Mon, 6 Mar 1995 17:02:38 +0000 (17:02 +0000)]
* config/tc-hppa.c: Change all occurences of pa-89 with pa-11 to
be consistent with current naming conventions.
(md_begin): Set a default architecture and machine type.
(pa_ip): If the current instruction specifies a newer machine type
than the current machine type, then update the current machine
type.
(need_pa11_opcode): Likewise.
Jeff Law [Mon, 6 Mar 1995 17:00:18 +0000 (17:00 +0000)]
* cpu-hppa.c (arch_info_struct): Support both PA1.0 and PA1.1
machine types.
(bfd_hppa_arch): Link in both PA1.0 and PA1.1 architecture info
structures.
* libhppa.h (enum pa_arch): New enumeration to describe the
different variants of the PA architecture.
* som.c (som_object_setup): Use new enumeration to set machine
type.
(som_finish_writing): If the machine type is PA1.1, then use the
PA1.1 machine identifier in the output file.
Per Bothner [Sat, 4 Mar 1995 02:24:26 +0000 (02:24 +0000)]
* valops.c (value_cast): Cehck for cast to array type *before*
we coerce array to pointer (in case arg2 is already array).
* valops.c (call_function_by_hand): Set using_gcc to 2 if using
gcc2. Needed for REG_STRUCT_HAS_ADDR to work on sparc.
Also check REG_STRUCT_HAS_ADDR for union, array and string types.
* valops.c (call_function_by_hand): Re-arrange code for pushing
paramaters on the stack so we can do better STACK_ALIGN.
* valops.c (call_function_by_hand): Call error if the number
of arguments is fewer than parameter types in function type.
David Edelsohn [Sat, 4 Mar 1995 01:37:30 +0000 (01:37 +0000)]
* sparc-tdep.c (sparc_extract_struct_value_address): Move
sparc64 support to here.
(sparc64_extract_struct_value_address): Deleted.
(dump_ccreg): Add a prototype so long long arg -> int.
* sparc/tm-sp64.h (USE_STRUCT_CONVENTION): Define.
(EXTRACT_STRUCT_VALUE_ADDRESS): Delete.
Jeff Law [Sat, 4 Mar 1995 00:55:45 +0000 (00:55 +0000)]
* hpread.c (hpread_record_lines): New argument "offset". All
callers changed. Use it to handle dynamic address relocation.
(hpread_build_psymtabs): Adjust texthigh as we read each function
debug symbol. Fix computation of texthigh.
(hpread_read_subrange_type): Work around macro bugs in HP's
compilers.
(hpread_process_one_debug_symbol): Correctly map source lines.
* emultempl/elf32.em (hold_rel): New static variable.
(gld${EMULATION_NAME}_place_orphan): Place readonly sections with
contents whose names begin with ".rel" after hold_rel. Remove the
assertion which checked for unplaced .rel sections. Don't try to
sort the section into place if place->bfd_section is NULL.
(gld${EMULATION_NAME}_place_section): Set hold_rel to the first
section beginning with ".rel".