Commit Graph

18383 Commits

Author SHA1 Message Date
Ian Lance Taylor dc25aca068 From Eric Youngdale <eric@andante.jic.com>:
* ldlex.l (V_TAG, V_IDENTIFIER): New macros.
	(VERS_START, VERS_SCRIPT, VERS_NODE): New states to parse version
	information.
	(ldlex_version_script, ldlex_version_file): New functions.
	* ldlex.h (enum input_enum): Add input_version_script.
	(ldlex_version_script): Declare.
	(ldlex_version_file): Declare.
	* ldgram.y (%union): Add deflist, versyms, and versnode.
	(VERS_TAG, VERS_IDENTIFIER): New terminals.
	(GLOBAL, LOCAL, VERSION, INPUT_VERSION_SCRIPT): New terminals.
	(file): Accept INPUT_VERSION_SCRIPT.
	(ifile_p1): Accept version.
	(version_script_file): New nonterminal.
	(version, vers_nodes, vers_node): Likewise.
	(verdep, vers_tag, ver_defns): Likewise.
	* ldlang.c (lang_elf_version_info): New global variable.
	(lang_new_vers_regex): New function.
	(lang_new_vers_node): New function.
	(version_index): New static variable.
	(lang_register_vers_node): New function.
	(lang_add_vers_depend): New function.
	* ldlang.h (lang_elf_version_info): Declare.
	(lang_new_vers_regex, lang_new_vers_node): Declare.
	(lang_add_vers_depend, lang_register_vers_node): Declare.
	* lexsup.c (OPTION_VERSION_SCRIPT): Define.
	(ld_options): Add "version-script".
	(parse_args): Handle OPTION_VERSION_SCRIPT.
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
	Pass lang_elf_version_info to size_dynamic_sections.
	* scripttempl/elf.sc: Add .gnu.version sections.
1997-02-24 23:23:31 +00:00
Martin Hunt 4d3410fd99 Mon Feb 24 15:19:57 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Change pre_defined_registers to
	d10v_predefined_registers and reg_name_cnt to d10v_reg_name_cnt.
1997-02-24 23:22:13 +00:00
Ian Lance Taylor d044b40a40 From Eric Youngdale <eric@andante.jic.com>:
* elflink.h (elf_link_add_archive_symbols): If a default symbol is
	not found, try looking it up again without the version name.
	(elf_link_add_object_symbols): Always link against the dynamic
	symbol table of a dynamic object.  When linking against a dynamic
	object, include version strings in symbol names, and set up
	version information.  Add indirect symbols for default versions.
	(elf_link_create_dynamic_sections): Add special version sections.
	(struct elf_assign_sym_version_info): Define.
	(struct elf_find_verdep_info): Define.
	(NAME(bfd_elf,size_dynamic_sections)): Add verdefs parameter.  Set
	up version sections.
	(elf_adjust_dynamic_symbol): Ignore indirect symbols.
	(elf_link_find_version_dependencies): New static function.
	(elf_link_assign_sym_version): New static function.
	(elf_link_renumber_dynsyms): New static function.
	(struct elf_final_link_info): Add symver_sec field.
	(elf_bfd_final_link): Initialize finfo.symver_sec.  Don't count
	local symbols of a dynamic object.  Handle DT_VER* constants.
	(elf_link_output_extsym): Simplify BFD_ASSERT checking for a
	dynamic object.  Skip indirect symbols from ELF objects.  Remove
	the version name before choosing a hash bucket.  Write out the
	version information if appropriate.
	(elf_link_input_bfd): Check for DYNAMIC, not ET_DYN.
	* bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration.
	(bfd_elf64_size_dynamic_sections): Likewise.
	* bfd-in2.h: Rebuild.
	* elf-bfd.h (struct elf_link_hash_entry): Add verinfo field.
	Change elf_link_hash_flags to unsigned short.
	(ELF_LINK_HIDDEN): Define.
	(struct elf_obj_tdata): Add fields dynversym_hdr, dynverref_hdr,
	dynverdef_hdr, dynversym_section, dynverdef_section,
	dynverref_section, cverdefs, cverrefs, verdef, verref.
	(elf_dynversym, elf_dynverdef, elf_dynverref): Define.
	(_bfd_elf_swap_verdef_in, _bfd_elf_swap_verdef_out): Declare.
	(_bfd_elf_swap_verdaux_in, _bfd_elf_swap_verdaux_out): Declare.
	(_bfd_elf_swap_verneed_in, _bfd_elf_swap_verneed_out): Declare.
	(_bfd_elf_swap_vernaux_in, _bfd_elf_swap_vernaux_out): Declare.
	(_bfd_elf_swap_versym_in, _bfd_elf_swap_versym_out): Declare.
	(_bfd_elf_slurp_version_tables): Declare.
	* elf.c (_bfd_elf_swap_verdef_in): New function.
	(_bfd_elf_swap_verdef_out): Likewise.
	(_bfd_elf_swap_verdaux_in, _bfd_elf_swap_verdaux_out): Likewise.
	(_bfd_elf_swap_verneed_in, _bfd_elf_swap_verneed_out): Likewise.
	(_bfd_elf_swap_vernaux_in, _bfd_elf_swap_vernaux_out): Likewise.
	(_bfd_elf_swap_versym_in, _bfd_elf_swap_versym_out): Likewise.
	(_bfd_elf_print_private_bfd_data): Add DT_VER* constants.  Print
	version information if there is any.
	(_bfd_elf_link_hash_newfunc): Initialize verinfo field.
	(bfd_section_from_shdr): Handle SHT_GNU_ver* section types.
	(elf_fake_sections): Handle .gnu.version* section names.
	(assign_section_numbers): Handle SHT_GNU_ver* section types.
	(_bfd_elf_slurp_version_tables): New function.
	* elflink.c (_bfd_elf_link_record_dynamic_symbol): Don't include
	version name in string entered in dynamic hash table.
	* elfcode.h: Include fnmatch.h.
	* elf32-i386.c (elf_i386_relocate_section): Handle a dynamic
	symbol which was forced to become local.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise.
