Commit Graph

10893 Commits

Author SHA1 Message Date
Ken Raeburn
b55701fa46 i960xl support (sanitized) 1994-07-26 23:07:08 +00:00
Ken Raeburn
c5b34aeeda i960xl opcode table changes (sanitized) 1994-07-26 23:06:41 +00:00
Stan Shebs
d54b2c5069 Tue Jul 26 18:20:46 1994 Paul Flinders (ptf@smee)
* elfread.c (elf_symtab_read): Discard compiler labels generated
	by the Solaris 2.1/Intel SunPro compiler.
1994-07-26 22:22:38 +00:00
Ken Raeburn
f68880ead9 ns32k files; i960xl sanitization 1994-07-26 22:20:48 +00:00
Ian Lance Taylor
9a402d7ac5 * elfcode.h (elf_adjust_dynamic_symbol): When handling a weak
symbol, correct check to see whether the equivalent normal symbol
	was referenced.
1994-07-26 19:34:14 +00:00
Ian Lance Taylor
374d2ef905 Add support for creating shared libraries under i386 ELF and SPARC
ELF.  Based on patches by Eric Youngdale <ericy@cais.cais.com>.
	* libelf.h (struct elf_link_hash_entry): Remove copy_offset field.
	Add got_offset and plt_offset fields.
	(ELF_LINK_HASH_REF_DYNAMIC_MULTIPLE): Don't define.
	(ELF_LINK_HASH_DEF_DYNAMIC_MULTIPLE): Don't define.
	(ELF_LINK_HASH_NEEDS_COPY): Define.
	(struct elf_backend_data): Add check_relocs field.
	(struct bfd_elf_section_data): Change relocs from PTR to
	Elf_Internal_Rela *.
	(struct elf_obj_tdata): Add local_got_offsets field.
	(elf_local_got_offsets): Define accessor macro.
	(bfd_elf32_link_create_dynamic_sections): Declare.
	(bfd_elf32_link_record_dynamic_symbol): Declare.
	(bfd_elf64_link_create_dynamic_sections): Declare.
	(bfd_elf64_link_record_dynamic_symbol): Declare.
	* elfcode.h (elf_slurp_reloc_table): Don't use the section data
	relocs field.
	(elf_link_record_dynamic_symbol): Make globally visible.  Use
	macro to rename to NAME(bfd_elf,link_record_dynamic_symbol).
	(elf_link_add_object_symbols): If creating a shared library, put
	make all local symbols dynamic.  Don't bother with the
	DYNAMIC_MULTIPLE flags.  Call the check_relocs backend function if
	it is defined.
	(elf_link_create_dynamic_sections): Make globally visible.  Use
	macro to rename to NAME(bfd_elf,link_create_dynamic_sections).  If
	creating a shared library, make sure that _DYNAMIC is added as a
	dynamic symbol.
	(elf_link_read_relocs): New function.
	(NAME(bfd_elf,record_link_assignment)): If creating a shared
	library, always create symbols, and always make them dynamic.
	(elf_bfd_final_link): Permit creation of shared libraries.
	(elf_link_input_bfd): Use elf_link_read_relocs to get the relocs.
	* elf.c (_bfd_elf_link_hash_newfunc): Don't initialize
	copy_offset.  Initialize got_offset and plt_offset.
	* elf32-target.h (elf_backend_check_relocs): Define as 0 if not
	defined.
	(elf32_bed): Initialize check_relocs field.
	* elf64-target.h (elf_backend_check_relocs): Define as 0 if not
	defined.
	(elf64_bed): Initialize check_relocs field.
	* elf32-i386.c (elf_howto_table): Change R_386_PLT32 and
	R_386_GOTPC to be pc_relative and pcrel_offset.
	(elf_i386_pic_plt0_entry): Define.
	(elf_i386_pic_plt_entry): Define.
	(elf_i386_create_dynamic_sections): Create a .got.plt section, and
	define _GLOBAL_OFFSET_TABLE_ at the start of it.  If creating a
	shared library, make sure that _GLOBAL_OFFSET_TABLE_ is added as a
	dynamic symbol.  Don't create .rel.bss if creating a shared
	library.
	(elf_i386_check_relocs): New function.
	(elf_i386_adjust_dynamic_symbol): Don't make a PLT entry if the
	symbol already has one.  When making a PLT entry, set plt_offset.
	Don't create a copy reloc when creating a shared library.  Don't
	set copy_offset, just set ELF_LINK_HASH_NEEDS_COPY.
	(elf_i386_allocate_dynamic_section): Remove.
	(elf_i386_size_dynamic_sections): Look through all the sections
	rather than assuming we know their names.  Remove any empty reloc
	or plt sections.  Only add a DT_DEBUG entry if not creating a
	shared library.  Only add a DT_PLTGOT entry if there is a PLT.
	Add a DT_TEXTREL entry if required.
	(elf_i386_relocate_section): Permit undefined symbols when
	creating a shared library.  Handle the special relocation types
	specially.
	(elf_i386_finish_dynamic_symbol): Create a PLT entry if plt_offset
	is set.  If creating a shared library, produce a PIC PLT entry.
	Only mark a PLT symbol as undefined if it was not defined by a
	regular object file.  Create a GOT entry if got_offset is set.
	Create a copy reloc if ELF_LINK_HASH_NEEDS_COPY is set.
	(elf_i386_finish_dynamic_sections): Change the handling of
	DT_RELSZ to simply subtract out the size of .rel.plt.  If creating
	a shared library, produce PIC PLT code.
	(elf_backend_check_relocs): Define.
	* elf32-sparc.c (elf_sparc_howto_table): Change R_SPARC_GOT10,
	R_SPARC_GOT22, and R_SPARC_PC10 to not warn about reloc overflow.
	(elf32_sparc_create_dynamic_sections): If creating a shared
	library, make sure that _GLOBAL_OFFSET_TABLE_ is added as a
        dynamic symbol, and set the type to STT_OBJECT.  Likewise for
        _PROCEDURE_LINKAGE_TABLE_.  Don't create .rel.bss if creating a
        shared library.
	(elf32_sparc_check_relocs): New function.
	(elf32_sparc_adjust_dynamic_symbol): Don't make a PLT entry if the
	symbol already has one.  When making a PLT entry, set plt_offset.
	Don't create a copy reloc when creating a shared library.  Don't
	set copy_offset, just set ELF_LINK_HASH_NEEDS_COPY.
	(elf32_sparc_allocate_dynamic_section): Remove.
	(elf32_sparc_size_dynamic_sections): Look through all the sections
	rather than assuming we know their names.  Only add a DT_DEBUG
	entry if not creating a shared library.  Add a DT_TEXTREL entry if
	required.
	(elf32_sparc_relocate_section): Permit undefined symbols when
	creating a shared library.  Handle the special relocation types
	specially.
	(elf32_sparc_finish_dynamic_symbol): Create a PLT entry if plt_offset
	is set.  Only mark a PLT symbol as undefined if it was not defined
	by a regular object file.  Create a GOT entry if got_offset is
	set.  Create a copy reloc if ELF_LINK_HASH_NEEDS_COPY is set.
	(elf32_sparc_finish_dynamic_sections): Store dynobj in a local
	variable.
	(elf_backend_check_relocs): Define.
