Ian Lance Taylor [Tue, 20 Sep 1994 21:16:11 +0000 (21:16 +0000)]
* ld.h (args_type): Add new field endian.
* lexsup.c (parse_args): Handle -EB and -EL by setting
command_line.endian.
* ldgram.y (ifile_p1): Accept OUTPUT_FORMAT with three arguments.
* ldlang.c (lang_add_output_format): Add arguments big and little.
If command_line.endian is set, use it to select big or little
rather than the default. Changed all callers.
* ldlang.h (lang_add_output_format): Update declaration.
* emulparams/elf32mipb.sh: Define BIG_OUTPUT_FORMAT and
LITTLE_OUTPUT_FORMAT.
* emulparams/elf32mipl.sh: Likewise.
* emulparams/mipsbig.sh: Likewise.
* emulparams/mipsbsd.sh: Likewise.
* emulparams/mipsidt.sh: Likewise.
* emulparams/mipsidtl.sh: Likewise.
* emulparams/mipslit.sh: Likewise.
* scripttempl/elf.sc: Define BIG_OUTPUT_FORMAT and
LITTLE_OUTPUT_FORMAT if not already defined. Pass them to
OUTPUT_FORMAT.
* scripttempl/mips.sc: Pass BIG_OUTPUT_FORMAT and
LITTLE_OUTPUT_FORMAT to OUTPUT_FORMAT.
* scripttempl/mipsbsd.sc: Likewise.
Ian Lance Taylor [Tue, 20 Sep 1994 20:16:24 +0000 (20:16 +0000)]
* config/tc-mips.c (md_shortopts): Remove E.
(md_longopts): Add EB and EL.
(md_parse_option): Handle -EB and -EL as separate options, rather
than as a single -E option with an argument.
Per Bothner [Tue, 20 Sep 1994 01:30:19 +0000 (01:30 +0000)]
* config.guess (HP-UX): Patch from Harlan Stenn
<harlan@landmark.com> to also emit release level.
* config.guess (sun4*:SunOS:*:*): Change '-JL' to '_JL'.
Ken Raeburn [Mon, 19 Sep 1994 16:40:00 +0000 (16:40 +0000)]
* read.c (pseudo_set, case O_symbol): If OBJ_COPY_SYMBOL_ATTRIBUTES is defined,
invoke it.
[BFD_ASSEMBLER]: Copy BSF_FUNCTION setting too.
* config/obj-elf.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Define.
Ken Raeburn [Mon, 19 Sep 1994 16:37:32 +0000 (16:37 +0000)]
* read.c (pseudo_set, case O_symbol): If OBJ_COPY_SYMBOL_ATTRIBUTES is defined,
invoke it.
[BFD_ASSEMBLER]: Copy BSF_FUNCTION setting too.
* config/obj-elf.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Define.
Jim Kingdon [Mon, 19 Sep 1994 15:00:03 +0000 (15:00 +0000)]
Mon Sep 19 07:48:36 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* dbxread.c (read_dbx_dynamic_symtab): Cast bfd_asymbol_name to
char * (from const char *) before assigning. Don't save string we
pass to record_minimal_symbol (it already saves it).
Peter Schauer [Sat, 17 Sep 1994 11:35:51 +0000 (11:35 +0000)]
* cp-valprint.c (static_field_print): New variable, controls
printing of static members.
(_initialize_cp_valprint): New print set subcommand
"static-members". Turn on printing of static members by default.
(cp_print_value_fields): Print static members if necessary.
* solib.c: Remove inclusion of libelf.h and elf/mips.h.
(elf_locate_base): Use only standard BFD functions to collect
information about the .dynamic section. Check for DT_MIPS_RLD_MAP
tag only if it got defined via the inclusion of <link.h>.
* f-exp.y: Write block for OP_VAR_VALUE.
* f-valprint.c (info_common_command): Handle `info common'
without an argument correctly.
* c-typeprint.c (c_type_print_base): Handle template constructors.
* symtab.c (gdb_mangle_name): Handle template method mangling,
get rid of GCC_MANGLE_BUG code, which only applied to gcc-2.2.2.
Per Bothner [Sat, 17 Sep 1994 00:38:23 +0000 (00:38 +0000)]
* gdbtypes.h (TYPE_INDEX_TYPE): New macro.
* ch-typeprint.c, ch-valprint.c: Use TYPE_INDEX_TYPE.
* ch-valprint.c (chill_val_print): Pass index type directly
(instead of its TYPE_TARGET_TYPE) to print_type_scalar.
* stabsread.c (read_type): Don't set TYPE_FLAG_TARGET_STUB
if the index type is a stub.
Stu Grossman [Fri, 16 Sep 1994 22:57:37 +0000 (22:57 +0000)]
* defs.h (QUIT): Call interactive_hook to allow GUI to interrupt.
Also, add decl for symtab_to_filename.
* gdbtk.c: Replace calls to full_filename with symtab_to_filename.
* gdbtk.tcl: New routine pc_to_line replaces in line code. New
routine decr replaces in line code.
* (create_file_win): Use catch to handle open failures more
elegantly. Also, create special window to display file open
failure message. Move opening of file prior to creation of text
widget.
* (create_asm_win): Add PC as argument. We now base disassembly
on PC instead of function name, since function names can be
ambiguous (usually seen with shared libs). Also, use catch to
simplify code where we don't care about failures.
* source.c (symtab_to_filename): New. Returns the file
associated with a symtab.
* top.c: Define interactive_hook. Called during QUIT to animate
the GUI.
Ian Lance Taylor [Fri, 16 Sep 1994 16:14:51 +0000 (16:14 +0000)]
* aoutx.h (aout_link_write_other_symbol): If h->indx is -2, then
always write it out even if it would normally be stripped.
(aout_link_input_section_std): If we find a reloc against a
stripped global symbol, force it to be written out rather than
merely calling unattached_reloc.
(aout_link_input_section_ext): Likewise.
(aout_link_reloc_link_order): Likewise.
Ian Lance Taylor [Fri, 16 Sep 1994 15:30:38 +0000 (15:30 +0000)]
* objdump.c (struct objdump_disasm_info): Add field require_sec.
(objdump_print_address): If aux->require_sec, require that the
symbol be in aux->sec even if HAS_RELOC is not set.
(disassemble_data): Set aux.require_sec around the
objdump_print_address call for the instruction address.
PR 3441.
Per Bothner [Fri, 16 Sep 1994 07:29:44 +0000 (07:29 +0000)]
* stabsread.c (read_type): Handle stub types for bitstrings.
* stabsread.c (read_array_type): Check for stub domain type
using TYPE_FLAG_STUB, not its length.
* gdbtypes.c (create_set_type): Handle a stub domain type.
Per Bothner [Fri, 16 Sep 1994 07:28:22 +0000 (07:28 +0000)]
* ch-exp.y: Get rid of some extra non-terminals, and move
their rules into primitive_value.
* ch-lang.c (chill_op_print_tab): Add '->'.
* expprint.c (print_subexp): Recognize unary postfix operator.
Ian Lance Taylor [Fri, 16 Sep 1994 04:03:23 +0000 (04:03 +0000)]
* ar.c: Call xexit rather than exit.
(output_filename, output_file, output_bfd): New static variables.
(remove_output): New static function.
(main): Call xatexit (remove_output). Call xexit rather than
returning.
(extract_file): Set output_filename and output_file while output
file is open.
(write_archive): Likewise, but use output_bfd, not output_file.
* arsup.c: Include libiberty.h. Call xexit rather than exit.
* bucomm.c: Likewise.
PR 2474.
Ian Lance Taylor [Fri, 16 Sep 1994 01:59:30 +0000 (01:59 +0000)]
* objdump.c (disassemble_all): New global variable.
(usage): Document --disassemble-all.
(long_options): Add disassemble-all as a synonym for -D.
(compare_symbols): Make pointers const.
(compare_relocs): New static function.
(disassemble_data): Rename disassemble to disassemble_fn to avoid
shadowing. If dump_reloc_info, print relocs along with
disassembly. Skip sections which are not SEC_CODE unless
disassemble_all or only is set.
(display_bfd): Don't call dump_relocs if disassemble is set.
(main): Accept and handle -D.
* binutils.texi: Document -D/--disassemble-all.
* objdump.1: Likewise.
PR 5059.
Ian Lance Taylor [Thu, 15 Sep 1994 17:07:02 +0000 (17:07 +0000)]
* ldmisc.c (vfinfo): Print BFD file name as well as file name
returned by find_nearest_line, in case the file name is something
unhelpful such as a .h file. Handle %u.
Ian Lance Taylor [Wed, 14 Sep 1994 23:28:25 +0000 (23:28 +0000)]
* aoutx.h (aout_link_write_symbols): Rename skip_indirect to
skip_next. If we find an N_WARNING symbol which has already been
written out, set skip_next.
PR 5634.
Jim Kingdon [Wed, 14 Sep 1994 22:45:49 +0000 (22:45 +0000)]
* xcoffread.c (read_xcoff_symtab): Fix obsolete comment about
mst_solib_trampoline.
* f-valprint.c (f_val_print): Change cast of valaddr from
CORE_ADDR * to char **, since that is how it is used.
* dbxread.c (read_dbx_dynamic_symtab): Save copy of symbol names
using obsavestring, and pass that to prim_record_minimal_symbol.
Having the objfile point to bfd_asymbol_name directly doesn't work
if we save and restore a mapped symbol file.
Jeff Law [Wed, 14 Sep 1994 22:24:56 +0000 (22:24 +0000)]
* som.h (struct somdata): New field sorted_syms.
(obj_som_sorted_syms): Accessor macro.
* som.c (som_object_setup): Initialize sorted_syms to NULL.
(som_prep_for_fixups): Sort a copy of the BFD's symbol table;
store the sorted symbol table in sorted_syms.
(som_write_fixups): Initalize tmp_reloc to NULL to make GCC happy.
(som_begin_writing): Similarly for exec_header. Pass the sorted
symbol table to som_write_symbol_strings.
(som_build_and_write_symbol_table): Use the sorted symbols rather
than the canonical symbol table.
Jeff Law [Wed, 14 Sep 1994 21:44:35 +0000 (21:44 +0000)]
* som.h (som_symbol_type): Add "stringtab_offset" field.
* som.c (som_write_symbol_strings): Use "stringtab_offset"
rather than destroying the "name" field in the BFD symbol.
(som_build_and_write_symbol_table): Likewise.
Ian Lance Taylor [Wed, 14 Sep 1994 20:21:21 +0000 (20:21 +0000)]
* objdump.c (disassemble_data): Initialize prevline to 0. Make
prev_function non const. Copy functionname into an malloc buffer
when setting prev_function, instead of assuming that the string
will last forever.
Ian Lance Taylor [Wed, 14 Sep 1994 17:08:37 +0000 (17:08 +0000)]
* ldmisc.c (vfinfo): Handle %D as %C, but never print the function
name. For %C, print the function name on a separate line, to keep
the length of error messages under control.
* ldmain.c (multiple_definition): Use %D for ``first defined
here.''
(undefined_symbol): Use %D for ``more undefined references
follow''.
PR 3770.
Stu Grossman [Wed, 14 Sep 1994 08:02:51 +0000 (08:02 +0000)]
* gdbtk.tcl: Add ref counts to breakpoint tags.
* Put quotes around function name in disassemble command to better
handle assembler names containing `.'.
* Make pclist element 0 be filler to avoid off-by-one problem with
line numbers.
* Set names of top-level windows.
* Add register display window.
* Add PC to label of assembly window.
Jeff Law [Wed, 14 Sep 1994 03:03:15 +0000 (03:03 +0000)]
* som.c (som_fixup_formats): Case R_ENTRY (0xb3), set both
'T' and 'U' to grab all the unwind information.
(som_set_reloc_info): Make 'U' unwind bits persist across
multiple SOM relocations. Set the addend field of an R_ENTRY
relocation to the value in 'T'; set the addend field on an
R_EXIT relocation to the value in 'U'.
Jeff Law [Wed, 14 Sep 1994 02:28:52 +0000 (02:28 +0000)]
* som.h (som_symbol_type): Delete unwind field.
* som.c (som_write_fixups): For R_ENTRY fixups, get 32bits of
unwind information from the addend field of the R_ENTRY, get the
other 32bits from the addend field of the R_EXIT.
(bfd_som_attach_unwind_info): Delete function and all references.
Jeff Law [Wed, 14 Sep 1994 02:20:24 +0000 (02:20 +0000)]
* config/obj-som.h (S_SET_OTHER, S_SET_TYPE): Delete a.out crud.
(S_SET_DESC, S_GET_OTHER, S_GET_TYPE, S_GET_DESC): Likewise.
(obj_attach_unwind_info): Do not define. Not needed anymore.
* config/tc-hppa.c: Delete whitespace at EOL.
(struct hppa_fix_struct): Delete fx_unwind field and all references.
(fix_new_hppa): Last arg is now a pointer to an int. Do not
call obj_attach_unwind_info anymore. For SOM R_ENTRY and R_EXIT
fixups, store 32bits of unwind information in the fx_addnumber
field of the fixup.
(md_assemble, pa_entry, process_exit, pa_procend): For SOM R_ENTRY
and R_EXIT fixups, pass a NULL pointer to fix_new_hppa, and a
pointer to 32 bits of unwind info.
(tc_gen_reloc): For SOM R_ENTRY and R_EXIT fixups, set the symbol
pointer to the dummy symbol; set the addend field to fx_addnumber.
(pa_comm, pa_equ, pa_type_args, pa_import): Use bfd_XXX_section_ptr
rather than &bfd_XXX_section.
Jeff Law [Wed, 14 Sep 1994 00:29:11 +0000 (00:29 +0000)]
* som.c (som_object_setup): Handle exec_entry and exec_flags being
switched in executables created by the OSF1 linker.
(som_write_fixups): Handle R_EXIT just like the R_{F,L,R}SEL
fixups. Support R_ALT_ENTRY (handle just like R_EXIT).
Rob Savoye [Wed, 14 Sep 1994 00:26:51 +0000 (00:26 +0000)]
* w89k-rom.c op50-rom.c monitor.c config/pa/hppapro.mt: New files
to add a generic ROM monitor interface, and support file for the
WinBond W89K and the Oki OP50N PA based target boards.
Tue Sep 13 16:45:08 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* config/obj-coff.c (do_relocs_for): If TC_KEEP_FX_OFFSET
is defined, put the tx_offset into the r_offset.
* config/tc-sh.c (line_comment_chars): Add #
(tc_reloc_mangle): Deleted.
* config/tc-sh.h (TC_KEEP_FX_OFFSET): Define.
(TC_RELOC_MANGLE): Delete.
* config/obj-coff.c (do_relocs_for): If TC_KEEP_FX_OFFSET
is defined, put the tx_offset into the r_offset.
* config/tc-sh.c (line_comment_chars): Add #
(tc_reloc_mangle): Deleted.
* config/tc-sh.h (TC_KEEP_FX_OFFSET): Define.
(TC_RELOC_MANGLE): Delete.
Ken Raeburn [Tue, 13 Sep 1994 23:07:48 +0000 (23:07 +0000)]
Use EXIT_SUCCESS and EXIT_FAILURE in all exit calls.
Use exit rather than returning from main, for consistency on VMS.
Call as_fatal instead of as_bad or as_warn followed by exit.
Ken Raeburn [Tue, 13 Sep 1994 22:27:20 +0000 (22:27 +0000)]
* Makefile.in (*_FOR_TARGET, INSTALL_XFORM, install, uninstall): Rewrite
handling of program_transform_name.
* configure.in: Test for "unlink" and "delete", define USE_DELETE_FOR_UNLINK if
only the latter is found. Not expected to be triggered on UNIX/POSIX systems.
* acconfig.h (USE_DELETE_FOR_UNLINK): Undef here, provide comments.
Update for autoconf 1.118:
* gdbinit.in: New file, created from old .gdbinit.
* .gdbinit: Deleted.
* aclocal.m4 (GAS_GDBINIT): Deleted.
* configure.in: Don't use it. Instead, generate .gdbinit from gdbinit.in.
Don't substitute cpu_type, obj_format, emulation, atof. Switched order of
AC_LINK_FILES arguments. Use AC_PREREQ to ensure that older versions of
autoconf aren't used.
* Makefile.in: Added @configure_input@ line.
(configure): Deleted rule.
Ian Lance Taylor [Tue, 13 Sep 1994 20:42:47 +0000 (20:42 +0000)]
* ldlang.c (load_symbols): Check for archive before object. Use
bfd_check_format_matches, and, if ambiguous, print a list of
matching formats. If file format is not recognized, treat file as
a linker script.
* ldgram.y (yyerror): If assuming an object file is a script,
mention that. Tweak the format of the error messages.
* ldlex.l (lex_warn_invalid): If assuming an object is a script,
guess that this is not actually a script, and just report that the
file format was not recognized.
* ld.texinfo (Options): Admit that -( may be used more than once.
Add note that unrecognized object files are now treated as linker
scripts.
* ldfile.c (ldfile_input_filename): Make const.
(ldfile_assumed_script): New variable.
(try_open): Change arguments types to const.
(ldfile_find_command_file): Likewise.
(ldfile_open_command_file): Likewise. Also, set lineno to 1.
* ldfile.h: Update declarations for ldfile.c changes.
* ldlex.l: Include <ctype.h>.
(file_name_stack): Change to be const char *.
(lineno_stack): New static variable.
(<<EOF>>): Set lineno as well as ldfile_input_filename.
(lex_push_file): Make name argument const. Initialize
lineno_stack entry.
(lex_redirect): Initialize lineno_stack entry.
(lex_warn_invalid): Handle non printable characters nicely.
* ldlex.h (lex_push_file): Declare second argument as const.
* configure.host (sparc-*-netbsd): use sparcnbsd.
(ns32k-*-netbsd): use ns32knbsd.
* hosts/{nbsd,i386nbsd,ns32knbsd,sparcnbsd}.h: New files, NetBSD
host support.
* sparcnetbsd.c: New file, adds support for NetBSD/sparc.
* config/sparc-nbsd.mt: Likewise.
* netbsd.h: New file, definitions common to all netbsd ports.
* i386netbsd.c: Use it.
* ns32knetbsd.c: Use it.
* Makefile.in, configure.in, targets.c, config/i386-nbsd.mt,
config/ns32k-nbsd.mt: canonicalize netbsd targets to conform to
file/variable naming conventions.
* i386netbsd.c: New file, renamed from netbsd386.c.
* ns32knetbsd.c: New file, renamed from netbsd532.c.
Ian Lance Taylor [Tue, 13 Sep 1994 17:06:26 +0000 (17:06 +0000)]
* config/obj-coff.c (fixup_segment): After handling the difference
of two symbols from the same segment, set fx_subsy to NULL, to
satisfy existing TC_COUNT_RELOC macros.
Stu Grossman [Tue, 13 Sep 1994 16:24:01 +0000 (16:24 +0000)]
* gdbtk.c (gdbtk_flush gdbtk_fputs): Buffer up output to make
disassembly more efficient.
* (breakpoint_notify): Include pc in gdbtk_tcl_breakpoint
callback.
* (gdb_loc): Include pc in return value. Also, return function
name if arg was specified.
* (gdb_cmd_stub): Call gdb_flush to drain internal GDB buffers
after command completes.
* (gdbtk_init): Improve error handling.
* gdbtk.tcl: Add lots of comments. Clean up code.
* (gdbtk_tcl_fputs): Make output window redirectable.
* Add assembly window, and breapoint support.
* Make button 1 in margin toggle breakpoints.
* Use stippling to indicate breakpoint disabling.
Jeff Law [Tue, 13 Sep 1994 04:06:07 +0000 (04:06 +0000)]
* som.c (som_reloc_skip): Correct off-by-one error for 4-byte
R_NO_RELOCATION fixups.
(bfd_section_from_som_symbol): Return the absolute section if the
symbol isn't contained in any section in the output file.
(som_slurp_symbol_table): ST_PRI_PROG and ST_SEC_PROG symbols are
not function symbols (they are magic code labels which *can* be the
targets of cross space branches). $START$ is not a section symbol.
Ken Raeburn [Tue, 13 Sep 1994 02:15:23 +0000 (02:15 +0000)]
* tc-i386.c (TC_RELOC): New macro.
(struct _i386_insn): New field disp_reloc.
(GOT_symbol): New variable.
(operand_special_chars): Added square-brackets and at-sign.
(reloc) [BFD_ASSEMBLER]: Added new argument OTHER; if it is not NO_RELOC, just
return it.
(reloc) [! BFD_ASSEMBLER]: Add third argument to dummy macro.
(BFD_RELOC_386_PLT32, _GOT32, _GOTOFF) [! BFD_ASSEMBLER]: More dummy macros.
(tc_i386_fix_adjustable): New function. Returns zero if symbol in fixup is not
local, to prevent relocations against externals from being dropped.
(md_assemble): Initialize disp_reloc field to NO_RELOC. Pass disp_reloc field
to reloc() function, and use TC_RELOC to generate value to pass to fix_new_exp.
(md_assemble): Change 32-bit reloc against GOT_symbol into a GOTPC reloc.
(i386_operand): Initialize disp_reloc field to NO_RELOC. Handle @GOTOFF, @PLT,
@GOT operands. For GOTOFF relocations with local symbols, force generation of
the section symbol.
(md_estimate_size_before_relax): If GOT_symbol exists, decide we're generating
PIC code, and convert relocations against undefined symbols from PCREL to
PLT32.
(md_apply_fix_1) [OBJ_ELF]: Fix up values for dynamic-linking relocs.
(md_undefined_symbol): Notice GLOBAL_OFFSET_TABLE_NAME and set and return
GOT_symbol if it matches.
(F, MAP): Move macro definitions outside function.
(tc_gen_reloc): Only switch on size and pcrel if code wasn't already supplied
as PLT32. GOT32, GOTOFF, or GOTPC. Convert BFD_RELOC_32 using GOT_symbol into
GOTPC.
* tc-i386.h (TC_RELOC, tc_fix_adjustable, TC_RELOC_GLOBAL_OFFSET_TABLE,
TC_RELOC_RTSYM_LOC_FIXUP): New macros.
(NEED_FX_R_TYPE): Define.
(LOCAL_LABEL): Accept ".X" prefix too.
(GLOBAL_OFFSET_TABLE_NAME): Default to "_GLOBAL_OFFSET_TABLE_".
Ken Raeburn [Tue, 13 Sep 1994 02:11:25 +0000 (02:11 +0000)]
* write.c (fixup_segment): Test TC_RELOC_RTSYM_LOC_FIXUP on fixup before
processing same-section pcrel relocations.
(TC_RELOC_RTSYM_LOC_FIXUP): Default to 1.