* config/xm-nbsd.h (CC_HAS_LONG_LONG, PRINTF_HAS_LONG_LONG):
#ifdef'd out definitions --- Causes serious gdb failures on
the i386. Need to investigate further before enabling.
* i386b-nat.c (fetch_inferior_registers, store_inferior_registers,
fetch_core_registers): New functions. These functions are defined
if FETCH_INFERIOR_REGISTERS is set. Registers are fetched/stored
with ptrace PT_GETREGS/PT_SETREGS.
assume that we can set the GP value and then get the same value,
since it won't be true if the output file is neither ELF nor
ECOFF.
* coff-mips.c (mips_adjust_reloc_in): Don't bother to use
_bfd_get_gp_value here.
(mips_gprel_reloc): Don't assume we can set and get the GP value.
* elf32-mips.c (mips_elf_hi16_reloc): Get gp value from
mips_elf_final_gp.
(mips_elf_lo16_reloc): Likewise.
(mips_elf_final_gp): Add pgp parameter. Set it to the GP value.
Don't require that the BFD be ELF.
(mips_elf_gprel16_reloc): Get gp value from mips_elf_final_gp.
(mips_elf_gprel32_reloc): Likewise.
(mips_elf_relocate_section): Don't assume we can set and get the
GP value.
(mips_elf_finish_dynamic_symbol): Don't bother to use
_bfd_get_gp_value here.
* elf32-mips.c (mips_elf_create_procedure_table): Initialize sv.
Don't change epdr between malloc and free. Be careful not to free
NULL pointers. Zero out the first RPDR.
well as S_IS_EXTERNAL.
(tc_fix_adjustable): Likewise.
* config/tc-sparc.c (md_apply_fix): In OBJ_ELF case, check for
S_IS_WEAK as well as S_IS_EXTERNAL when deciding whether to return
early.
(tc_gen_reloc): Check S_IS_WEAK as wel as S_IS_EXTERNAL when
deciding whether to convert BFD_RELOC_32_PCREL_S2 if PIC.
dt_name.
(elf_dt_name): Rename from elf_dt_needed_name.
* elf.c (bfd_elf_set_dt_needed_name): Use elf_dt_name, not
elf_dt_needed_name.
(bfd_elf_get_dt_soname): New function.
* elflink.h (elf_link_add_object_symbols): Use elf_dt_name, not
elf_dt_needed_name. Save the SONAME back in elf_dt_name.
* bfd-in.h (bfd_elf_get_dt_soname): Declare.
* bfd-in2.h: Rebuild.
the SONAME if it is available.
(gld${EMULATION_NAME}_stat_needed): Use the SONAME, not the
filename, when checking for conflicting library versions. Don't
assume that the suffix is only numbers and dots.
Minor build nit.
* breakpoint.h (remove_solib_event_breakpoints): Declare.
* breakpoint.c (remove_solib_event_breakpoints): New function.
* somsolib.c (solib_create_inferior_hook): Remove all solib event
breakpoints before inserting any new ones. Use a solib event
breakpoint for the breakpoint at "_start".
Remove extraneous "\n" from calls to warning.
Don't leave bogus breakpoints in the breakpoint chain. Simplify
solib_create_inferior_hook and allow for debugging of startup code
(more 7763 related changes).
* breakpoint.c (breakpoint_1): Add missing "sigtramp" to bptypes
name array.
Another minor nit.
* configure: Rebuild.
* Makefile.in (SHLIB_DEP): New variable.
(LIBIBERTY_LISTS, BFD_LIST): New variables.
(stamp-piclist): Depend upon LIBIBERTY_LISTS and BFD_LIST. If
COMMON_SHLIB, add them to piclist with appropriate modifications.
($(SHLIB)): Depend upon $(SHLIB_DEP). Don't check COMMON_SHLIB
here: just use piclist.
32 bit arch.
(default_compatible): Delete.
(sparc_ffs): New function.
(md_begin): Only call SPARC_OPCODE_CONFLICT_P once.
(sparc_ip): Rewrite architecture match and bump logic.
alpha coff 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.
* c-exp.y (%union): Change dval to typed_val_float. Use DOUBLEST
to store actual data. Change types of INT and FLOAT tokens to
typed_val_int and typed_val_float respectively. Create new token
DOUBLE_KEYWORD to specify the string `double'. Make production
for FLOAT use type determined by parse_number. Add production for
"long double" data type.
* (parse_number): Use sscanf to parse numbers as float, double or
long double depending upon the type of typed_val_float.dval. Also
allow user to specify `f' or `l' suffix to explicitly specify
float or long double constants. Change typed_val to
typed_val_int.
* (yylex): Change typed_val to typed_val_int. Also, scan for
"double" keyword.
* coffread.c (decode_base_type): Add support for T_LNGDBL basic
type.
* configure, configure.in: Add check for long double support in
the host compiler.
* defs.h: Define DOUBLEST appropriatly depending on whether
HAVE_LONG_DOUBLE (from autoconf) is defined. Also, fix prototypes
for functions that handle this type.
* expression.h (union exp_element): doubleconst is now type
DOUBLEST.
* m2-exp.y f-exp.y (%union): dval becomes type DOUBLEST.
* findvar.c (extract_floating): Make return value be DOUBLEST.
Also, add support for numbers with size of long double.
* (store_floating): Arg `val' is now type DOUBLEST. Handle all
floating types.
* parser-defs.h parse.c (write_exp_elt_dblcst): Arg expelt is now
DOUBLEST.
* valarith.c (value_binop): Change temp variables v1, v2 and v to
type DOUBLEST. Coerce type of result to long double if either op
was of that type.
* valops.c (value_arg_coerce): If argument type is bigger than
double, coerce to long double.
* (call_function_by_hand): If REG_STRUCT_HAS_ADDR is defined, and
arg type is float and > 8 bytes, then use pointer-to-object
calling conventions.
* valprint.c (print_floating): Arg doub is now type DOUBLEST.
Use appropriate format and precision to print out floating point
values.
* value.h: Fixup prototypes for value_as_double,
value_from_double, and unpack_double to use DOUBLEST.
* values.c (record_latest_value): Remove check for invalid
floats. Allow history to store them so that people may examine
them in hex if they want.
* (value_as_double unpack_double): Change return value to DOUBLEST.
* (value_from_double): Arg `num' is now DOUBLEST.
* (using_struct_return): Use RETURN_VALUE_ON_STACK macro (target
specific) to expect certain types to always be returned on the stack.
* Makefile.in (SFILES): Add bcache.c.
(symtab_h): Add bcache.h.
(HFILES_NO_SRCDIR): add bcache.h
(COMMON_OBJS): Add bcache.o
(bcache.o): New target.
* dbxread.c (start_psymtab): Make global_syms & static_syms
type "partial_symbol **".
* hpread.c (hpread_start_symtab): Ditto.
* os9kread.c (os9k_start_psymtab): Ditto.
* stabsread.h (start_psymtab): Ditto.
* {symfile.c, symfile.h} (start_psymtab_common): Ditto.
* maint.c (maintenance_print_statistics): Call
print_symbol_bcache_statistics.
* objfiles.c (allocate_objfile): Initialize psymbol bcache malloc
and free pointers.
* solib.c (allocate_rt_common_objfile): Ditto.
* symfile.c (reread_symbols): Ditto.
(free_objfile): Free psymbol bcache when objfile is freed.
(objfile_relocate): Use new indirect psymbol pointers.
* objfiles.h (struct objfile): Add psymbol cache.
* symfile.c (compare_psymbols): Now passed pointers to pointers to
psymbols.
(reread_symbols): Free psymbol bcache when freeing other objfile
resources.
(add_psymbol_to_list, add_psymbol_addr_to_list): Initialize new
psymbol using the psymbol bcache.
(init_psymbol_list): Psymbol lists now contain pointers rather than
the actual psymbols.
* symfile.h (psymbol_allocation_list): Psymbol lists now dynamically
grown arrays of pointers.
(ADD_PSYMBOL_VT_TO_LIST): Initialize new symbol using the psymbol
bcache.
* symmisc.c (print_partial_symbols): Now takes pointer to pointer
to partial symbol.
(print_symbol_bcache_statistics): New function to print per objfile
bcache statistics.
(print_partial_symbol, print_partial_symbols,
maintenance_check_symtabs, extend_psymbol_list):
Account for change to pointer to pointer to partial symbol.
* symtab.c (find_pc_psymbol, lookup_partial_symbol, decode_line_2,
make_symbol_completion_list):
Account for change to pointer to pointer to partial symbol.
* symtab.h (bcache.h): Include.
* xcoffread.c (xcoff_start_psymtab): Make global_syms & static_syms
type "partial_symbol **".
(SF_GET_ADJ_LNNOPTR): Define (non BFD_ASSEMBLER).
(SF_SET_ADJ_LNNOPTR): Define (non BFD_ASSEMBLER).
* config/obj-coff.c (obj_coff_endef): Set ADJ_LNNOPTR when LNNOPTR
is set.
(w_symbols): If ADJ_LNNOPTR is set, add the section lnnoptr field
to the symbol lnnoptr field, to get the correct file offset.
PR 7428.
character is one of the commonly used C++ marker characters.
* defs.h (is_cplus_marker): Add prototype.
* c-typeprint.c (c_type_print_base), ch-lang.c (chill_demangle),
cp-valprint.c (cp_print_class_method), mdebugread.c (parse_symbol),
stabsread.c (define_symbol, read_member_functions, read_struct_fields),
symtab.h (OPNAME_PREFIX_P, VTBL_PREFIX_P, DESTRUCTOR_PREFIX_P),
values.c (vb_match): Use is_cplus_marker instead of comparison
with CPLUS_MARKER.