1994-07-26 17:18:37 +00:00
Ian Lance Taylor
b019d460d1 * scripttempl/elf.sc: Copy several more relocation sections into
the output.  Put .got.plt sections into .got.
1994-07-26 15:04:40 +00:00
Peter Schauer
d938d0f96a * gdb.base/corefile.exp: Change else if' to elseif', which is
the correct TCL syntax.
1994-07-26 06:52:38 +00:00
Stu Grossman
4fc5969d1d * target.c (nomemory): Fix prototype and routine to take correct
args.
1994-07-26 01:21:04 +00:00
J.T. Conklin
08104d73b8 * gdb.base/opaque.exp: use runto instead of messing around with
breakpoints.

* gdb.base/bitfields.exp: restart between tests on netware targets
  because breakpoints aren't relocated after target death.  Run
  processes to completion.

* gdb.base/{opaque,watchpoint}.exp: Use gdb_run_cmd.
1994-07-25 23:35:10 +00:00
J.T. Conklin
a488d496ec * gdb.base/opaque.exp: use runto instead of messing around with
breakpoints.
1994-07-25 23:34:23 +00:00
Jim Kingdon
1ded65d1aa * Makefile.in (clean): Remove libgdb-files. 1994-07-25 22:43:29 +00:00
Stan Shebs
56fbe88919 Update to reflect comings and goings of ns32k and mach-related files 1994-07-25 20:04:11 +00:00
Stan Shebs
caede51576 * configure.in (pc532mach_vec): Change to pc532machaout_vec.
* config.bfd (ns32k-*-netbsd*): Use ns32k-nbsd as bfd_name.
	* Makefile.in (ALL_MACHINES): Add cpu-ns32k.o.
	(BFD32_BACKENDS): Add aout-ns32k.o, netbsd532.o, m88kmach3.o,
	pc532-mach.o.
	* targets.c (pc532machaout_vec): Use instead of pc532mach_vec.
	* config/pc532-mach.mt (DEFAULT_VECTOR): Ditto.
	(SELECT_VECS): Remove.
	* config/ns32k-nbsd.mt: New file, was ns32k-netbsd.mt.
	* config/ns32k-netbsd.mt: Remove, name too long.
