Commit Graph

212 Commits

Author SHA1 Message Date
Ian Lance Taylor
1d166443d4 * ldgram.y (yyerror): Make argument const char *, and actually
print it out rather than assuming it is a syntax error.
	* ldmisc.h: Change declaration of yyerror.
	* ldemul.c, ldwrite.c: Add /*ARGSUSED*/ as appropriate.
1993-12-31 21:17:33 +00:00
David MacKenzie
ae9c800701 * emulparams/i386mach.sh (NONPAGED_TEXT_START_ADDR): Don't include
exec header offset, since the exec header isn't loaded.
	(PAGE_SIZE, SEGMENT_SIZE): Agree with bfd/i386mach3.c.
1993-12-31 21:13:03 +00:00
Ian Lance Taylor
4a6afc88bb A major rewrite to move the bulk of the linker into BFD so that
more efficient backend code can be written for specific object
	files.
	* lderror.c, lderror.h, ldindr.c, ldindr.h, ldsym.c, ldsym.h,
	ldwarn.c, ldwarn.h, relax.c, relax.h: Removed.
	* ldctor.c, ldctor.h: Complete rewrite.
	* ldwrite.c, ldwrite.h: Complete rewrite.
	* ld.h (strip_symbols_type, strip_symbols): Removed.  Use
	link_info.strip instead.  Changed all uses.
	(discard_locals_type, discard_locals): Removed.  Use
	link_info.discard instead.  Changed all uses.
	(ld_config_type): Removed relocateable_output field; use
	link_info.relocateable instead; changed all uses.  Added stats
	field.
	(set_asymbol_chain, get_asymbol_chain, get_loader_symbol,
	set_loader_symbol): Removed.
	* ldexp.h (node_class): Added etree_rel.
	(etree_type): Added rel field.
	* ldexp.c (exp_print_token): Bracketed table initialization.
	(exp_relop): New function.
	(fold_name): Use linker hash table rather than ldsym functions.
	(exp_fold_tree): Likewise.  Also, handle etree_rel case.
	(exp_print_tree): Handle etree_rel.
	* ldgram.y (strip_symbols, discard_locals): Removed.
	(OPTION_stats, OPTION_no_keep_memory): New tokens.  Handle them.
	(REL): New token.  Does not appear in grammar, but needed for
	expression code.
	(file): Don't call lang_final; it's called by main anyhow.
	* ldlex.l: Accept -stats and -no-keep-memory options.
	* ldlang.h (fill_type): Make unsigned int, not unsigned short.
	* ldlang.c: Consistently use fill_type for fill argument.
	(lang_init_script_file, script_file): Removed.
	(create_object_symbols): Removed.  Use
	link_info.create_object_symbols_section instead.  Changed all
	uses.
	(lang_add_keepsyms_file): Removed.
	(lookup_name): Call bfd_link_add_symbols instead of
	ldmain_open_file_read_symbol.
	(wild): Don't iterate over script_file.
	(open_output): Create link hash table.
	(lang_place_undefineds): Rewrote.
	(lang_size_sections): Handle relaxing (doesn't work yet).
	(lang_relocate_globals): Removed.
	(lang_finish): Use link hash table rather than ldsym functions.
	(lang_common): Rewrote.
	(lang_one_common): New function.
	(ldlang_add_file): Add file to link_info.input_bfds list.  Set
	usrdata.
	(create_symbol): Removed.
	(lang_process): Don't call lang_init_script_file.  Call
	ldctor_build_sets rather than find_constructors.  Don't call
	lang_relocate_globals.
	(lang_abs_symbol_at_beginning_of): Rewrote.
	(lang_abs_symbol_at_end_of): Rewrote.
	* ldmain.c (had_y): Removed.
	(lprefix, lprefix_len): Removed; use link_info fields instead.
	Changed all uses.
	(multiple_def_count, commons_pending, undefined_global_sym_count,
	total_symbols_seen, total_files_seen): Removed.
	(link_callbacks, link_info): New variables.
	(main): Initialize link_info.  Don't call init_bfd_error_vector or
	ldsym_init.  Don't set now unused variables.  Handle -stats.
	(get_emulation): Removed obsolete and nonfunctional GNU960 code.
	(add_ysym): Rewrote.
	(read_entry_symbols, refize, enter_global_ref, enter_file_symbols,
	search_library, gnu960_check_format, decode_library_subfile,
	linear_library, symdef_library, clear_syms, subfile_wanted_p):
	Removed.
	(add_keepsyms_file, add_archive_element, multiple_definition,
	multiple_common, add_to_set, warning_callback, undefined_symbol,
	reloc_overflow, reloc_dangerous, unattached_reloc, notice_ysym):
	New functions.
	* ldmisc.c (vfinfo): Accept a string for %T, not a symbol.  Don't
	require symbols for %C; look them up instead.
	* emultempl/hppaosf.em: Pass link_info to
	hppa_look_for_stubs_in_section.
	* Makefile.in: Rebuilt dependencies.
	(CFILES): Removed lderror.c, ldindr.c, ldsym.c, ldwarn.c, and
	relax.c.
	(HFILES): Removed lderror.h, ldindr.h, ldsym.h, ldwarn.h, and
	relax.h.
	(EMULATION_OFILES): Depend on bfdlink.h, ldmain.h, ldexp.h,
	ldlang.h and ldctor.h.

	* Makefile.in (ldlex.c): Don't depend on ldgram.h.  Remove
	declarations of free and malloc from flex output.  Change malloc
	to ldmalloc in flex output.
1993-12-30 19:51:41 +00:00
Ian Lance Taylor
553b002162 * ldlex.h: Don't declare yywrap if it is a macro.
* ldlex.l: Include sysdep.h.
1993-12-14 22:34:41 +00:00
Ian Lance Taylor
498fbd3c56 * ldlang.c (lang_for_each_statement_worker,
lang_for_each_statement): Forgot to use PARAMS.
1993-12-14 22:20:35 +00:00
Ian Lance Taylor
1400cdc51d * Makefile.in: Added .PHONY targets where appropriate. Added some
comments.  Also:
	(gcclibdir, version): Removed unused variables.
	(DEP): New variable, set to mkdep.
	(ALL_CFLAGS): New variable.  Used in .c.o target.
	(CFILES, HFILES, GENERATED_CFILES, GENERATED_HFILES): New
	variables.
	(HEADERS, MANSOURCES, LDCSOURCES, GENERATED_SOURCES,
	GENERATED_HEADERS, LDSOURCES, BFD_SOURCES, SOURCES): Removed
	mostly obsolete variables.  Adjusted remaining uses.
	(DEF_EMUL): Removed variable.
	(ldmain.o): Handle undefined EMUL error correctly.
	(ldemul-list.h): Depend on config.status rather than Makefile.
	Create via temporary file.
	(ver960.c, roll, make): Removed obsolete targets.
	(.dep, .dep1, dep.sed, dep, dep-in): New targets.  Used to rebuild
	dependencies.
1993-12-13 19:46:45 +00:00
Ian Lance Taylor
fcf276c495 Made many changes to eliminate gcc warnings. Made various
cosmetic changes, declared various things in header files, removed
	various extern declarations from .c files.  No substantive
	changes.
1993-12-11 22:55:55 +00:00
Ian Lance Taylor
2c6635a46f * ldlang.c (lang_process): Ifdef out final call to
lang_size_sections again (reverting change of Nove 2), since it
	breaks the Sun4 linker.
1993-12-11 22:46:15 +00:00
Ian Lance Taylor
8e964b071d * ldgram.y (OPTION_Oval): New token.
(command_line_option): Accept and ignore it.
	* ldlex.l (<COMMAND>): Handle -On where n is a number.
1993-12-02 00:25:48 +00:00
Ken Raeburn
d05ac46bc6 * configure.in: Group targets by CPU. Merge some m68k target entries with
different CPU specs that use the same ld_target values.

* configure.in: Add sparc*-*-coff.
* config/coff-sparc.mt, emulparams/coff_sparc.sh: New files.
* Makefile.in (ALL_EMULATIONS): Add em_coff_sparc.o.
(em_coff_sparc.c): Add dependencies and build rules.
1993-12-01 22:14:05 +00:00
Ian Lance Taylor
f651733a12 * ldgram.y (OPTION_call_shared, OPTION_non_shared): New tokens.
(command_line_option): Accept and ignore them (for now).
	* ldlex.l (<COMMAND>): Handle -non_shared and -call_shared.
1993-12-01 17:22:03 +00:00
Ian Lance Taylor
2332114c71 * configure.in (mips*-sgi-irix5*): New target. Use mipsb-elf32.
* emulparams/elf32mipsb.sh (DATA_ADDR): Define.
	(OTHER_READONLY_SECTIONS): Define for .reginfo.
	(EXECUTABLE_SYMBOLS): Define for _DYNAMIC_LINK.
	* scripttempl/elf.sc: Use EXECUTABLE_SYMBOLS when not relocating.
	Move OTHER_READONLY_SECTIONS after all the other readonly
	sections.  Don't use DATA_ADDR twice.
1993-11-19 19:31:51 +00:00
David Henkel-Wallace
b11b3aceb2 netware target support. 1993-11-08 14:28:46 +00:00
David MacKenzie
2ccb88c0d6 correct mach3 values 1993-11-06 05:51:14 +00:00
Ken Raeburn
4ecfad7942 Fix up dependencies and rules for ld.dvi, ld.info. 1993-11-04 00:09:39 +00:00
Ken Raeburn
3c1af24dd5 * Makefile.in (distclean): Don't get rid of dvi or info files. 1993-11-03 23:09:24 +00:00
David MacKenzie
3c292c5a46 make -o override OUTPUT 1993-11-03 21:19:18 +00:00
Jeff Law
f1f6b5e9cf * scripttempl/hppaosf.sc: (___stack_zero, etext, _etext,
edata, _edata, end): Add definitions of these symbols.
	(__end):  Remove definition of this symbol.
	(__data_start): Move definition of this symbol.
1993-11-02 23:59:24 +00:00
Jeff Law
5f62613e11 * emultempl/hppaosf.em: Various fixes and support for linker stub
generation.
        (hppaosf_finish, hppaosf_search_for_padding_statements,
        hppaosf_create_output_section_statements): New functions in
        support of linker stub generation.
        (ld_hppaosf_emulation):  Redefine to include new
        emulation-specific routines.
1993-11-02 23:55:58 +00:00
Jeff Law
97fbbaca20 * ldlang.c (lang_process): Re-enable last call lang_size_sections.
Pass abs_output_section rather than NULL to avoid invalidating
        absolute symbols.
1993-11-02 23:47:41 +00:00
Ian Lance Taylor
c3b34cfd3b * ld.h (flag_is_*): Removed macros.
* ldmain.c (enter_global_ref), ldsym.c (write_file_locals):
	Consistently check the BFD symbol flags directly, rather than
	using file_is_* macros.
1993-10-29 19:02:26 +00:00
Stan Shebs
7b95fe96ef Sparc Lynx support 1993-10-29 02:39:07 +00:00
Ian Lance Taylor
d17eb3db0e * Makefile.in: Add dependency for $(EMULATION_OFILES). 1993-10-28 18:09:20 +00:00
Ian Lance Taylor
db4b5ad081 * relax.c (write_relax): Check return value of bfd_seclet_link. 1993-10-25 20:10:35 +00:00
Ken Raeburn
2fe6619ee0 * ldlang.c (delete_output_file_on_failure): New variable.
(open_output): Set it after bfd open succeeds.
* ldmisc.c (vfinfo): Test it.

Changes from Peter Hoogenboom, hoogen@cs.utah.edu:

* ldsym.c (write_file_locals): Set the BSF_FILE flag for object symbols.

* ldemul.c: Support was added to allow emulation-specific processing to occur.
This support was added primarily for linker stub generation in the elf32-hppa
gld.
(ldemul_finish, ldemul_create_output_section_statements):  New functions.
* ldemul.h: Support was added to allow emulation-specific processing to occur.
(As described above.)  Added finish and create_output_section_statements fields
to ld_emulation_xfer_struct structure.
* ldlang.c: Add calls to emulation-specific routines.
(lang_process):  Add call to ldemul_create_output_section_statements function.
(lang_process):  Add call to a emulation-specific routine (and
some processing after the call).
1993-10-25 16:35:23 +00:00
Ian Lance Taylor
1c4b3cda62 * configure.in (alpha-*-osf*): New target; use alpha.mt.
* Makefile.in (ALL_EMULATIONS): Added em_alpha.o.
	(em_alpha.c): New target; use alpha.sh and alpha.sc.
	* config/alphaosf.mh (NATIVE_LIB_DIRS, HOSTING_CRT0): Define.
	* config/alpha.mt: New file.
	* emulparams/alpha.sh: New file.
	* scripttempl/alpha.sc: New file.
1993-10-19 19:55:52 +00:00
Ian Lance Taylor
98b5caadf3 * ldmain.c (enter_global_ref): Just ignore any weak symbol for
which we already have a definition, rather than checking in
	several different places whether the symbol is weak.
1993-10-13 20:04:30 +00:00
Ian Lance Taylor
a71da76017 * configure.in (mips-*-elf*): New target; use mipsb-elf32.
* scripttempl/elf.sc: Only use OTHER_READONLY_SECTIONS and
	OTHER_READWRITE_SECTIONS if relocating.  Shell variables are not
	expanded within them.
	* config/mipsb-elf32.mt: New file.
	* emulparams/elf32mipb.sh: New file.
	* Makefile.in (em_elf32mipb.c): New target.
1993-10-12 21:46:52 +00:00
Rob Savoye
a4aeaacf69 * ldlang.c (lang_add_input_file): If it's a library brought in by
INPUT(), then change the file type to lang_input_file_is_l_enum.
	* ldgram.y: In input_list, change lang_input_file_is_file_enum to
	lang_input_file_is_search_file_enum so objects brought in using
	INPUT() do a path lookup.
1993-10-01 01:28:55 +00:00
Ian Lance Taylor
9a467cb2b5 Finish up support for i386-sysv4 (without shared libraries):
* ld.h (flag_is_weak): Define.
	* ldlang.c (print_symbol): Mention whether symbol is weak.
	(print_input_section): Print weak symbols as globals.
	* ldmain.c (refize): Do not zero out BSF_WEAK flag.
	(enter_global_ref): Do not warn if a weak symbol redefines a
	global symbol.  Do not let a weak symbol redefine a common symbol.
	(enter_file_symbols): Treat weak symbols as global symbols.
	(subfile_wanted_p): Do not pull in an object file from a archive
	just to resolve an undefined weak symbol.
	* ldmisc.c (vfinfo): Don't needlessly malloc space after a fatal
	error; the error might be that malloc has run out of space.
	* ldsym.c (write_file_locals): Treat weak symbols as global.
	* configure.in (i[34]86-*-sysv4*, i[34]86-*-elf*): New targets;
	use i386-elf.
	* config/i386v4.mh: New file; set NATIVE_LIB_DIRS to /usr/ccs/lib.
	* config/i386-elf.mt: New file; set EMUL to elf_i386.
	* emulparams/elf_i386.sh: New file.
	* scripttempl/elf.sc: Use ${NOP} as filler (defaults to 0).
	* Makefile.in (NATIVE_LIB_DIRS): Define to be empty.
	(ALL_EMULATIONS): Add em_elf_i386.o.
	(GENSCRIPTS): Pass NATIVE_LIB_DIRS as sixth argument.
	(em_elf_i386.c): New target, like other em_*.c targets.
	($(LD_PROG)): Pass $(CFLAGS) to $(CC).
	* genscripts.sh: Accept NATIVE_LIB_DIRS as sixth argument.  If
	nonempty, and configured for native, add it to LIB_PATH.
1993-09-17 22:11:00 +00:00
Stan Shebs
4f6d6db937 Added statements for stab sections in coff files. 1993-09-17 20:16:17 +00:00
David Edelsohn
1bff7c388a * ldmain.c (main): Call set_scripts_dir after argv has been processed. 1993-09-12 23:07:40 +00:00
Jeffrey Wheat
8a6665aef8 Changed CXX back to g++. ../gcc/xgcc breaks the cdtest because of <assert.h> 1993-09-10 16:50:52 +00:00
Jeffrey Wheat
3a9149a7b7 Fixed RUNTEST* CXX CXXFLAGS macros and check rule. 1993-09-10 16:37:47 +00:00
David MacKenzie
cbb5c2d133 * Makefile.in (TAGS): Use shell wildcards. 1993-09-10 14:29:45 +00:00
Jeffrey Osier
959eba2070 * Makefile.in: add TEXINPUTS variable and use it in ld.dvi target 1993-09-08 01:08:26 +00:00
Roland Pesch
a0a55af6a7 * ld.texinfo: re-enable included config file; conditionalize doc
for -oformat to interact properly with SingleFormat doc config
	var; rename @up/@down to @raisesections/@lowersections.
1993-09-03 23:48:59 +00:00
David Edelsohn
c10744770c * ld.h (BYTE_SIZE, SHORT_SIZE, LONG_SIZE): Define as suggested by
Steve.
1993-08-26 22:22:36 +00:00
Ken Raeburn
4346166b07 From Peter Hoogenboom <hoogen@shafer.cs.utah.edu>:
* emultempl/hppaosf.em (ld_hppaosf_emulation): Correct name for PA
ELF emulation is "elf32-hppa" not "elf-big".
(hppaosf_before_parse): Remove unneeded processing of environment variables.
* scripttempl/hppaosf.sc: Include .hppa_linker_stubs sections in
.text segment of output file.
* emulparams/hppaosf.sh (OUTPUT_FORMAT): Use elf32-hppa.
1993-08-24 23:45:26 +00:00
K. Richard Pixley
95a2b9d2ce move BYTE_SIZE, SHORT_SIZE, LONG_SIZE from ldlang.c into ld.h 1993-08-24 23:34:32 +00:00
K. Richard Pixley
b98bd3db83 define BYTE_SIZE, SHORT_SIZE, and LONG_SIZE which are no longer in bfd.h. 1993-08-24 23:17:52 +00:00
Ian Lance Taylor
ddddcdf0f3 * ldlang.c (open_output, lang_check): Check return value of
bfd_set_arch_mach.
1993-08-17 19:25:18 +00:00
Steve Chamberlain
ea1c0ad276 * scripttempl/h8500.sc: Start all sections in a different segment.
* scripttempl/z8ksim.sc: Handle constructors
1993-08-17 14:04:24 +00:00
Jeffrey Wheat
d301e438b5 check targets reimplemented to old way. 1993-08-12 15:54:30 +00:00
Ian Lance Taylor
d62026add2 * config/i386v.mh, config/irix4.mh: Use gcc
-print-libgcc-file-name rather than $(libdir)/libgcc.a.
1993-08-11 19:14:25 +00:00
Ian Lance Taylor
75fe54719c * config/i386sco.mh: New file; copy of i386v.mh to correspond to
bfd/configure.host change.
1993-08-11 15:57:39 +00:00
David MacKenzie
31f55aa540 clean up error messages 1993-08-06 20:13:28 +00:00
Ian Lance Taylor
3353630442 * scripttempl/mips.sc: Always define _ftext, _fdata, _fbss.
(BSS_VAR): Removed; now always define _fbss.
	* emulparams/mipsidt.sh, emulparams/mipsidtl.sh (BSS_VAR):
	Removed.
1993-08-06 18:35:03 +00:00
Jeffrey Wheat
7c6a9e798c Changes to add dejagnu testsuite support 1993-08-05 04:16:43 +00:00
David MacKenzie
8bf66be8aa add missing newlines in messages 1993-08-05 02:52:17 +00:00