Ian Lance Taylor [Tue, 16 Jan 1996 20:51:22 +0000 (20:51 +0000)]
* ldgram.y (%union): Add phdr field.
(phdr): Use phdr_qualifiers rather than opt_hdrs and opt_at.
(phdr_qualifiers): New nonterminal. Add support for FLAGS.
(opt_hdrs, hdr): Remove.
(phdr_val): New nonterminal.
* ldlang.c (lang_new_phdr): Replace hdrs parameter with filehdr
and phdrs parameters. Add flags parameter.
(lang_record_phdrs): Update for changes to lang_phdr. Pass flags
to bfd_record_phdr.
* ldlang.h (struct lang_phdr): Replace hdrs field with filehdr and
phdrs fields. Add flags field.
(LANG_PHDR_FILEHDR, LANG_PHDR_PHDRS): Remove.
(lang_new_phdr): Update declaration.
* ld.texinfo: Document FLAGS.
Stan Shebs [Tue, 16 Jan 1996 20:12:17 +0000 (20:12 +0000)]
* mpw-config.in (BUILD_NLMCONV, BUILD_SRCONV, SYSINFO_PROG,
BUILD_DLLTOOL): Put definitions for these into makefile when
configuring, instead of always clearing in mpw-make.sed.
* mpw-make.sed: Edit out any host_alias or target_alias settings,
fix pathname to BFD internal include files, remove dependency
calculation rules.
Stu Grossman [Tue, 16 Jan 1996 19:53:13 +0000 (19:53 +0000)]
* Makefile.in (CLIBS): Add LIBS to allow libraries to be
specified on the make command line (via make LIBS=xxx).
start-sanitize-gm
* configure.in (enable-gm): magic.o -> gmagic.o.
end-sanitize-gm
Tue Jan 16 18:00:35 1996 James G. Smith <jsmith@cygnus.co.uk>
* remote-mips.c (pmon_opn, pmon_wait, pmon_makeb64, pmon_zeroset,
pmon_checkset, pmon_make_fastrec, pmon_check_ack,
pmon_load_fast): New functions. Support for the PMON monitor world.
(common_open): New function to merge support for different monitors.
(mips_open): Use common_open().
(mips_send_command): New function.
(mips_send_packet): Scan out-of-sequence packets.
(mips_enter_debug, mips_exit_debug): New functions.
(pmon_ops): New target definition structure.
These changes provide the initial support for the PMON (3.0.83)
monitor that appears on the Cogent (CMA101) Vr4300 development
board. The changes do not affect the IDT monitor support, other than
in the area of dealing with out-of-sequence packets.
Ian Lance Taylor [Mon, 15 Jan 1996 22:38:22 +0000 (22:38 +0000)]
* emultempl/sunos.em (gld${EMULATION_NAME}_before_allocation):
Don't make a shared library because of an undefined reference to
__GLOBAL_OFFSET_TABLE_.
Ian Lance Taylor [Mon, 15 Jan 1996 20:47:32 +0000 (20:47 +0000)]
* coffgen.c (coff_find_nearest_line): Don't try to cache
information in sections that are not owned by a BFD. From Richard
Henderson <richard@atheist.tamu.edu>.
Ian Lance Taylor [Mon, 15 Jan 1996 20:25:53 +0000 (20:25 +0000)]
* elf32-mips.c: Numerous changes to dynamic linking code, mostly
from Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
* elflink.h (elf_link_output_extsym): Remove special check for
_rld_new_interface.
Ian Lance Taylor [Mon, 15 Jan 1996 20:13:04 +0000 (20:13 +0000)]
Add some Irix 5 support, mostly from Kazumoto Kojima
<kkojima@info.kanagawa-u.ac.jp>:
* emulparams/elf32bmip.sh (SCRIPT_NAME): Change to elfmips.
(SHLIB_TEXT_START_ADDR): Define.
(OTHER_GOT_SYMBOLS): Define.
(OTHER_READWRITE_SECTIONS): Remove initialization of _gp.
(EXECUTABLE_SYMBOLS): Don't define.
(DYNAMIC_LINK): Don't define.
* emulparams/elf32lmip.sh: Same changes as elf32bmip.sh.
* scripttempl/elfmips.sc: New file.
* configure.host (mips*-dec-bsd*): Change mips to mips*.
(mips*-sgi-irix4*): Likewise.
(mips*-sgi-irix5*): New entry.
* Makefile.in (eelf32bmip.c): Depend upon elfmips.sc rather than
elf.sc.
(eelf32lmip.c): Likewise.
Ian Lance Taylor [Fri, 12 Jan 1996 21:11:43 +0000 (21:11 +0000)]
* subsegs.c (section_symbol): Don't try to look up the section
symbol in the hash table. It should be possible to have a symbol
with the same name as a section, but no connection to it.
Ian Lance Taylor [Fri, 12 Jan 1996 20:01:17 +0000 (20:01 +0000)]
* ldmisc.c: Include <stdarg.h> rather than <varargs.h> if
ANSI_PROTOTYPES is defined. Remove special handling of
WINDOWS_NT. Various indendation fixes.
(vfinfo): Change fmt parameter to const char *.
(info_msg): Write <stdarg.h> version.
(einfo, minfo, finfo): Likewise.
(info_assert): Change file parameter to const char *.
* ldmisc.h (einfo, minfo, info_msg): If ANSI_PROTOTYPES is
defined, use a real prototype.
(info_assert): Change first parameter to be const char *.
Ian Lance Taylor [Fri, 12 Jan 1996 19:37:58 +0000 (19:37 +0000)]
Fri Jan 12 14:35:58 1996 David Mosberger-Tang <davidm@AZStarNet.com>
* alpha-opc.h (alpha_insn_set): VAX floating point opcode was
incorrectly defined as 0x16 when it should be 0x15.
(FLOAT_FORMAT_MASK): function code is 11 bits, not just 7 bits!
(alpha_insn_set): added cvtst and cvttq float ops. Also added
excb (exception barrier) which is defined in the Alpha
Architecture Handbook version 2.
* alpha-dis.c (print_insn_alpha): Fixed special-case decoding for
OPERATE_FORMAT_CODE type instructions. The bug caused mulq to be
disassembled as or, for example.
Ian Lance Taylor [Fri, 12 Jan 1996 19:13:49 +0000 (19:13 +0000)]
* elf.c (_bfd_elf_print_private_bfd_data): Dump contents of
dynamic section, if there is one.
* elf-bfd.h (struct elf_size_info): Add swap_dyn_in field.
(bfd_elf32_swap_dyn_in): Change type of second parameter to PTR.
(bfd_elf64_swap_dyn_in): Likewise.
* elfcode.h (elf_swap_dyn_in): Change type of second parameter to
PTR.
(NAME(_bfd_elf,size_info)): Initialize swap_dyn_in field.
Fred Fish [Fri, 12 Jan 1996 16:01:29 +0000 (16:01 +0000)]
* lynx-nat.c, irix4-nat.c, sparc-nat.c: Include gdbcore.h
to get "struct core_fns" defined.
* Makefile.in (lynx-nat.o, irix4-nat.o, sparc-nat.o):
Are dependant upon gdbcore_h.
Ian Lance Taylor [Fri, 12 Jan 1996 04:29:59 +0000 (04:29 +0000)]
* xcofflink.c (xcoff_link_add_symbols): Create the special
sections if we see a DYNAMIC object, in case that is the only
XCOFF input object we see.
PR 8788.
Per Bothner [Fri, 12 Jan 1996 01:31:37 +0000 (01:31 +0000)]
* stabsread.c (define-symbol): Use invisible references
for TYPE_CODE_SET and TYPE_CODE_BITSTRING too.
* eval.c (evaluate_subexp_standard): When known, use the formal
parameter type as the expected type when evaluating arg expressions.
* ch-lang.c (evaluate_subexp_chill): Likewise (for MULTI_SUBSCRIPT).
This (with a fix to gcc/config/sparc/sparc.h) fixes PR chill/8742.
Ian Lance Taylor [Thu, 11 Jan 1996 21:06:42 +0000 (21:06 +0000)]
* elf32-mips.c: Extensive changes for a start at dynamic linking
support, from Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
* elf-bfd.h (struct elf_backend_data): Add type_change_ok field.
(struct elf_backend_data): Remove
elf_backend_create_program_headers field. Add
elf_backend_additional_program_headers and
elf_backend_modify_segment_map fields.
* elfxx-target.h (elf_backend_type_change_ok): Define if not
defined.
(elf_backend_additional_program_headers): Likewise.
(elf_backend_modify_segment_map): Likewise.
(elf_backend_create_program_headers): Don't define.
(elfNN_bed): Change to account for field changes.
* elf.c (assign_file_positions_for_segments): Call new
modify_segment_map backend function. Don't call old
create_program_headers backend function.
(get_program_header_size): Call additional_program_headers rather
than create_program_headers.
* elflink.h (elf_link_add_object_symbols): Initialize
type_change_ok from new backend field.
(elf_link_output_extsym): Don't warn if _rld_new_interface is
defined.
(elf_reloc_link_order): Treat a reloc against a defined symbol as
a reloc against the appropriate section.
Ian Lance Taylor [Thu, 11 Jan 1996 16:47:10 +0000 (16:47 +0000)]
* debug.c (debug_make_undefined_tagged_type): Make sure we are
given a kind of type we can handle.
(debug_write_type): Handle undefined enums and structs.
(debug_write_class_type): Handle undefined classes.
* prdbg.c (pr_enum_type): Handle an undefined enum.
Also comment changes to debug.h.
Brendan Kehoe [Thu, 11 Jan 1996 00:16:56 +0000 (00:16 +0000)]
Wed Jan 10 16:08:49 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
* configure.in, configure: Recognize rs6000-*-aix4*.
* config/powerpc/xm-aix.h: Reduce to include "xm-aix4.h".
* config/rs6000/aix4.mh (XM_FILE): Point to xm-aix4.h.
* config/rs6000/xm-aix4.h: New file.
* config/xm-aix4.h: New file.
From the Mentor work...enable configure & build on rs6000-ibm-aix4.1.*.
Note this is an unbelievably buggy debugger on this host.
Fred Fish [Wed, 10 Jan 1996 18:40:24 +0000 (18:40 +0000)]
From Wilfried Moser <wilfried.moser@aut.alcatel.at>:
* gdbserver/low-linux.c: New file.
* remote.c (remote_read_bytes): Fix aborts on larger packets.
* config/i386/linux.mh (GDBSERVER_DEPFILES, GDBSERVER_LIBS):
Define.
* stabsread.c (define_symbol): If register value is too large,
tell what it is and what max is.
Tue Jan 9 15:22:53 1996 David Mosberger-Tang <davidm@azstarnet.com>
* coff-alpha.c (alpha_relocate_section): During final link, allow
output .lita section to be bigger than 64k by adjusting gp value
on a per-input section basis.
* libecoff.h (struct ecoff_tdata): Add issued_multiple_gp_warning
field.
(struct ecoff_section_tdata): Add gp field.
Tue Jan 9 12:00:36 1996 Ian Lance Taylor <ian@cygnus.com>
Handle Alpha ECOFF changes in OSF/1 3.2.
* libecoff.h (struct ecoff_backend_data): Add get_elt_at_filepos
field.
* coff-alpha.c: Include "aout/ar.h".
(alpha_ecoff_get_relocated_section_contents): Don't require an
ALPHA_R_IGNORE reloc after an ALPHA_R_GPDISP reloc, since OSF/1
3.2 doesn't generate one.
(alpha_relocate_section): Likewise.
(alpha_ecoff_slurp_armap): Define.
(alpha_ecoff_slurp_extended_name_table): Define.
(alpha_ecoff_construct_extended_name_table): Define.
(alpha_ecoff_truncate_arname): Define.
(alpha_ecoff_write_armap): Define.
(alpha_ecoff_generic_stat_arch_elt): Define.
(alpha_ecoff_update_armap_timestamp): Define.
(ARFZMAG): Define.
(alpha_ecoff_read_ar_hdr): New static function.
(alpha_ecoff_get_elt_at_filepos): New static function.
(alpha_ecoff_openr_next_archived_file): New static function.
(alpha_ecoff_get_elt_at_index): New static function.
(alpha_ecoff_backend_data): Initialize get_elt_at_filepos field.
(ecoffalpha_little_vec): Change BFD_JUMP_TABLE_ARCHIVE from
_bfd_ecoff to alpha_ecoff.
* ecoff.c (ecoff_link_add_archive_symbols): Use get_elt_at_filepos
field from backend structure, rather than always calling
_bfd_get_elt_at_filepos.
* coff-mips.c (mips_ecoff_backend_data): Initialize
get_elt_at_filepos field.
* archive.c (_bfd_generic_read_ar_hdr_mag): New function, copied
from _bfd_generic_read_ar_hdr with minor changes.
(_bfd_generic_read_ar_hdr): Use _bfd_generic_read_ar_hdr_mag.
* libbfd-in.h (_bfd_generic_read_ar_hdr_mag): Declare.
* libbfd.h: Rebuild.
* bfd-in.h (BFD_IN_MEMORY): Define.
* libbfd-in.h (struct bfd_in_memory): Define.
* libbfd.c (bfd_read): Handle BFD_IN_MEMORY flag.
(bfd_get_file_window): Don't try to map a BFD_IN_MEMORY file.
(bfd_write, bfd_stat): Abort if BFD_IN_MEMORY is set.
(bfd_tell, bfd_flush, bfd_seek): Handle BFD_IN_MEMORY flag.
* bfd.c (struct _bfd): Change iostream field from char * to PTR.
(bfd_get_size): Handle BFD_IN_MEMORY flag.
* cache.c (bfd_cache_close): Ignore BFD_IN_MEMORY files.
(bfd_open_file): Cast to PTR, not char *, when setting iostream.
(bfd_cache_lookup_worker): Abort if BFD_IN_MEMORY is set.
* opncls.c (bfd_fdopenr): Cast to PTR, not char *, when setting
iostream.
(bfd_openstreamr): Likewise.
* aoutx.h (NAME(aout,some_aout_object_p)): Only fstat iostream if
BFD_IN_MEMORY is not set.
* riscix.c (riscix_some_aout_object_p): Likewise.
* bfd-in2.h, libbfd.h: Rebuild.
* targets.c (bfd_target): Add _bfd_get_elt_at_index field.
(BFD_JUMP_TABLE_ARCHIVE): Add _get_elt_at_index.
(bfd_get_elt_at_index): Define.
* archive.c (_bfd_generic_get_elt_at_index): Rename from
bfd_get_elt_at_index. Change index parameter from int to
symindex.
* libbfd-in.h (_bfd_generic_get_elt_at_index): Declare.
(_bfd_noarchive_get_elt_at_index): Define.
(_bfd_archive_bsd_get_elt_at_index): Define.
(_bfd_archive_coff_get_elt_at_index): Define.
* bfd-in2.h, libbfd.h: Rebuild.
* aout-target.h (MY_get_elt_at_index): Define if not defined.
* coff-rs6000.c (xcoff_get_elt_at_index): Define.
* ieee.c (ieee_get_elt_at_index): Define.
* libecoff.h (_bfd_ecoff_get_elt_at_index): Define.
* oasys.c (oasys_get_elt_at_index): Define.
* som.c (som_get_elt_at_index): Define.
Stan Shebs [Tue, 9 Jan 1996 00:37:35 +0000 (00:37 +0000)]
* remote-mips.c (mips_receive_header): Recognize \012 instead
of \n, but write \n when program sends a \012.
* ser-mac.c (mac_input_buffer): Increase size of buffer.
* ieee.c: Add global function write_ieee_debugging_info and a
bunch of static functions and structs used to write out IEEE
debugging information.
* budbg.h (write_ieee_debugging_info): Declare.
* ieee.c (struct ieee_type): Add pslot field.
(enum builtin_types): Define.
(ieee_builtin_type): For a pointer, return a pointer to the named
type. Use enum values rather than numbers.
(ieee_alloc_type): New static function.
(ieee_read_type_index): Use ieee_alloc_type.
(parse_ieee_bb): Likewise.
(parse_ieee_ty): Likewise. Use ieee_builtin_type for array range,
rather than making a new integer type. Store the new type in the
slot, if there is one.
(parse_ieee_atn): Treat ATN10 as defining a register variable.
(ieee_regno_to_genreg): Rename from ieee_regno_to_gen. Change all
callers.
(ieee_genreg_to_regno): New static function.
* debug.h (struct debug_write_fns): Add tag parameter to
enum_type, start_struct_type, and start_class_type.
* debug.c (debug_write_type): Pass any tag name to
start_struct_type, debug_write_class_type, and enum_type. If
DEBUG_KIND_TAGGED, pass the name in the recursive call.
(debug_write_class_type): Accept a new tag parameter, and pass it
to start_class_type.
* prdbg.c (pop_type): Don't remove '+' character.
(pr_enum_type): Accept and use tag parameter.
(pr_start_struct_type): Likewise.
(pr_start_class_type): Likewise.
(pr_class_baseclass): Adjust algorithm used to find where to put
the baseclass name.
(pr_tag): Don't bother to insert the tag name.
* objcopy.c: Include budbg.h.
(convert_debugging): New static variable.
(OPTION_DEBUGGING): Define.
(copy_options): Add "debugging".
(copy_usage): Mention --debugging.
(is_strip_section): Skip debugging sections if convert_debugging.
(setup_section, copy_section): Likewise.
(filter_symbols): Skip debugging symbols if convert_debugging.
(copy_object): If convert_debugging, read and write debugging
information.
(write_debugging_info): New static function.
(copy_main): Handle --debugging.
* Makefile.in (DEBUG_OBJS): New variable.
($(OBJCOPY_PROG)): Depend upon and link against $(DEBUG_OBJS).
($(STRIP_PROG)): Likewise.
(OBJDUMP_OBJS): Remove variable.
($(OBJDUMP_PROG)): Use objdump.o $(DEBUG_OBJS) rather than
$(OBJDUMP_OBJS).
* binutils.texi, objcopy.1: Document --debugging.