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.
Ian Lance Taylor [Fri, 10 Jun 1994 19:43:49 +0000 (19:43 +0000)]
* objcopy.c (copy_archive): Make the temporary directory in the
same directory as the output BFD, since we may not have write
permission on the current directory. Set the permissions of the
new directory to 0700, not 0777.
Ian Lance Taylor [Fri, 10 Jun 1994 17:27:22 +0000 (17:27 +0000)]
* coff-i960.c (coff_i960_reloc_type_lookup): Add BFD_RELOC_CTOR.
* linker.c (_bfd_generic_link_write_global_symbol): Don't assume
the section of a common symbol is not NULL.
* sparclite-tdep.c: new file, contains hardware breakpoint support
code.
* sparclite-stub.c: new file, stub code that add support hardware
breakpoint support.
* breakpoint.c: add hardware breakpoint support.
* breakpoint.h: add new breakpoint type to support hardware
breakpoint.
Kung Hsu [Thu, 9 Jun 1994 23:22:56 +0000 (23:22 +0000)]
Modified Files:
ChangeLog
* remote-os9k.c (rombuf_command): fix a bug accepting rombug
output.
* stabsread.c (read_struct_fields): os9k nested structure does not
have terminating ';', instead it just get to ',' and bit position
and length.
Per Bothner [Thu, 9 Jun 1994 23:13:54 +0000 (23:13 +0000)]
* Makefile.in: Bunch of fixes so it actually works in this
directory. (E.g. add extra ../ where needed.)
Also, add .exe to executables, so we can use suffix rules.
* chexp.exp (test_print_reject): Update syntax error message.
* chillvars.ch (module PR_5020): Moved from here ...
* pr-5022.ch: ... to this new file.
* chillvars.exp, pr-5020.exp (binfile): Add .exe extension.
* chillvars.exp, pr-5020.exp: Don't check all_flag.
* pr-5020.exp: Add more tests; fix "print y pretty" output.
Kung Hsu [Thu, 9 Jun 1994 22:03:41 +0000 (22:03 +0000)]
Modified Files:
remote-os9k.c stabsread.c
* remote-os9k.c (rombuf_command): fix a bug accepting rombug
output.
* stabsread.c (read_struct_fields): os9k nested structure does not
have terminating ';', instead it just get to ',' and bit position
and length.
Stu Grossman [Thu, 9 Jun 1994 06:30:38 +0000 (06:30 +0000)]
* nlmread.c (nlm_symtab_read): Clean up a bit.
* (nlm_symfile_read): Record bounds of main() so that backtrace
command will know where to stop.
* objfiles.c (objfile_relocate): Relocate entry point/func info
for backtrace as well.
* objfiles.h: Define values for invalid PCs for entry point info.
* symfile.c (init_entry_point_info): Initialize invalid values
with aforementioned macros.
* config/alpha/tm-alphanw.h: Turn on FRAME_CHAIN_VALID_ALTERNATE
to cause backtrace to stop when it gets back to main().
* config/i386/tm-i386nw.h: Ditto.
* aoutx.h (aout_get_external_symbols): Don't try to read the
strings if there are no symbols.
(aout_link_write_other_symbol): Use the output section when
working out the type.