Jeff Law [Tue, 15 Mar 1994 05:21:51 +0000 (05:21 +0000)]
* som.c (som_prep_for_fixups): A relocation involving the section
symbol for the *ABS* section is really a relocation involving
no symbol.
(som_slurp_symbol_table): Do not set BSF_GLOBAL or BSF_EXPORT for
undefined symbols. Correctly distinguish between debugger symbols
and section symbols.
Ken Raeburn [Tue, 15 Mar 1994 03:05:24 +0000 (03:05 +0000)]
(VMS_Initialized_Data_Size): Cache symbol values to reduce number of lookups
with S_GET_VALUE. Skip debug symbols to avoid "a really nasty bug". (From
Holger Teutsch, [email protected].)
(VMS_write_object_file): For "__vt.*" symbols, set S_GET_OTHER field. (Also
from Holger Teutsch.) Watch for a would-be register mask that spans frags.
Ian Lance Taylor [Mon, 14 Mar 1994 20:00:34 +0000 (20:00 +0000)]
* m68k-dis.c (ext_format_68881): Don't declare.
(print_insn_m68k): If an instruction uses place 'i', it uses at
least four fixed bytes.
(print_insn_arg): Don't bump p by 2 for case 'I', place 'i'. For
extended float, convert to double using floatformat_to_double, not
ieee_extended_to_double, and fetch the data before converting it.
Jeff Law [Mon, 14 Mar 1994 19:43:01 +0000 (19:43 +0000)]
* som.c (som_object_setup): Set EXEC_P, D_PAGED, WP_TEXT, and
HAS_RELOC based on the object's magic number.
(make_unique_section): Delete function. BFD and its users are
prepared to handle multiple sections with the same name.
(setup_sections): Allocate space on the BFD's obstack to hold
section names. Use bfd_make_setion_anyway rather than the
obsolete make_unique_section.
(som_prep_headers): Choose the correct SOM magic number based
on the BFD's flags.
(som_bfd_fill_in_ar_symbols): Return false, not NULL on error.
Mark Eichin [Sat, 12 Mar 1994 05:37:38 +0000 (05:37 +0000)]
Changes to 68k-lynx to make it handle symbols in common sections "properly",
ie. the way "real" 68k coff implementations seem to do it, rather than like
the way it's traditionally done. Fixes lifted from the i386-coff version.
Ian Lance Taylor [Sat, 12 Mar 1994 03:26:12 +0000 (03:26 +0000)]
* nlmconv.c (main): For PowerPC, call powerpc_build_stubs and
powerpc_resolve_stubs. Use __GOT0, not __toc_start. Handle it if
the start and end symbols are not in the text section.
(struct powerpc_stub): New struct definition.
(powerpc_stubs, powerpc_stub_insns): New static variables.
(powerpc_initial_got_size): New static variable.
(powerpc_build_stubs): New function.
(powerpc_resolve_stubs): New function.
(powerpc_mangle_relocs): Clear extraneous data in .got section.
Rearrange reloc handling to handle ELF relocs that are not
partial_inplace. Resolve PC relative relocs.
Ian Lance Taylor [Fri, 11 Mar 1994 23:00:17 +0000 (23:00 +0000)]
* config/tc-mips.c (mips_ip): Accept numbers between 0x8000 and
0xffff for 'j' to be compatible with MIPS assembler. These
numbers are actually treated as negative.
Jim Kingdon [Fri, 11 Mar 1994 16:31:57 +0000 (16:31 +0000)]
* breakpoint.c (_initialize_breakpoint): Update docstring for
tbreak to match what the code actually does. Don't mention tbreak
in docstrings for "enable once" or "enable breakpoints once".
Peter Schauer [Fri, 11 Mar 1994 09:03:07 +0000 (09:03 +0000)]
* sunos.c (sunos_read_dynamic_info): Assume that dynamic info
is always located at the start of the data section to allow
recovery of the dynamic info from a stripped executable.
* ecoff.c (ecoff_styp_to_sec_flags): Handle STYP_PDATA, STYP_XDATA
and STYP_COMMENT.
Jim Kingdon [Thu, 10 Mar 1994 18:25:33 +0000 (18:25 +0000)]
* symfile.h (ADD_PSYMBOL_VT_TO_LIST): Don't put a semicolon after
while (0). That defeats the whole purpose of using do . . . while (0).
* mdebugread.c (parse_partial_symbols): Don't use ?: expression as
list for ADD_PSYMBOL_TO_LIST; the macro takes its address and
using a ?: expression as an lvalue is not portable.
Jim Kingdon [Thu, 10 Mar 1994 18:21:02 +0000 (18:21 +0000)]
* stabsread.c (define_symbol): If REG_STRUCT_HAS_ADDR, also
convert a LOC_ARG to a LOC_REF_ARG. Update code which combines
'p' and 'r' symbol descriptors into a single symbol to look for a
LOC_REF_ARG.
* README, config/sparc/tm-sparc.h: Update comments.
Peter Schauer [Thu, 10 Mar 1994 09:28:18 +0000 (09:28 +0000)]
* mdebugread.c (parse_type): Do not complain for types with
an `indexNil' aux index, these are simply undefined types.
Remove indexNil check from caller of parse_type.
* mdebugread.c (parse_partial_symbols): Do not enter
stGlobal, scCommon symbols into the minimal symbol table, their
value is the size of the common, not its address.
Handle scInit, scFini, scPData and scXData sections.
Use minimal symbol type mst_file_* for stLabel symbols, instead of
mst_*.
Enter stProc symbols into the global_psymbols list once, not into
the static_psymbols_list.
Get rid of dummy psymtab if it is empty, to allow proper detection
of stripped executables.
* mdebugread.c (cross_ref): Allow cross references to Fortran
common blocks.
Jim Kingdon [Thu, 10 Mar 1994 03:57:57 +0000 (03:57 +0000)]
* stabsread.c (common_block_end, fix_common_block): Stash the
struct pending * in the SYMBOL_TYPE, not the SYMBOL_NAMESPACE, so
as to not assume that a pointer fits in an enum.
* os9kread.c (fill_sym): check compiler verion number for pre-
UltraC compiler.
* os9kread.c (os9k_process_one_symbol): address of symbol is
relative to section not module.
* stabsread.c (define_symbol): add symbol type 's' as local
symbol for os9k.
* remote-os9k.c: add command 'set monitor_log' to turn on or off
monitor logging.
* remote-os9k.c: fix bug in delete breakpoint, single step trace.
* remote-os9k.c: fix bug in 'set remotebaud' function.
* remote-os9k.c (rombug_link): minimize checking so to improve
speed.
* symfile.c (symfile_command): check if failed to link, also make
the command be able to accept more than one filenames.
* target.c (target_link): check if failed to link with rombug.
Jim Kingdon [Thu, 10 Mar 1994 02:33:01 +0000 (02:33 +0000)]
* libbfd-in.h: Remove alloca cruft. It was missing some necessary
cruft (like the #pragma alloca for AIX).
In addition to that problem, the C alloca calls xmalloc, which
means checking for being out of memory can't work right. The
following changes remove all uses of alloca from BFD.
* hosts/solaris2.h: Remove alloca cruft.
* som.c: Replace alloca with a fixed size auto array.
* aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c,
ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c,
sunos.c: Replace alloca with malloc and appropriate error checking and
freeing.
* linker.c: Replace alloca with obstack_alloc.
* libbfd.h: Rebuilt.
Jim Kingdon [Thu, 10 Mar 1994 02:09:10 +0000 (02:09 +0000)]
* libbfd-in.h: Remove alloca cruft. It was missing some necessary
cruft (like the #pragma alloca for AIX).
In addition to that problem, the C alloca calls xmalloc, which
means checking for being out of memory can't work right. The
following changes remove all uses of alloca from BFD.
* hosts/solaris2.h: Remove alloca cruft.
* som.c: Replace alloca with a fixed size auto array.
* aoutx.h, elfcode.h, nlmcode.h, bout.c, coff-alpha.c, ecoff.c,
ecofflink.c, elf32-hppa.c, elf32-mips.c, linker.c, reloc.c, som.c:
Replace alloca with malloc and appropriate error checking and
freeing.
* linker.c: Replace alloca with obstack_alloc.
* libbfd.h: Rebuilt.
Ken Raeburn [Wed, 9 Mar 1994 02:44:00 +0000 (02:44 +0000)]
Handle Alpha load-immediate-FP pseudo-instructions:
* config/alpha-opcode.h (ldif, ldig, ldis, ldit): New patterns.
* config/tc-alpha.c (lit8_sec, lit4_sec, lit8_sym, lit4_sym): New variables.
(create_literal_section): New function.
(create_lita_section): Now a macro.
(get_lit8_offset, get_lit4_offset): New functions.
(maybe_set_gp): New function.
(select_gp_value): Call it.
(load_expression): Preserve addend if symbol is a section symbol.
(alpha_ip): Handle new operand type `F' for floating-point constants; store
them in .lit{4,8} sections.
(alpha_ip, case 'G'): Emit LITUSE relocations for symbol exprs.
Ken Raeburn [Wed, 9 Mar 1994 02:42:57 +0000 (02:42 +0000)]
* config/obj-coff.c: Minor formatting/stylistic changes, plus:
(obj_coff_section): Declare.
(obj_pseudo_table): Make it available only if MANY_SECTIONS.
(obj_symbol_to_chars) [CROSS_COMPILE]: Some attemps to make this work. It
still doesn't. It now fails to compile, instead of silently compiling to do
nothing.
* config/obj-coff.h (SEPARATE_STAB_SECTIONS): Define only if MANY_SECTIONS.
(OBJ_PROCESS_STAB) [! MANY_SECTIONS]: New macro, just emits a warning.
* coffgrok.[ch]: New files, understand coff objects.
* coffdump.c: Uses coffgrok to dump out the debug info of a coff
file.
* sysroff.info: Description of a SYSROFF object file.
* sysinfo.y, syslex.l: Parse info file, generate a reader, writer,
header files and a printer.
* srconv.c: Uses coffgrok.c and sysroff.info to convert a coff
file to a SYSROFF file.
Jim Kingdon [Tue, 8 Mar 1994 18:22:56 +0000 (18:22 +0000)]
* dbxread.c: New variable lowest_text_address.
(record_minimal_symbol, read_dbx_symtab): Set it.
(read_dbx_symtab): Use lowest_text_address + text_size instead of
end_of_text_address.
* config/gould/tm-pn.h: Add comment regarding END_OF_TEXT_DEFAULT.
Peter Schauer [Mon, 7 Mar 1994 22:01:58 +0000 (22:01 +0000)]
* solib.c (elf_locate_base): New function to locate the address
of the dynamic linker's runtime structure in the dynamic info section.
* solib.c (locate_base): Use it instead of iterating over the list
of mapped address segments.
* solib.c (look_for_base, bfd_lookup_symbol): Removed, no longer
necessary.
Peter Schauer [Mon, 7 Mar 1994 21:51:38 +0000 (21:51 +0000)]
* gdb.t03/gdbme.c: gcc version 1 puts out the wrong stabs for
the primary1 test, use work around if __GNUC__ < 2.
* gdb.t06/signals.c: Add comments for signals.exp pattern matching.
* gdb.t06/signals.exp: Add XFAILs for i386 bsd and vax ultrix.
Test for bad output rather than waiting for timeout. Issue
second continue only if first continue failed.
* config/tc-mips.c (load_address): When calling frag_grow, allow
for the (up to) two nops which may be inserted by append_insn if
mips_optimize is 0.
(macro): Likewise.
Peter Schauer [Sat, 5 Mar 1994 22:41:41 +0000 (22:41 +0000)]
* elf32-hppa.h, elfcode.h: Replace uses of Elf*_Half, Elf*_Word,
Elf*_Off typedefs by their expansion, the typedefs have been
removed from include/elf/internal.h.
Peter Schauer [Sat, 5 Mar 1994 22:39:47 +0000 (22:39 +0000)]
* internal.h: Remove Elf32_*, Elf64_* typedefs. These names
cause conflicts with system headers, e.g. link.h in gdb/solib.c.
Combine 32- and 64-bit versions of *_Internal_Dyn.
* common.h: Replace uses of Elf64_Word, Elf64_Xword typedefs
by their expansion.
* mips.h: Replace uses of Elf32_Word, Elf32_Sword, Elf32_Addr
typedefs by their expansion. Add DT_MIPS_RLD_MAP definition.
Jeff Law [Fri, 4 Mar 1994 17:54:41 +0000 (17:54 +0000)]
* hppa-tdep.c (pc_in_linker_stub): Move decl to beginning of file.
(pc_in_interrupt_handler): New function. Also add PARAM decl.
(find_proc_framesize): Deal with HPUX setting SAVE_SP bit for
signal trampoline and interrupt routines.
(frame_saved_pc): Handle signal trampolines and interrupt routines.
(frame_chain, frame_chain_valid): Likewise.
(hppa_frame_find_saved_regs): Likewise. Also deal with special
saved regs convention for SP.