1994-07-25 20:00:10 +00:00
Stan Shebs
9a989b1f61 * coredep.c: Include inferior.h. 1994-07-25 18:55:22 +00:00
J.T. Conklin
159f3816fd * Makefile.in (LD_FOR_TARGET): Look for ld in ../ld/ld.new.
* i386-nlmstub.c: Add support for NODE, PORT and BAUD command
  line arguments.
1994-07-25 18:45:14 +00:00
Ian Lance Taylor
ca6c1a2217 * objdump.c (objdump_print_address): Correct handling of end of
symbols when looking for next symbol with a different value.
1994-07-25 17:01:10 +00:00
Ian Lance Taylor
866cdf6cf6 * configure.in: Warn about use of /usr/ucb/cc on Solaris. From
Bill Cox <bill@cygnus.com>.
1994-07-25 15:16:36 +00:00
Fred Fish
dedd81f159 * Makefile.in: Remove extra tabs that confuse some versions
of "make".  Use the newly built gdb to test with by default,
	rather than the first one in the tester's search path.
1994-07-24 16:56:45 +00:00
Stan Shebs
73e484b44a * gdb.base/whatis.exp (v_signed_short_array): Fix a typo. 1994-07-23 23:24:05 +00:00
Stan Shebs
9e38b2fa8d * symfile.c (deduce_language_from_filename): Recognize .S as asm,
.cp as C++, alphabetize better.
1994-07-23 22:56:46 +00:00
Stan Shebs
a924cf196d * gdb.base/help.exp: Update expected add-symbol-file, ignore, and
condition help.
1994-07-23 22:09:34 +00:00
Stan Shebs
557f3a0e60 * breakpoint.c (ignore, condition): Move usage note into body of
help text, so first line can be one-line summary.
1994-07-23 22:01:44 +00:00
Per Bothner
a4798dec3d * config.guess: Recognize ISC. Patch from kwzh@gnu.ai.mit.edu. 1994-07-23 19:19:58 +00:00
Stu Grossman
67e947deb2 * target.c (unpush_target): Fix handling of removal of top target. 1994-07-23 08:01:09 +00:00
Stu Grossman
c7f7225314 * configure: Search current dir first in .gdbinit. 1994-07-23 00:54:57 +00:00
Stu Grossman
cad1498f8a * Makefile.in: Add stuff to build nlmstub.
* Add rule for annotate.o to keep Sun make happy.
	* configure.in:  Add config for powerpc/Netware.

	* partial-stab.h (near N_SO):  Don't call START_PSYMTAB with null
	filename.  This speeds up handling of trailing N_SO stabs (they
	mark the end of a .o file).

	* target.c, target.h:  Change the way pushing and popping of
	targets work to support target overlays and inheritance.
	* corelow.c, hppa-tdep.c, inflow.c, remote-nindy.c, utils.c:
	Fixup references to current_target, due to previous changes.

	* config/i386/tm-i386nw.h:  Enable longjmp support.  More work is
	needed to get the address of longjmp out of the target.
