Ken Raeburn [Fri, 22 Jul 1994 20:56:31 +0000 (20:56 +0000)]
* nm.c (numeric_forward): Treat undefined symbols as "less than" defined
symbols with zero values. If numeric values are equal, or both symbols are
undefined, sort alphabetically. Don't assume that the difference of two
bfd_vma values will truncate to "int" and still have the same sign.
(numeric_reverse): Call numeric_forward and negate the result.
(print_symbol_info_bsd): For undefined symbols, print leading spaces equivalent
to the width of a printed bfd_vma, rather than assuming that 8 will look right.
Ian Lance Taylor [Fri, 22 Jul 1994 20:55:45 +0000 (20:55 +0000)]
* scripttempl/elf.sc: Use PROVIDE to define etext, edata, and end.
Add a new script operator, PROVIDE, to define a symbol only if it
is needed.
* ldgram.y (PROVIDE): New token.
(assignment): Accept PROVIDE.
* ldlex.l (PROVIDE): New token.
* ldexp.h (node_type): Add etree_provide to node_class enum.
(exp_provide): Declare.
* ldexp.c (exp_fold_tree): Handle etree_provide.
(exp_provide): New function.
(exp_print_tree): Handle etree_provide.
* ld.texinfo: Document PROVIDE.
Ian Lance Taylor [Fri, 22 Jul 1994 18:53:23 +0000 (18:53 +0000)]
* aoutx.h (aout_link_check_ar_symbols): When changing a symbol to
common, set the alignment.
(aout_link_add_symbols): Restrict the alignment of a common symbol
to the alignment power given by the architecture.
* elf.c (_bfd_elf_link_hash_newfunc): Don't initialize align. Do
initialize copy_offset.
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Use copy_offset
field rather than align field. Get alignment using bfd_log2
rather than switch.
* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
* elf32-i386.c (elf_i386_finish_dynamic_symbol): Use copy_offset,
not align.
* elf32-sparc.c (elf32_sparc_finish_dynamic_symbol): Likewise.
Ian Lance Taylor [Fri, 22 Jul 1994 18:46:28 +0000 (18:46 +0000)]
* ldlang.c (lang_common): Pass desired alignment to
lang_one_common as power of two.
(lang_one_common): Get common symbol alignment from linker hash
table entry. Treat desired alignment as a power of two.
Ian Lance Taylor [Fri, 22 Jul 1994 16:23:35 +0000 (16:23 +0000)]
* ldlang.c (wild_section): Attach all section with the given name,
not just the first one. If there is no name, attach all sections
even if the SEC_IS_COMMON flag is set.
Per Bothner [Thu, 21 Jul 1994 21:11:57 +0000 (21:11 +0000)]
* config.sub (case $basic_machine): Re-order the cases, to match
the order in the FSF version (which is mostly alphabethical).
Merge in some additions and changes from the FSF.
Ian Lance Taylor [Wed, 20 Jul 1994 19:55:36 +0000 (19:55 +0000)]
* ld.h (args_type): Add field rpath.
* lexsup.c (S_ISDIR): Define if not already defined.
(parse_args): Add support for -rpath. If -R is used to name a
directory, treat it as -rpath for Solaris compatibility.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
Pass command_line.rpath to bfd_elf32_size_dynamic_sections.
* ldmain.c (main): Initialize command_line.rpath to NULL.
* ld.texinfo: Document -rpath option.
Ian Lance Taylor [Wed, 20 Jul 1994 19:51:18 +0000 (19:51 +0000)]
* elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add rpath
argument. If it is not NULL, use it to set DT_RPATH.
* bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
(bfd_elf64_size_dynamic_sections): Likewise.
* bfd-in2.h: Rebuilt.
Changed pattern in gdb_run_cmd to match up to the first newline only.
The old pattern used ".*$", which could, and did, swallow up output
that we were attempting to match elsewhere.
* gdb.base/bitfields.exp: Simplify by using delete_breakpoints and
gdb_test.
* lib/gdb.exp (gdb_test): if match times out, don't call fail if
message is "".
* gdb.base/corefile.exp: Execute coremaker to generate core dump.
* gdb.base/Makefile.in: Don't try to generate a core dump, we
might testing a cross development system.
Stan Shebs [Sun, 17 Jul 1994 21:08:42 +0000 (21:08 +0000)]
Harris CX/UX support, from Bob Rusk (rrusk@mail.csd.harris.com).
* configure.in (m88*-harris-cxux*): New configuration.
* cxux-nat.c, config/m88k/cxux.mh, config/m88k/cxux.mt,
config/m88k/xm-cxux.h, config/m88k/tm-cxux.h, config/m88k/nm-cxux.h:
New files.
* config/m88k/tm-m88k.h: Add comment about Harris OS.
(TARGET_WRITE_PC): Pass pid through to register writers.
* configure.in (m68*): Put vendor-only-specified host configs
after vendor-and-os-specified configs.
(m68*-atari-sysv4*, m68*-cbm-sysv4*): Replace with m68*-*-sysv4.
Ian Lance Taylor [Sun, 17 Jul 1994 02:36:11 +0000 (02:36 +0000)]
* objdump.c (slurp_dynamic_symtab): Try to get the dynamic symbols
even if the bfd is not marked DYNAMIC. ELF executables are not
marked DYNAMIC, but do have dynamic symbols.
Ian Lance Taylor [Sun, 17 Jul 1994 02:15:24 +0000 (02:15 +0000)]
* libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Define.
* elfcode.h (elf_link_add_object_symbols): If symbol is defined as
weak, set ELF_LINK_HASH_DEFINED_WEAK.
(elf_link_output_extsym): If symbol is defined as weak, mark it
STB_WEAK.
Ian Lance Taylor [Sun, 17 Jul 1994 01:15:42 +0000 (01:15 +0000)]
* libelf.h (struct bfd_elf_section_data): Add relocs field.
(shdr_name): Remove; unused.
* elfcode.h (elf_slurp_reloc_table): Rewrote to handle both REL
and RELA relocs. Free up the unswapped relocs. Permit the relocs
to be cached in the section_data. Correct the reloc address.
(elf_slurp_reloca_table): Remove.
(elf_canonicalize_reloc): Rewrote.
(elf_link_input_bfd): Permit the relocs to be cached in the
section data.
Stan Shebs [Sun, 17 Jul 1994 00:00:36 +0000 (00:00 +0000)]
* inferior.h (ARCH_NUM_REGS): New macro, actual number of
registers in use by the inferior.
* coredep.c (fetch_core_registers, register_addr): Use it.
* findvar.c (registers_changed, registers_fetched,
read_register_bytes): Ditto.
* infcmd.c (do_registers_info, registers_info): Ditto.
* infptrace.c (fetch_inferior_registers,
store_inferior_registers): Ditto.
* stack.c (frame_info): Ditto.
* coredep.c (CORE_REGISTER_ADDR): New macro.
(fetch_core_registers): Use it.
Stan Shebs [Sat, 16 Jul 1994 22:57:23 +0000 (22:57 +0000)]
* breakpoint.c (ignore, condition): Add usage notes to help strings.
* symfile.c (add-symbol-file): Add usage note to help string.
(add_shared_symbol_files_command): New command.
Stan Shebs [Sat, 16 Jul 1994 21:02:53 +0000 (21:02 +0000)]
* configure.host (m68*-atari-sysv4*): New host.
(m68*-cbm-sysv4*): Use m68kv4 instead of amix.
* hosts/amix.h: Remove.
* hosts/m68kv4.h: New file, was amix.h.
Stan Shebs [Fri, 15 Jul 1994 23:53:04 +0000 (23:53 +0000)]
Stop printing at null char option, from Oliver Meyer
(omeyer@i3.informatik.rwth-aachen.de).
* valprint.h, valprint.c (stop_print_at_null): New global.
* valprint.c (_initialize_valprint): New print set subcommand
"null-stop".
* c-valprint.c (c_val_print): If stop_print_at_null is on, and
printing a char array, adjust the number of chars to print.
Ken Raeburn [Fri, 15 Jul 1994 23:13:10 +0000 (23:13 +0000)]
* lib/gas-defs.exp (run_dump_test): New routine for running the
assembler, running objdump or nm (not fully supported) on the
resulting object file, and comparing the results against a file of
regular expressions in the test suite, all in one command.
(fail_phase, slurp_options): New auxiliary routines.
(regexp_diff): Always return a value. Fix bugs in actually doing
the regexp test.
Should make it even easier to write gas test cases, giving Ian even less
excuse for not doing so. :-)
Stan Shebs [Fri, 15 Jul 1994 21:37:30 +0000 (21:37 +0000)]
From Kevin A. Buettner (kev@cujo.geg.mot.com).
* m88k-tdep.c (examine_prologue): Modified to handle prologues for
pic code in addition to prologues where an instruction from the
prologue gets moved into the delay slot of a branch instruction
immediately following the prologue. A table of potential prologue
instructions (prologue_insn_tbl) is now used for picking apart a
function prologue.
(frame_find_saved_regs): Changed the way in which limit gets set
so that the delay slot of branch instructions immediately
following the prologue gets examined.
(pushed_size, store_parm_word, store_parm, push_parameters,
collect_returned_value): Deleted.
* coffgrok.c (do_where): Make data with no type 'int'.
(do_define): Keep info on source file of a symbol.
* coffgrok.h (coff_symbol): New field.
* srconv.c (PROGRAM_VERSION): Now 1.3
(wr_rl): Use external ref number for symbol.
(wr_dus): Only keep one source file per debug unit.
(wr_dln): Always emit line numbers for first source file,
(wr_globals): Emit globals in the du of their owning source file.
Stan Shebs [Thu, 14 Jul 1994 21:34:09 +0000 (21:34 +0000)]
* dbxread.c: Don't include libbfd.h.
* dwarfread.c, elfread.c somread.c: Don't include libbfd.h,
<time.h>, or <sys/types.h>.
* elfread.c (elf_symfile_read): Use only standard BFD functions to
collect information about the stab and stab string sections.
Stan Shebs [Thu, 14 Jul 1994 02:15:39 +0000 (02:15 +0000)]
Breakpoint hit counts, from Bob Rusk (rrusk@mail.csd.harris.com).
* breakpoint.h (hit_count): New breakpoint field.
* breakpoint.c (show_breakpoint_hit_counts): New variable.
(clear_breakpoint_hit_counts): New function.
(bpstat_stop_status): Increment the hit count.
(breakpoint_1): Display the hit count.
* infcmd.c (run_command): Reset breakpoint hit counts.
* target.c (generic_mourn_inferior): Don't clear ignore counts if
displaying hit counts.
Ken Raeburn [Wed, 13 Jul 1994 22:38:03 +0000 (22:38 +0000)]
ns32k-dis.c (invalid_float): Changed to take char* argument, and test for
explicitly specified sizes, instead of using sizeof() on host CPU types.
(INVALID_FLOAT): Cast first argument.
Ken Raeburn [Wed, 13 Jul 1994 22:05:52 +0000 (22:05 +0000)]
Wed Jul 13 18:01:58 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
* ns32k-dis.c: Deleted all code in "#ifdef GDB".
(invalid_float): Enabled general version, doesn't require running
on ns32k host.
Sun Jul 10 00:27:47 1994 Ian Dall (dall@hfrd.dsto.gov.au)
* opcodes/ns32k-dis.c: Semi-new file. Had apparently been dropped
from distribution. A ns32k-dis.c from a previous distribution has
been brought up to date and supports the new interface.
* disaaemble.c: define ARCH_ns32k and add case bfd_arch_ns32k.
Ian Lance Taylor [Wed, 13 Jul 1994 18:58:11 +0000 (18:58 +0000)]
* config/tc-m68k.c (m68k_ip): Change rp to be a const pointer.
(md_parse_option): Clear cpu field of current_architecture before
setting a new cpu type. Clear no_68881 for m68881 or m68882.
Clear no_68851 for m68851.
Ken Raeburn [Wed, 13 Jul 1994 01:48:15 +0000 (01:48 +0000)]
Updated some copyrights, cleaned up some header-file comments, and:
* symbols.c (symbol_create): New function, most of the guts of the old
symbol_new function.
(symbol_new): Now just checks symbol_table_frozen, calls symbol_create, and
enters the symbol into the symbol table.
* subsegs.c (section_symbol): If EMIT_SECTION_SYMBOLS is not true, and the
symbol table is frozen, call symbol_create instead of symbol_new.
* symbols.h (symbol_create, symbol_table_frozen): Declare.
* symbols.c (symbol_clear_list_pointers): Always a function now.
* struc-symbol.h (symbol_clear_list_pointers): Deleted macro version.
* symbols.c (debug_verify_symchain): New macro, defined to be
verify_symbol_chain or a cast to void, depending on DEBUG_SYMS.
(many functions): Invoke debug_verify_symchain unconditionally.
Peter Schauer [Tue, 12 Jul 1994 19:29:04 +0000 (19:29 +0000)]
* elfread.c (elf_symfile_read): Unconditionally add dynamic
symbols for all symbol files. Makes skipping over the
trampoline code work when stepping from a function in a shared
library into a function in a different shared library for Irix 5.
Other ELF targets do not have enough information in their
dynamic symbol tables to make this work.
(elf_symtab_read): Relocate mst_solib_trampoline address.
Kung Hsu [Tue, 12 Jul 1994 19:17:35 +0000 (19:17 +0000)]
Modified Files:
read.c ecoff.h ecoff.c ChangeLog
* read.c (read_a_source_file): ditto.
* ecoff.h: change calling interface of
ecoff_generate_asm_line_stab.
* ecoff.c (add_file): record of filename to handle case of include
files, also change default built-in type from int to void for
asm file.
* ecoff.c (ecoff_generate_asm_line_stab): handle case of include
files.
Peter Schauer [Tue, 12 Jul 1994 19:14:09 +0000 (19:14 +0000)]
* aix386-core.c, aoutf1.h, cisco-core.c, elfcode.h, hppabsd-core.c,
hpux-core.c, irix-core.c, lynx-core.c, osf-core.c, ptrace-core.c,
rs6000-core.c, trad-core.c: Remove SEC_ALLOC flag from .reg
sections, .reg sections are not allocated and contain debug
information only.
* osf-core.c (make_bfd_asection, osf_core_core_file_p): Use
bfd_make_section_anyway instead of building unique section names.
Ian Lance Taylor [Mon, 11 Jul 1994 21:24:08 +0000 (21:24 +0000)]
* config/tc-mips.c (macro): In case M_LA_AB, SVR4_PIC, large
constant, and case ldd_std, set mips_optimize to 2 temporarily to
avoid inserting an unexpected nop instruction.