Stan Shebs [Thu, 16 Jun 1994 23:04:55 +0000 (23:04 +0000)]
* fork-child.c (startup_inferior) [STARTUP_INFERIOR]: If defined,
call it instead of doing normal loop.
* infcmd.c (attach_command): Don't call wait_for_inferior if
running Mach 3.
* infrun.c (proceed) [PREPARE_TO_PROCEED]: If defined, call
hook that can decide whether to step over the next breakpoint.
* utils.c (wrap_here): Abort if wrap_buffer not allocated.
(request_quit) [REQUEST_QUIT]: If defined, call it instead of
doing normal quit.
* Makefile.in (stop-gdb): New target.
* stop-gdb.c: New file, utility to get attention of waiting GDBs
in Mach 3.
Stan Shebs [Thu, 16 Jun 1994 22:02:24 +0000 (22:02 +0000)]
* configure.in: Improve sorting/formatting of hosts and targets.
(i[34]86-*-mach3*, i[34]86-*-osf1mk*, mips-*-mach3*,
m88*-*-mach3*, ns32k-*-mach3*): Recognize.
* Makefile.in (gdb-stop): New target.
* gdb-stop.c: New file, utility to gets attention of waiting GDBs
in Mach 3.
Ian Lance Taylor [Thu, 16 Jun 1994 21:59:41 +0000 (21:59 +0000)]
* configure.in: Set UNDERSCORE in Makefile based on result of
invoking config.bfd with a second argument of ``_''.
* Makefile.in (underscore.c): Depend upon Makefile. Don't try to
run $(CC) and $(NM), just use $(UNDERSCORE). Create via temporary
file.
(demangle.o): Remove target.
($(NM_PROG)): Don't depend upon demangle.o, and don't link against
demangle.o. It's in libiberty anyhow.
(cplus-dem.o): Don't depend upon demangle.o.
* binutils.texi: Mention -n and --no-strip-underscores arguments
to c++filt.
Ian Lance Taylor [Thu, 16 Jun 1994 21:58:48 +0000 (21:58 +0000)]
* config.bfd: If second argument is ``_'', then, instead of
echoing config file name, echo whether target uses leading
underscores on symbol names. Add appropriate settings to
different cases. Used by binutils/configure.in to set default for
c++filt.
Ian Lance Taylor [Thu, 16 Jun 1994 19:32:07 +0000 (19:32 +0000)]
* lexsup.c (parse_args): Add -shared to longopts, and handle it.
* ldmain.c (main): Initialize link_info.shared to false. Give
error if link_info.relocateable and link_info.shared are both set.
Ian Lance Taylor [Thu, 16 Jun 1994 19:11:03 +0000 (19:11 +0000)]
* configure.in: If EMUL_EXTRA* is defined in a config file, treat
it as naming an emulation to be added to EMULATION_OFILES.
* config/i386-linux.mt (EMUL_EXTRA1): Define as elf_i386.
* emultempl/linux.em: New file providing support for linking
against Linux shared libraries.
* config/i386-linux.mt (ei386linux.c): Depend upon linux.em.
* emulparams/i386linux.sh (TEMPLATE_NAME): Define as linux.
* i386linux.c: Many new functions and definitions for linker
support for Linux shared libraries.
* bfd-in.h (bfd_linux_size_dynamic_sections): Declare.
* bfd-in2.h: Rebuild.
* mpw-make.in (.c.o, .gc.o): Prefix segment names with gdb_.
(top.c.o, annotate.c.o): Add build rules.
* macgdb.r (SysTypes.r): Include.
('vers'): New resource, version info.
(mFile, mEdit, mDebug): Enable all menu items.
(mDebug): Add key equivalents for continue, step, next.
(wConsole): Add zoom and close boxes to window.
* mac-xdep.c (new_console_window): New function, code taken from
mac_init.
(mac_command_loop): Use GetCaretTime for wait interval, call
do_idle on null events.
(do_idle): New function.
(zoom_window): Implement zooming.
(v_scroll_proc): New function, handles vertical scrolling.
(activate_window): Do activation of console window.
(do_menu_command): Implement items of file, edit, and debug menus.
(do_keyboard_command): Fix command extraction.
(adjust_console_sizes, adjust_console_text): New functions.
(hacked_fprintf, hacked_vfprintf, hacked_fputs, hacked_fputc,
hacked_putc): Don't call draw_console.
* ser-mac.c (mac_open): Add an error message for invalid ports.
(first_mac_write): New global.
(mac_write): Use first_mac_write to sleep on first several writes.
* config/obj-vms.h (DBG_S_C_COMPLX4, DBG_S_C_COMPLX8): define
these new VMS symbol-type macros for `complex float' and
`complex double' support. Their values come from the existing
DSC$K_DTYPE_FC and DSC$K_DTYPE_DC macros in <descrip.h>.
(DBG_S_C_REAL8_G, DBG_S_C_COMPLX8_G): G_float versions of
REAL8 and COMPLX8; not used yet, because gcc outputs the same
.stabs for `double' regardless of whether `-mg' is used.
config/obj-vms.c (VMS_typedef_parse) [case 'r']: add entries
for gcc2's predefined types "complex float", "complex double",
and "complex long double" (identical to complex double).
Ian Lance Taylor [Thu, 16 Jun 1994 00:01:32 +0000 (00:01 +0000)]
* libelf.h (struct elf_obj_tdata): New field dt_needed_name.
(elf_dt_needed_name): New accessor macro.
* elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name
is set, use that instead of the filename for the DT_NEEDED dynamic
entry.
* elf.c (bfd_elf_set_dt_needed_name): New function.
* bfd-in.h (bfd_elf_set_dt_needed_name): Declare.
* bfd-in2.h: Rebuilt.
Ian Lance Taylor [Wed, 15 Jun 1994 23:49:01 +0000 (23:49 +0000)]
* ldemul.h (ldemul_open_dynamic_archive): Declare.
(ld_emulation_xfer_type): Add new field open_dynamic_archive.
* ldemul.c: Include ldexp.h and ldlang.h.
(ldemul_open_dynamic_archive): New function.
* ldfile.h (ldfile_open_file_search): Declare.
* ldfile.c: Include ldemul.h.
(try_open_bfd): Rename from cache_bfd_openr. Return boolean
argument, not bfd *. Change all callers.
(ldfile_open_file_search): Rename from open_a. Return boolean
argument, not bfd *. Clean up. Change all callers.
(ldfile_open_file): If doing a dynamic link, call
ldemul_open_dynamic_archive rather than assuming the extension of
a dynamic object is ".so".
* emultempl/elf32.em (gld${EMULATION_NAME}_open_dynamic_archive):
New function.
(ld_${EMULATION_NAME}_emulation): Initialize open_dynamic_archive
field.
* emultempl/sunos.em (ld_${EMULATION_NAME}_emulation): Likewise.
Ian Lance Taylor [Wed, 15 Jun 1994 20:46:43 +0000 (20:46 +0000)]
Let the user change the dynamic linker used by ELF code.
* ld.h (args_type): Add new field interpreter.
* lexsup.c (parse_args): Add dynamic-linker to longopts, and
handle it.
* ldmain.c (main): Initialize command_line.interpreter to NULL.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Get
the ELF backend to return the .interp section. If
command_line.interpreter is not NULL, set the contents of .interp
to it.
* ld.texinfo: Mention -dynamic-linker.
Ian Lance Taylor [Wed, 15 Jun 1994 19:58:59 +0000 (19:58 +0000)]
* elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add sinterpptr
argument, and set it to the .interp section.
* bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
(bfd_elf64_size_dynamic_sections): Likewise.
* bfd-in2.h: Rebuilt.
* Makefile.in (site.exp): Don't insert host_os, etc.
(just-check): Just use RUNTEST with RUNTESTFLAGS only.
(distclean): Check existence of subdir.
* gdb.base/configure.in (hppa*-*-hpux*): Recognize.
* gdb.base/Makefile.in: General cleanup and simplification.
Use CC, CFLAGS, and LDFLAGS instead of ..._FOR_TARGET versions
to build executables. Use default rule to build .o files.
(EXPECT, RUNTEST, CC): Fix relative pathname.
(site.exp): Don't insert host_os, etc.
* gdb.base/signals.c (main): Don't call signal unless SIGALRM
and/or SIGUSR1 defined.
* gdb.base/watchpoint.c: Don't include stdio.h a second time.
* gdb.c++/Makefile.in: General cleanup and simplification.
Use CC, CFLAGS, and LDFLAGS instead of ..._FOR_TARGET versions
(CFLAGS): Remove.
(EXPECT, RUNTEST_FOR_TARGET, CXX): Fix relative pathname.
Ian Lance Taylor [Wed, 15 Jun 1994 17:22:41 +0000 (17:22 +0000)]
* archive.c (bfd_slurp_armap): Recognize __.SYMDEF/ as well as
__.SYMDEF; the former was used in old Linux archives. From [email protected] (Rick Sladkey).
Ian Lance Taylor [Wed, 15 Jun 1994 17:15:03 +0000 (17:15 +0000)]
* i386linux.c (i386linux_write_object_contents): Define; like
MY(write_object_contents) in aout-target.h, but set MACHTYPE to
M_386. From [email protected] (Rick Sladkey).
(MY_write_object_contents): Define.
Ian Lance Taylor [Wed, 15 Jun 1994 16:13:59 +0000 (16:13 +0000)]
* nm.c (long_options): Add --no-demangle to turn off --demangle,
and --no-cplus for Linux compatibility.
(usage): Mention --no-demangle.
* binutils.texi: Document --no-demangle.
Ian Lance Taylor [Wed, 15 Jun 1994 06:01:45 +0000 (06:01 +0000)]
* ld.h (ld_config_type): Add new field traditional_format.
* lexsup.c (parse_args): Add traditional_format to longopts, and
handle it.
* ldmain.c (main): Initialize config.traditional_format to false.
* ldlang.c (ldlang_open_output): Set BFD_TRADITIONAL_FORMAT in BFD
flags of output_bfd according to config.traditional_format.
* ld.texinfo: Document -traditional-format.
Ian Lance Taylor [Wed, 15 Jun 1994 05:46:46 +0000 (05:46 +0000)]
* bfd-in.h (BFD_TRADITIONAL_FORMAT): Define new BFD flag to
request BFD to write object in the traditional format, whatever
that means for the particular backend.
* bfd-in2.h: Rebuilt.
Ian Lance Taylor [Tue, 14 Jun 1994 22:04:54 +0000 (22:04 +0000)]
* libaout.h (struct aoutdata): Add q_magic_format to subformat
enum.
* aout-target.h (MY_bfd_copy_private_bfd_data): Define as function
if not already defined. Copy subformat information.
(MY_text_includes_header): Define as 0 if not already defined.
(MY(backend_data)): Use MY_text_includes_header rather than 0.
(MY_final_link_callback): Rename from final_link_callback, and
define only if MY_final_link_callback is not already defined.
(MY_bfd_final_link): Rename use of final_link_callback to
MY_final_link_callback.
* aoutx.h (NAME(aout,some_aout_object_p)): Handle QMAGIC like
ZMAGIC, but set the subformat to q_magic_format. Abort if the
magic number if not recognized.
(adjust_z_magic): Use QMAGIC if q_magic_format.
* i386linux.c (MY_text_includes_header): Define as 1.
(i386linux_bfd_final_link): New static function.
(MY_bfd_final_link): Define as i386linux_bfd_final_link.
* aoutx.h (translate_to_native_sym_flags): Check both section and
output_section against sections of abfd.
Ian Lance Taylor [Tue, 14 Jun 1994 17:06:08 +0000 (17:06 +0000)]
For PR 4865.
* libecoff.h (struct ecoff_link_hash_entry): Change type of
written from boolean to char. Add new field small.
* ecoff.c (ecoff_link_hash_newfunc): Initialize written to 0
rather than false. Initialize small to 0.
(ecoff_link_add_externals): If ECOFF type is scSUndefined, set
small. If small is set, and hash table type is common, force the
symbol into a section named SCOMMON and change the ECOFF type from
scCommon to scSCommon.
(ecoff_link_write_external): Set written to 1 rather than true.
* coff-mips.c (mips_relocate_section): Correct JMPADDR reloc
overflow check to consider section VMA of input file.
Ian Lance Taylor [Mon, 13 Jun 1994 18:25:12 +0000 (18:25 +0000)]
* aoutf1.h (aout_32_sunos4_write_object_contents): Handle a
machine type of 68000.
* aoutx.h (NAME(aout,machine_type)): Add new argument unknown.
Set *unknown to true if machine type is really unknown, as opposed
to M_UNKNOWN for the 68000.
(NAME(aout,set_arch_mach)): Change NAME(aout,machine_type) call
accordingly.
* libaout.h (NAME(aout,machine_type)): Add new argument to
prototype.
Jeff Law [Mon, 13 Jun 1994 02:31:43 +0000 (02:31 +0000)]
* som.c (EXEC_AUX_ID): Define based on availablity of HPUX_AUX_ID
or HIUX_AUX_ID.
(som_begin_writing): Use EXEC_AUX_ID instead of HPUX_AUX_ID.
(som_write_armap): Use CPU_PA_RISC1_0 as the magic number. Note
som.c is careful to always define CPU_PA_RISC1_0.
* mpw-configure (config.status): Write only if changed.
* mpw-config.in (readline): Configure it (not built, just used for
definitions).
* mpw-README: Add/update information.
Peter Schauer [Sun, 12 Jun 1994 11:11:39 +0000 (11:11 +0000)]
* config/m68k/dpx2.mh (NATDEPFILES): Remove duplicate inclusion
of inftarg.o.
* config/m68k/tm-dpx2.h (CANNOT_STORE_REGISTER): Define to inhibit
writing of floating registers, the dpx2 kernel disallows it.
Peter Schauer [Sun, 12 Jun 1994 11:10:13 +0000 (11:10 +0000)]
* config/m68k/dpx2.mh (NATDEPFILES): Remove duplicate inclusion
of inftarg.o.
* config/m68k/tm-dpx2.h (CANNOT_STORE_REGISTER): Define to inhibit
writing of floating registers, the dpx2 kernel disallows it.
* irix5-nat.c (LM_ADDR): The loaded address of the shared library
is contained in o_praw.
* irix5-nat.c (solib_map_sections): Adjust sections by the
difference between the loaded address and the prelinked address.
* irix5-nat.c (solib_address): Use LM_ADDR for the loaded start
address.
* mdebugread.c (parse_symbol): Do not relocate stEnd/scText
symbols, their value is absolute.
* mdebugread.c (parse_partial_symbols): Handle Irix 5.2 shared
libraries fh->adr fields of zero. Relocate minimal symbol values
upon readin. Relocate non-stabs symbols upon readin.
* mdebugread.c (psymtab_to_symtab_1): Use pst->textlow for the
start address of the outermost block.
* mdebugread.c (parse_lines, parse_procedure): Pass in pst
instead of section_offsets and use relocated pst->textlow for
line number and procedure address relocations.
From [email protected] (Guillermo A. Loyola):
* mdebugread.c (parse_symbol, parse_partial_symbols, cross_ref):
Handle SGI Irix5 stIndirect symbol type.
Ian Lance Taylor [Sat, 11 Jun 1994 20:45:49 +0000 (20:45 +0000)]
Add weak symbols as an extension to a.out.
* read.c (pseudo_set): Only preserve external bit for OBJ_AOUT and
OBJ_BOUT if not BFD_ASSEMBLER.
* config/aout_gnu.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB):
Define as in ../include/aout/aout64.h.
* config/obj-aout.h (OBJ_SYMFIELD_TYPE): If not BFD_ASSEMBLER,
define as char.
(S_GET_WEAK, S_SET_WEAK): Define if not BFD_ASSEMBLER.
* config/obj-aout.c (obj_pseudo_table): Add "weak".
(obj_emit_symbols): Adjust type of weak symbols.
(obj_aout_weak): New static function.
Ian Lance Taylor [Sat, 11 Jun 1994 20:40:59 +0000 (20:40 +0000)]
Add weak symbols as an extension to a.out.
* aoutx.h (sym_in_text_section): Don't define.
(sym_in_data_section, sym_in_bss_section): Likewise.
(sym_is_undefined, sym_is_global_defn): Likewise.
(sym_is_debugger_info, sym_is_fortrancommon): Likewise.
(sym_is_absolute, sym_is_indirect): Likewise.
(translate_from_native_sym_flags): Rewrite for clarity. Rearrange
arguments and change caller. Handle weak symbols.
(translate_to_native_sym_flags): Likewise.
(aout_link_check_ar_symbols): Don't ignore weak symbols. Pull
object in from archive if a weak defintion is found for an
existing undefined symbol.
(aout_link_add_symbols): Put all cases in switch. Set flags of an
undefined symbol to 0. Handle weak symbols.
(aout_link_write_symbols): Handle weak symbols.
(aout_link_write_other_symbol): Likewise.
(aout_link_input_section_std): Likewise.
(aout_link_input_section_ext): Likewise.
* sunos.c (sunos_write_dynamic_symbol): Likewise.