1994-07-23 00:53:28 +00:00
Ian Lance Taylor
f2c2e75ce0 Forgot to save my buffer before last check in. 1994-07-22 23:50:35 +00:00
J.T. Conklin
316567f0ff Upgraded to use gdb_test. 1994-07-22 21:14:03 +00:00
Ken Raeburn
d3bba67b52 * nm.c (numeric_forward): Treat undefined symbols as "less than" defined
symbols with zero values.  If numeric values are equal, or both symbols are
undefined, sort alphabetically.  Don't assume that the difference of two
bfd_vma values will truncate to "int" and still have the same sign.
(numeric_reverse): Call numeric_forward and negate the result.
(print_symbol_info_bsd): For undefined symbols, print leading spaces equivalent
to the width of a printed bfd_vma, rather than assuming that 8 will look right.
1994-07-22 20:56:31 +00:00
Ian Lance Taylor
31ddb15694 * scripttempl/elf.sc: Use PROVIDE to define etext, edata, and end.
Add a new script operator, PROVIDE, to define a symbol only if it
	is needed.
	* ldgram.y (PROVIDE): New token.
	(assignment): Accept PROVIDE.
	* ldlex.l (PROVIDE): New token.
	* ldexp.h (node_type): Add etree_provide to node_class enum.
	(exp_provide): Declare.
	* ldexp.c (exp_fold_tree): Handle etree_provide.
	(exp_provide): New function.
	(exp_print_tree): Handle etree_provide.
	* ld.texinfo: Document PROVIDE.
1994-07-22 20:55:45 +00:00
Ian Lance Taylor
7c6da9cade * aoutx.h (aout_link_check_ar_symbols): When changing a symbol to
common, set the alignment.
	(aout_link_add_symbols): Restrict the alignment of a common symbol
	to the alignment power given by the architecture.
	* elf.c (_bfd_elf_link_hash_newfunc): Don't initialize align.  Do
	initialize copy_offset.
	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Use copy_offset
	field rather than align field.  Get alignment using bfd_log2
	rather than switch.
	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
	* elf32-i386.c (elf_i386_finish_dynamic_symbol): Use copy_offset,
	not align.
	* elf32-sparc.c (elf32_sparc_finish_dynamic_symbol): Likewise.
1994-07-22 18:53:23 +00:00
Ian Lance Taylor
36c6e8c37f * ldlang.c (lang_common): Pass desired alignment to
lang_one_common as power of two.
	(lang_one_common): Get common symbol alignment from linker hash
	table entry.  Treat desired alignment as a power of two.
1994-07-22 18:46:28 +00:00
Ian Lance Taylor
28aac2eb20 * bfdlink.h (struct bfd_link_hash_entry): Change u.c.size into a
bitfield.  Add field u.c.alignment_power.
1994-07-22 18:18:10 +00:00
Ian Lance Taylor
309c8153fa * ldlang.c (wild_section): Attach all section with the given name,
not just the first one.  If there is no name, attach all sections
	even if the SEC_IS_COMMON flag is set.
