Ian Lance Taylor [Thu, 18 Aug 1994 21:48:23 +0000 (21:48 +0000)]
Get ld -x -r to handle a.out set symbols correctly.
* aoutx.h (adjust_o_magic): If the .bss VMA was set outside of
BFD, pad the .data section up to the VMA of the .bss section.
(aout_link_add_symbols): If a set symbol does not get modified,
treat it as a local symbol.
(aout_link_write_symbols): Set the value of set symbols
correctly. Don't discard set symbols even if discarding local
symbols.
(aout_link_write_other_symbol): Don't abort on bfd_link_hash_new,
since it can now happen for set symbols.
Ian Lance Taylor [Thu, 18 Aug 1994 21:33:07 +0000 (21:33 +0000)]
* elfcode.h (elf_fake_sections): Just check for ".rela" and
".rel", not ".rela." and ".rel."; make this work by checking
use_rela_p.
* elf32-i386.c (elf_i386_check_relocs): Just check for ".rel", not
".rel."
(elf_i386_size_dynamic_sections): Likewise.
(elf_i386_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_check_relocs): Just check for
".rela", not ".rela."
(elf32_sparc_size_dynamic_sections): Likewise.
(elf32_sparc_relocate_section): Likewise.
Ian Lance Taylor [Thu, 18 Aug 1994 20:10:54 +0000 (20:10 +0000)]
Make the ELF linker handle orphaned sections reasonably. Also,
define __start_SECNAME and __stop_SECNAME around sections whose
names can be represented in C, for the benefit of symbol sets in
glibc.
* ldemul.h (ldemul_place_orphan): Declare.
(ld_emulation_xfer_type): Add place_orphan field.
* ldemul.c (ldemul_place_orphan): New function.
* ldlang.h (wild_doit): Declare.
* ldlang.c (wild_doit): Make nonstatic.
(lang_place_orphans): Call ldemul_place_orphan.
* emultempl/elf32.em: Include <ctype.h> and "ldgram.h".
(hold_section, hold_use, hold_text, hold_data, hold_bss): New
static variables.
(gld${EMULATION_NAME}_place_orphan): New static function.
(gld${EMULATION_NAME}_place_section): New static function.
(ld_${EMULATION_NAME}_emulation): Initialize place_orphan field.
Stu Grossman [Thu, 18 Aug 1994 06:43:56 +0000 (06:43 +0000)]
* Makefile.in (TARGET_FLAGS_TO_PASS): Pass down LD_FOR_TARGET and
NLMCONV_FOR_TARGET. (SUBDIRS): Add nlm target.
* configure.in (powerpc-*-netware*): Automatically configure nlm
subdir.
* nlm/Makefile.in: Add {CC NLMCONV LD}_FOR_TARGET. Remove alpha
specific stuff. Make things more configurable.
* nlm/configure.in: Add powerpc-*-netware* target. Use
gdbserve.mt/cpu.c/cpu.h for target stuff. Get rid of tm/xm/nm.h
files.
* nlm/gdbserve.c: Move Alpha specific stuff into other files.
Remove lots of architecture-specific stuff.
* nlm/gdbserve.def: Add new imports.
* nlm/ppc.c, nlm/ppc.h: New files that contain PowerPC specific code.
* nlm/prelude.c: Don't include libhooks.h, get rid of call to
register library.
* nlm/prelude.o: What was this doing here?
* config/alpha/gdbserve.mt: Defs for alpha nlm stub.
* config/powerpc/gdbserve.mt: Defs for PowerPC nlm stub.
* config/powerpc/ppc-nw.mt: Defs for PowerPC target for GDB.
* config/powerpc/tm-ppc-nw.h: Ditto.
* nlmstub.def: New file, contains imports for 386 nlm stub.
Stu Grossman [Thu, 18 Aug 1994 06:32:55 +0000 (06:32 +0000)]
* Makefile.in (TARGET_FLAGS_TO_PASS): Pass down LD_FOR_TARGET and
NLMCONV_FOR_TARGET. (SUBDIRS): Add nlm target.
* configure.in (powerpc-*-netware*): Automatically configure nlm
subdir.
* nlm/Makefile.in: Add {CC NLMCONV LD}_FOR_TARGET. Remove alpha
specific stuff. Make things more configurable.
* nlm/configure.in: Add powerpc-*-netware* target. Use
gdbserve.mt/cpu.c/cpu.h for target stuff. Get rid of tm/xm/nm.h
files.
* nlm/gdbserve.c: Move Alpha specific stuff into other files.
Remove lots of architecture-specific stuff.
* nlm/gdbserve.def: Add new imports.
* nlm/ppc.c, nlm/ppc.h: New files that contain PowerPC specific code.
* nlm/prelude.c: Don't include libhooks.h, get rid of call to
register library.
* nlm/prelude.o: What was this doing here?
Ian Lance Taylor [Wed, 17 Aug 1994 17:44:17 +0000 (17:44 +0000)]
* coffgen.c (coff_get_normalized_symtab): If a C_FILE symbol has
no aux entries, use the symbol name as the file name.
(coff_find_nearest_line): Look for the right C_FILE symbol, rather
than always using the first one. If there is a debugging symbol
after a function symbol, skip it. Add the section VMA to the line
offset, since it was subtracted out in coff_slurp_line_table.
PR 5010.
Stan Shebs [Wed, 17 Aug 1994 00:15:28 +0000 (00:15 +0000)]
* coffread.c: General cleanup, and support for section offsets.
(time.h, sys/types.h, libbfd.h): Don't include.
(cur_src_start_addr, cur_src_end_addr): Rename to
current_source_start_addr, current_source_end_addr.
(nlist_stream_global): Remove.
(nlist_bfd_global): New global variable.
(coff_symfile_read): Remove code that gets and uses fileno()
directly.
(read_coff_symtab, enter_linenos, process_coff_symbol): Add
section_offsets parameter, add text/data section offset to
appropriate symbols' values.
(read_one_sym): Use bfd_read instead of fread.
(init_stringtab, init_lineno): Change first parameter to a bfd,
use bfd routines instead of raw I/O.
Jim Kingdon [Tue, 16 Aug 1994 23:22:45 +0000 (23:22 +0000)]
* Makefile.in (TARFILES, NONSRC, SFILES_STAND, SFILES_KGDB):
Remove; unused.
(TAGFILES_NO_SRCDIR): Remove ALLPARAM.
(HFILES_NO_SRCDIR): Remove all files in config sub-directory.
(TAGS): Also pass result of find on config sub-directory to etags.
(ALLPARAM): Remove; now unused.
Jeff Law [Tue, 16 Aug 1994 23:11:59 +0000 (23:11 +0000)]
* som.c (som_prep_headers): If writing some form of an executable,
allocate and attach an exec header to the BFD private data.
(som_begin_writing): Don't fill fields of the exec header based
on BFD private data here (like the exec flags). Do not write
the exec header here.
(som_write_headers): Instead do it here.
* som.h (struct somdata): New field "exec_hdr" for the executable
file header.
(obj_som_exec_hdr): New accessor macro.
Ian Lance Taylor [Tue, 16 Aug 1994 04:15:50 +0000 (04:15 +0000)]
* i386linux.c (linux_link_create_dynamic_sections): Create section
named .linux-dynamic, not .dynamic.
(linux_add_one_symbol): Use .linux-dynamic, not .dynamic.
(bfd_linux_size_dynamic_sections): Likewise.
(linux_finish_dynamic_link): Likewise.
Ian Lance Taylor [Mon, 15 Aug 1994 18:12:05 +0000 (18:12 +0000)]
* aout-target.h (MY_zmagic_contiguous): Define as 0 if not already
defined.
(MY(backend_data)): Use MY_zmagic_contiguous, not hardcoded 0.
* i386linux.c (MY_zmagic_contiguous): Define.
Ian Lance Taylor [Mon, 15 Aug 1994 18:08:13 +0000 (18:08 +0000)]
* elfcode.h (bfd_section_from_shdr): If a SHT_SYMTAB section in a
shared object has SHF_ALLOC set, create a BFD section for it.
(elf_section_from_bfd_section): There may be a BFD section for a
SHT_SYMTAB section.
Ian Lance Taylor [Mon, 15 Aug 1994 16:26:06 +0000 (16:26 +0000)]
* coffcode.h (styp_to_sec_flags): Add name argument. If no flags
are recognized, chose section flags based on the name.
(bfd_coff_backend_data): _bfd_styp_to_sec_flags_hook field: Add
name argument.
(bfd_coff_styp_to_sec_flags_hook): Add name argument.
(coff_compute_section_file_positions): Don't adjust the section
position by COFF_PAGE_SIZE unless SEC_ALLOC is set.
* libcoff.h: Rebuilt.
* coffgen.c (make_a_section_from_file): Pass section name to
bfd_coff_styp_to_sec_flags_hook.
* ecoff.c (_bfd_ecoff_styp_to_sec_flags): Add unused name
argument.
* libecoff.h (_bfd_ecoff_styp_to_sec_flags): Add name argument to
prototype.
Jeff Law [Sat, 13 Aug 1994 02:12:03 +0000 (02:12 +0000)]
* gdb.base/interrupt.exp: When trying to wake up the inferior,
send the newline ourselves instead of assuming gdb_test will do
so when passed an empty input string.
Ian Lance Taylor [Fri, 12 Aug 1994 15:28:19 +0000 (15:28 +0000)]
* configure.host (sparc-*-solaris2*): Use solaris2, not sysv4.
The linker depends upon configuring for solaris2.
* hosts/solaris2.h: New file; include hosts/sysv4.h.
* config/solaris2.mh: New file; copy of config/sysv4.mh.
Ian Lance Taylor [Thu, 11 Aug 1994 19:00:26 +0000 (19:00 +0000)]
Add support for removing named sections to objcopy and strip.
* objcopy.c (struct section_list): Define.
(remove_sections): New static variable.
(strip_options, copy_options): Add remove-section.
(copy_usage, strip_usage): Mention -R and --remove-section.
(setup_section): If section is in remove_sections list, ignore it.
(copy_section): Likewise.
(strip_main, copy_main): Handle -R.
* binutils.texi, objcopy.1, strip.1: Document new options.
Ian Lance Taylor [Wed, 10 Aug 1994 17:15:05 +0000 (17:15 +0000)]
* aoutx.h (adjust_z_magic): Make sure data section is padded to
page boundary when the VMA is set by the calling program. From
Eric Youngdale <ericy@cais.cais.com>.
Stu Grossman [Wed, 10 Aug 1994 02:47:48 +0000 (02:47 +0000)]
* configure.in: Recognize ppc-*-netware.
* config/te-ppcnw.h: New file to support Power-PC/Netware
configurations. Currently, it just enables the use of backslash
escapes in string directives.
* config/tc-ppc.c (ppc_stabx): Call expression directly, rather
than via pseudo_set. If expression is a symbol, move stab symbol
to just after symbol from expression.
Stu Grossman [Tue, 9 Aug 1994 17:27:01 +0000 (17:27 +0000)]
* infrun.c (wait_for_inferior): Call target_resume() upon
detection of new processes.
* procfs.c (create_procinfo): Return pointer to new procinfo
structure.
* (do_detach): Spacing & formatting cleanup.
* (procfs_wait): Move wait_again label to ensure that we really
wait again. On exit from fork, release new child from gdbs'
clutches.
* (procfs_set_sproc_trap): Enable trapping of fork and vfork.
Stan Shebs [Tue, 9 Aug 1994 01:06:29 +0000 (01:06 +0000)]
Update to ns32k support, from Ian Dall (dall@hfrd.dsto.gov.au).
* aout-ns32k.c: Add declarations that were in aout-ns32k.h, change
declarations to traditional form.
(MY_reloc_howto, MY_put_reloc): Change from macro to function.
(ns32k_relocate_contents): New function.
* aout-ns32k.h: Remove.
* cpu-ns32k.c: Add declarations that were in aout-ns32k.h, change
declarations to traditional form.
(ns32k_final_link_relocate): Call ns32k_relocate_contents.
* netbsd532.c: Reformat to standards, add copyright notice.
(ARCH): Don't define.
(aout-ns32k.h): Don't include.
* pc532-mach.c: Ditto.
Peter Schauer [Sun, 7 Aug 1994 13:33:45 +0000 (13:33 +0000)]
* config/mips/tm-irix5.h (IN_SIGTRAMP): Redefine for Irix 5,
Irix 5 has a standard _sigtramp signal handler.
* irix5-nat.c (solib_add): Get rid of sigtramp_address handling,
it is not needed for a standard _sigtramp signal handler.
Add shared library sections to the section table of the target
before adding the symbols.
* mips-tdep.c (mips_skip_prologue): Do not skip load immediate
instructions that do not prepare a stack adjustment.
* regex.c (SIGN_EXTEND_CHAR): Update to emacs-19.25 definition,
which does the right thing on machines where `char' is unsigned.
Stu Grossman [Sat, 6 Aug 1994 00:55:08 +0000 (00:55 +0000)]
* remote.c (remote_open): Move setting of inferior_pid prior to
call to remote_start_remote. Also use unique value for pid to
avoid confusion with read_register_pid & friends.
* (remote_wait): Return inferior_pid instead of 0 in all cases.
J.T. Conklin [Fri, 5 Aug 1994 16:14:03 +0000 (16:14 +0000)]
* i386-nlmstub.c (handle_exception): Point the PC at _exit() to
kill the program being debugged. KillMe(), the undocumented
call intended for this purpose, causes the server to hang.
Stu Grossman [Thu, 4 Aug 1994 17:45:26 +0000 (17:45 +0000)]
* target.c (add_target): Don't call clean_target on target
vectors anymore.
* (unpush_target): Test for to_close being set before calling.
* (target_xfer_memory, target_info): Check for to_has_memory
before playing with memory.
Stu Grossman [Thu, 4 Aug 1994 17:32:09 +0000 (17:32 +0000)]
* remote.c (remote_open): Set inferior_pid to make kill command
happy.
* inflow.c (kill_command): Revert change of Aug 2. Use
inferior_pid to determine whether to print out "The program is not
being run." message.
Jean Marie Diaz [Thu, 4 Aug 1994 16:10:23 +0000 (16:10 +0000)]
* elfcode.h (elf_bfd_final_link): Force the vma of sections which
do not have SEC_ALLOC set to be 0. This is needed to handle
relocs against debugging sections.
Jean Marie Diaz [Wed, 3 Aug 1994 14:43:42 +0000 (14:43 +0000)]
Wed Aug 3 10:34:37 1994 Eric Youngdale (ericy@cais.cais.com)
* i386linux.c (linux_add_one_symbol): Only handle
SHARABLE_CONFLICTS specially if BSF_CONSTRUCTOR is set. Set hashp
for a GOT or PLT symbol. Set jump field of fixup for a PLT symbol.
(linux_tally_symbols): Check section of real symbol. When looking
for a builtin fixup, check builtin and jump flags. Create no more
than one fixup, and always create one if the real symbol is in the
absolute section. Only strip absolute symbols.