1997-02-24 23:13:07 +00:00
Fred Fish 17990badfc * tic80-opc.c (LSI_SCALED): Renamed from this ...
(OFF_SL_BR_SCALED): ... to this, and added the flag
	TIC80_OPERAND_BASEREL to the flags word.
	(tic80_opcodes): Replace all occurances of LSI_SCALED with
	OFF_SL_BR_SCALED.
1997-02-24 21:46:54 +00:00
Bob Manson 3c0af8a010 * lib/gdb.exp(gdb_test): Generate a FAIL message when
send_gdb fails.
1997-02-24 21:24:26 +00:00
Fred Fish ec72a26633 * config/obj-coff.c: Fix typo in comment section.
start-sanitize-tic80
	* config/tc-tic80.c (md_pseudo_table): Add entry for bss, which takes
 	an additional alignment argument.
	(find_opcode): Allow O_symbol relocs for any 32 bit field, not just
 	base relative ones.
	(build_insn): Handle O_symbol relocs for any 32 bit field, not just
 	base relative ones.
end-sanitize-tic80
1997-02-24 20:21:13 +00:00
Fred Fish dc40b39121 * gas/tic80/{add.d, bitnum.d, ccode.d, cregops.d, endmask.d,
regops.d, relocs1.d,
	(relocs1.c): Add file for reference.
	(relocs1b.d): Split reloc table contents test to different test file.
	(relocs2.c): Add test that uses various types (char, short, int, ...) of
	static and global variables with data shuffling to generate lots of ld/st
	instructions for the different types.
	(relocs2.d): New file, expected code for relocs2 test.
	(relocs2.lst): New file, TI assembler listing for reference.
	(relocs2.s): New file, assembly source for relocs2 test.
	(relocs2b.d): New file, expected reloc table contents for relocs2 test.
	(tic80.exp): Run the relocs1b, relocs2, and relocs2b tests.
1997-02-24 18:25:19 +00:00
Jeff Law af2903b4f0 Update some comments to reflect current reality. 1997-02-24 18:13:23 +00:00
Dawn Perchik 16aef5b049 * Makefile.in: Remove dependancies on itbl-cpu.h.
* as.c: Define stubs for itbl_parse and itbl_init if HAVE_ITBL_CPU
	is not defined.
1997-02-24 10:42:50 +00:00
Dawn Perchik ac6c6bdb34 * itbl-ops.h: Include as.h. 1997-02-24 10:01:19 +00:00
Dawn Perchik 72797ffaa0 * as.c: Remove -t option.
* configure, configure.in: Move itbl-cpu.h to mips specific configure.
	* itbl-ops.h: Include itbl-cpu.h only if HAVE_ITBL_CPU is defined.
	* config/tc-mips.h: Define HAVE_ITBL_CPU.
1997-02-24 09:21:31 +00:00
Bob Manson 40ac16240a * config/vr4300.exp: New file.
* gdb.*/*.exp: Call gdb_expect instead of expect.

	* lib/gdb.exp(gdb_expect): New function.
1997-02-24 05:43:35 +00:00
Dawn Perchik 2f671f8415 * itbl-ops.c: Don't define DEBUG. 1997-02-24 01:57:55 +00:00
Dawn Perchik de614d4d67 * gas/all/itbl-test.c(main): Update function calls.
Remove parameters from itbl_get_reg_val and
	change itbl_get_insn_name to itbl_get_field.
1997-02-24 01:51:04 +00:00
Dawn Perchik f9f0539f36 * Makefile.in: Update itbl-test.c to reflect its new location. 1997-02-24 01:44:47 +00:00
Dawn Perchik b9d4be84aa * gas/mips/itbl: Add comments.
* gas/mips/itbl.s: Add comments.  Prefix register names with $.
	* gas/all/itbl: Generic table for testing for itbl support.
	* gas/all/itbl.s: Generic assembly for testing for itbl support.
	* gas/mips/itbl-test.c: Moved to gas/all.
	* gas/all/itbl-test.c: Moved from gas/mips.
1997-02-24 01:17:50 +00:00
Dawn Perchik 8d8a790b81 * itbl-ops.c: Add test for itbl_have_entries.
* config/tc-mips.c: Remove test for itbl_have_entries.
	* config/tc-mips.h: Define tc_init_after_args to mips_init_after_args.
1997-02-23 23:46:12 +00:00
Ian Lance Taylor 7b9f3d46c6 * Makefile.in (DISTSTUFF): Remove itbl-parse.y, itbl-lex.l, and
itbl-ops.c.  Add itbl-parse.c and itbl-lex.c.
	(LEX, LEXFLAGS): Define.
	* itbl-ops.c (append_insns_as_macros): Remove bogus ASSERT.
1997-02-23 23:15:09 +00:00
Ian Lance Taylor 1857d1e67d fix minor formatting problem 1997-02-23 23:14:39 +00:00
Ian Lance Taylor 8a974fdc24 update copyrights 1997-02-23 23:05:35 +00:00
Ian Lance Taylor 9218cee06b minor formatting fixes 1997-02-23 22:47:20 +00:00
Dawn Perchik a2768484d9 * mips-opc.c: Add macros for cop0, cop1 cop2 and cop3.
Change mips_opcodes from const array to a pointer,
	and change bfd_mips_num_opcodes from const int to int,
	so that we can increase the size of the mips opcodes table
	dynamically.
1997-02-23 22:26:01 +00:00
Dawn Perchik 2fedd0a135 * mips.h: Add macros for cop0, cop1 cop2 and cop3.
Change mips_opcodes from const array to a pointer,
	and change bfd_mips_num_opcodes from const int to int,
	so that we can increase the size of the mips opcodes table
	dynamically.
1997-02-23 22:24:49 +00:00
Dawn Perchik efec4a282c * itbl-parse.y: Fix indentation mistakes from indent program.
* itbl-lex.l: Fix indentation mistakes from indent program.
	* itbl-ops.h: Add include for ansidecl.h.
	Add PARAMS around function arguments.
	Add declaration for itbl_have_entries.
	* itbl-ops.c: Add PARAMS around function arguments.
	* Makefile.in: Add itbl build rules.
	Add dependancies for itbl files to mips target.
	* as.c: Add itbl support.
	Add new option "--insttbl" for dynamically extending instruction set.
	* as.h: Declare insttbl_file_name;
	the name of file defining extensions to the basic instruction set
	* configure.in, configure: Add itbl-parse.o, itbl-lex.o, and
	itbl-ops.o to extra_objects for mips configuration.
	Add include file link from itbl-cpu.h to
	config/itbl-${target_cpu_type}.h.
	* config/tc-mips.c: Allow copz instructions.
	Add notes for future additions to the itbl support.
	Add debug macros.
	(macro): Call itbl_assemble to assemble itbl instructions.
	See if an unknown register is specified in an itbl entry.
1997-02-23 22:23:12 +00:00
Fred Fish c7583da0b6 * tic80-opc.c (tic80_predefined_symbols): Revert change to
store BITNUM values in the table in one's complement form
	to match behavior when assembler is given a raw numeric
	value for a BITNUM operand.
	* tic80-dis.c (print_operand_bitnum): Ditto.
1997-02-23 04:06:51 +00:00
Fred Fish d160b69e74 * doc/internals.texi (CPU backend): Fix typo in md_section_align
description.
start-sanitize-tic80
	* config/tc-tic80.h (NEED_FX_R_TYPE): Define.
	* config/tc-tic80.c (find_opcode): Add code to support O_symbol
	operands.
	(build_insn): Grab a frag early so we can use the address in
 	fixups.  Take one's complement of BITNUM values before insertion
 	in opcode.  Add code to support O_symbol operands.
	(md_apply_fix): Replace unimplemented warning with implementation.
	(md_pcrel_from): Ditto.
	(tc_coff_fix2rtype): Ditto.
end-sanitize-tic80
1997-02-23 04:01:39 +00:00
Fred Fish ef60d6973c * gas/tic80/{add.lst, bitnum.lst, ccode.lst, cregops.lst,
endmask.lst, regops.lst}: Remove ^M's from end of lines.
	* gas/tic80/bitnum.s: Add comment to each line showing value
	that symbolic BITNUM assembles to.  Add coverage for raw
	numeric values for the BITNUM operand.
	* gas/tic80/bitnum.d: Update due to bitnum.s changes.
	* gas/tic80/regops.d: Update due to opcode library additions
	of floating point test BITNUM values that are ambiguous with
	the integral ones.
	* gas/tic80/relocs1.s: New test case that tests simple relocs.
	* gas/tic80/relocs1.d: Expected output for above.
	* gas/tic80/relocs1.lst: TI assembler listing for above.
	* gas/tic80/tic80.exp: Add relocs1 test.
1997-02-23 03:34:25 +00:00
Peter Schauer f3cc5a0ea4 * stabsread.c (read_type): Fix handling of template names
with template parameters containing `::'.

	* valops.c (search_struct_field, search_struct_method):
	Pass correct valaddr parameter to baseclass_offset.
	Prevent gdb crashes by making sure that the virtual base pointer
	from an user object still points to accessible memory.
1997-02-22 11:42:07 +00:00
Martin Hunt 50b264e375 Fri Feb 21 17:56:25 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* configure.in (noconfigdirs): Enable ld for d30v.
1997-02-22 02:02:27 +00:00
Michael Meissner 41416969f6 Build tic80 compiler 1997-02-22 01:59:42 +00:00
Martin Hunt 232e870207 Fri Feb 21 17:37:51 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* Makefile.in (ed30velf.c): New target.
	* configure.tgt (d30v-*-*): New target.
	* emulparams/d30velf.sh: New file.
	* scripttempl/elfd30v.sc: New file.
1997-02-22 01:42:27 +00:00
Martin Hunt ca5ef3cb83 Fri Feb 21 16:34:18 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* d30v.h (FLAG_X): Remove unused flag.
1997-02-22 00:34:58 +00:00
Martin Hunt 4fe23bdd06 Fri Feb 21 16:31:18 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* d30v-opc.c: Removed references to FLAG_X.
1997-02-22 00:32:23 +00:00
Martin Hunt 1b52469766 Fri Feb 21 14:34:31 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d30v.c (parallel_ok): New function.
	* config/tc-d30v.h: Define TARGET_BYTES_BIG_ENDIAN.
1997-02-22 00:29:55 +00:00
Bob Manson cea0f6fc02 Added vxworks.exp. 1997-02-22 00:17:12 +00:00
Jeff Law 7b951eed4d * elf32-mn10200.c (mn10200_elf_final_link_relocate): Simplify
somewhat.
        (mn10200_elf_relax_section): Correctly compute a symbol's value
        when the symbol is local, but not in the same section as we are
        relaxing.  Implement abs24 -> abs16, imm24 -> imm16 and d24 -> d16
        relaxing.
Another 1.3% size reduction for hello world.  Only relaxing left todo is
imm16 -> imm8 and d16 -> d8 where applicable.
1997-02-21 23:19:34 +00:00
Martin Hunt 09d9ef26c9 Fri Feb 21 14:34:31 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (md_pcrel_from_section): Return 0 if
        relocation is in different section. Fixes PR11574.
1997-02-21 22:36:21 +00:00
Martin Hunt 80e3b2aa53 Fri Feb 21 14:23:14 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* gas/d30v/{align.d, align.s, d30.exp, guard.d, guard.s,
	inst.d, inst.s, opt.d, opt.s}: Test files for D30V.
1997-02-21 22:28:16 +00:00
David Edelsohn 77dd1a25d8 * elf32-m32r.c: Rewrite to use ELF backend linker.
Store lower 16 bits of addend in R_M32R_HI16_[SU]LO insns.
	Add small data area support (R_M32R_SDA16).
	* reloc.c: Document BFD_RELOC_M32R_SDA16.
	* bfd-in2.h,libbfd.h: Regenerated.
1997-02-21 22:09:40 +00:00
David Edelsohn 8a733d7109 * m32r.h (enum reloc_type): Add R_M32R_SDA16.
(SHN_M32R_SCOMMON): Define.
1997-02-21 21:01:40 +00:00
Ian Lance Taylor b2f7cdd005 * config/tc-m68k.c (line_comment_chars): Add '*'. 1997-02-21 19:54:34 +00:00
Jim Wilson e2e5acfa75 Fix linker relocation overflow errors for the NEC vr4300/ddb toolchain.
These changes are related to Ian's gas/libgloss changes of Dec 13/Dec 18.
	* tc-mips.c (mips_ip): If configured for an embedded ELF system,
	don't set the section alignment to 2**4.
	* mips/ddb.ld: Align the location counter before setting _gp, and
	before setting edata.  Remove ALIGN from _gp computation.
	* mips/idt.ld, mips/pmon.ld: Before setting _gp, use ALIGN(8) instead
	of ALIGN(16).  Remove ALIGN from _gp computation.
1997-02-21 18:28:36 +00:00
Ian Lance Taylor 830ce6319a * app.c (LEX_IS_TWOCHAR_COMMENT_2ND): Don't define.
(do_scrub_begin): Don't set lex['*'].
	(do_scrub_chars): When handling LEX_IS_TWOCHAR_COMMENT_1ST, don't
 	check for LEX_IS_TWOCHAR_COMMENT_2ND.  Instead, just check for
	a literal '*'.
1997-02-21 17:21:09 +00:00
Ian Lance Taylor fee3e248a6 * configure.in: Set em=svr4 for m68k-*-sysv4*.
* configure: Rebuild.
	* config/te-svr4.h: New file.
	* config/tc-m68k.c (m68k_comment_chars): Only include `#' if
	TE_SVR4 or TE_DELTA.
1997-02-21 17:00:45 +00:00
Jeff Law 7c49f021ca Twiddle some comments to more accurately reflect reality. 1997-02-21 07:21:32 +00:00
Jeff Law c17db7cfb4 Remove debugging printf. 1997-02-21 07:18:35 +00:00
Jeff Law fd39566111 * elf32-mn10200.c (mn10200_elf_relax_section): New function.
(mn10200_elf_relax_delete_bytes): Likewise.
        (mn10200_elf_symbol_address_p): Likewise.
        (mn10200_elf_get_relocated_section_contents): Likewise.
        (bfd_elf32_bfd_relax_section): Define.
        (bfd_elf32_bfd_get_relocated_section_contents): Likewise.
First cut at relaxing linker for the mn10200:

	jsr:24 -> jsr:16
	jmp:24 -> jmp:16
	jmp:16 -> bra:8
	bCC .+4;bra:8 -> bCC':8


Reduces code size by about 2.5% for hello world.
1997-02-21 07:14:30 +00:00
Jeff Law 48242b28d6 * config/tc-mn10200.c (md_convert_frag): Create a fixup for the
short conditional branch around a long unconditional branch.
Showing the reloc will allow the linker to shorten the long unconditional
branch or remove the long unconditional branch entirely when relaxing.
1997-02-21 05:27:10 +00:00
Andrew Cagney 7713cb96cd Commit the other half of the top level configure change for enabling
the sim directory.
1997-02-21 03:46:32 +00:00
Andrew Cagney 1fe4ec0766 Really checkin the d30v sim directory configure files. 1997-02-21 03:33:03 +00:00