1994-07-22 16:23:35 +00:00
Ian Lance Taylor
2aaaab7ceb * aoutx.h (NAME(aout,some_aout_object_p)): Just check
STAT_FOR_EXEC, don't check MACH.
	* m88kmach3.c (MACH): Don't define.
	* config/i386-mach3.mt (TDEFINES): Define STAT_FOR_EXEC.
	* config/m88k-mach3.mt (TDEFINES): Likewise.
	* config/mips-mach3.mt (TDEFINES): Likewise.
1994-07-22 15:13:33 +00:00
Stan Shebs
bb99a7328c * i386mach3.c: Reverted to version from before Jul 5 1994 changes.
Un-break gas/binutils/ld for FSF.
1994-07-22 00:28:17 +00:00
Per Bothner
1983e432d9 * config.sub: Refer to NeXT's operating system as nextstep. 1994-07-21 21:43:17 +00:00
Per Bothner
842ca181f2 * config.sub (case $basic_machine): Re-order the cases, to match
the order in the FSF version (which is mostly alphabethical).
	Merge in some additions and changes from the FSF.
1994-07-21 21:11:57 +00:00
Ian Lance Taylor
f42fe1599a * reloc.c (struct reloc_howto_struct): Remove special_function1.
It's the wrong way to do things.
	(HOWTO): Change accordingly.
	(HOWTO2): Remove.
	(_bfd_final_link_relocate): Remove references to
	special_function1.
	* bfd-in2.h: Rebuilt.
	* aoutx.h (aout_link_input_section_std): Remove references to
	special_function1.
	(aout_link_reloc_link_order): Likewise.
1994-07-21 16:34:59 +00:00
Ian Lance Taylor
d672b1bf3d * config/mh-alphaosf, config/mh-apollo68v, config/mh-delta88:
Remove; obsolete.
1994-07-21 14:27:45 +00:00
Ian Lance Taylor
a1ad915dc4 * ld.h (args_type): Add field rpath.
* lexsup.c (S_ISDIR): Define if not already defined.
	(parse_args): Add support for -rpath.  If -R is used to name a
	directory, treat it as -rpath for Solaris compatibility.
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
	Pass command_line.rpath to bfd_elf32_size_dynamic_sections.
	* ldmain.c (main): Initialize command_line.rpath to NULL.
	* ld.texinfo: Document -rpath option.
1994-07-20 19:55:36 +00:00
Ian Lance Taylor
f9779aad5a * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add rpath
argument.  If it is not NULL, use it to set DT_RPATH.
	* bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
	(bfd_elf64_size_dynamic_sections): Likewise.
	* bfd-in2.h: Rebuilt.
1994-07-20 19:51:18 +00:00
J.T. Conklin
fafc71bab7 Use gdb_run_cmd 1994-07-20 17:38:05 +00:00
J.T. Conklin
959fea03b5 Changed pattern in gdb_run_cmd to match up to the first newline only.
The old pattern used ".*$", which could, and did, swallow up output
that we were attempting to match elsewhere.
1994-07-20 17:29:02 +00:00
J.T. Conklin
4f2ec2eeb8 New implementation of gdb_run_cmd which fixes some subtle bugs. 1994-07-20 16:40:08 +00:00
Ken Raeburn
f61ca5fae4 fix from dj delorie for disassembler config in djgpp 1994-07-20 16:34:25 +00:00
J.T. Conklin
412c988b1d Temporarily back out last change 1994-07-20 01:03:24 +00:00
J.T. Conklin
b34c14fb19 * lib/gdb.exp (runto): Rewrite in terms of gdb_run_cmd. 1994-07-19 22:57:49 +00:00
J.T. Conklin
27b4d34f08 * gdb.base/funcargs.exp: Use gdb_run_cmd to start program. 1994-07-19 22:57:29 +00:00