Commit Graph

36 Commits

Author SHA1 Message Date
Ian Lance Taylor 0b3499f672 * ldlang.c (load_symbols): Check for archive before object. Use
bfd_check_format_matches, and, if ambiguous, print a list of
	matching formats.  If file format is not recognized, treat file as
	a linker script.
	* ldgram.y (yyerror): If assuming an object file is a script,
	mention that.  Tweak the format of the error messages.
	* ldlex.l (lex_warn_invalid): If assuming an object is a script,
	guess that this is not actually a script, and just report that the
	file format was not recognized.
	* ld.texinfo (Options): Admit that -( may be used more than once.
	Add note that unrecognized object files are now treated as linker
	scripts.

	* ldfile.c (ldfile_input_filename): Make const.
	(ldfile_assumed_script): New variable.
	(try_open): Change arguments types to const.
	(ldfile_find_command_file): Likewise.
	(ldfile_open_command_file): Likewise.  Also, set lineno to 1.
	* ldfile.h: Update declarations for ldfile.c changes.
	* ldlex.l: Include <ctype.h>.
	(file_name_stack): Change to be const char *.
	(lineno_stack): New static variable.
	(<<EOF>>): Set lineno as well as ldfile_input_filename.
	(lex_push_file): Make name argument const.  Initialize
	lineno_stack entry.
	(lex_redirect): Initialize lineno_stack entry.
	(lex_warn_invalid): Handle non printable characters nicely.
	* ldlex.h (lex_push_file): Declare second argument as const.

	* ldgram.y (ifile_p1): Recognize GROUP.
	* ldlex.l: Recognize GROUP.
	* ld.texinfo (Option Commands): Document GROUP.
1994-09-13 20:42:47 +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 c96386c4d8 * 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.
1994-06-15 06:01:45 +00:00
Ian Lance Taylor f9d3d71ae8 Don't create unnecessary output sections.
* ldlang.c (out_bfd_get_section_by_name): Remove.
	(wild_section): Call bfd_get_section_by_name rather than
	our_bfd_get_section_by_name.  Don't call wild_doit if there is no
	section.
	(lang_create_output_section_statements): Remove.
	(map_input_to_output_sections): For several cases, call init_os if
	it has not already been called.
	(lang_size_sections): If output section was not created, skip it.
	(lang_process): Don't call lan_create_output_section_statements.
	(lang_place_orphans): Skip files with just_syms_flags set to true.
	* ld.texinfo: Document change.
1994-05-11 20:29:21 +00:00
David MacKenzie d4e5e3c330 Use getopt instead of lex and yacc to parse the command line.
* ld.texinfo (Options): Document changes to option syntax.
	* Makefile.in: Update dependencies.
	* ldver.c (help): Tweak dashes in usage message.
	* ldgram.y (%union): Remove unused members.
	Remove %tokens for command line options; add ones for input types.
	(command_line): Rules removed.
	(file): Instead of command line, recognize an
	input type indicator, then use the nonterminal for that type.
	(defsym_expr): New nonterminal from code formerly in command_line.
	* ldlex.h: Declare parser input type enum and variable.
	Don't declare parse_line.
	* ldlex.l: Remove unused variables.  Make some used ones static
	and comment them.
	(COMMAND): Start state and its rules removed.
	At start of yylex, return input state token if at start of input.
	(lex_redirect): Don't need to set yyout.
	(ldlex_command): Function removed.
	* ldmain.c (main): Instead of calling parse_line, set up the
	redirections and call yyparse directly.
	* ldmisc.c (vfinfo): If there's no input filename, print nothing, not
	"command line".
	* lexsup.c: Remove #if 0'd code.
	(parse_line): Function removed.
	(parse_args): Rewrite to use getopt_long_only.
	(set_default_dirlist): New function from code formerly in
	ldgram.y:command_line.
	(set_section_start): New function.
	* emultempl/generic.em, emultempl/gld960.em, emultempl/hppaelf.em,
	emultempl/lnk960.em, emultempl/m88kbcs.em: Don't enclose
	compiled-in link scripts in "{" and "}", as the grammar no longer
	wants them to be.
1994-02-25 03:26:25 +00:00
Roland Pesch 139c8857be Formatting adjustments, for better smallbook formatting
and to agree better w/FSF (RMS) indentation conventions.
1994-02-03 04:38:58 +00:00
Roland Pesch 7c8fab26c8 Describe -retain-symbols-file. 1994-02-03 04:18:11 +00:00
Roland Pesch 1fb57a5d3e misc updates:
(1) show `-y SYMBOL' with space
(2) weaken multi-target stuff, to avoid false expectations now that
linker now often config'd with only one target
(3) describe -relax support on i960
(4) correct description of hyphen chars in symbols
(5) describe CONSTRUCTORS linker script cmd
1994-02-03 03:12:38 +00:00
Roland Pesch 67c4333b27 Describe AT option of SECTIONS command, at long last. 1994-02-02 02:27:55 +00:00
Stan Shebs 8594f56890 Tue Jan 25 13:19:41 1994 Stan Shebs (shebs@andros.cygnus.com)
* ldmain.c (main): Compute and display total execution time.
	* ld.texinfo (-stats): Document the option.
1994-01-25 21:30:00 +00:00
David MacKenzie 8de26d624e * ld.texinfo: Clarify what -T option does. 1994-01-19 21:58:31 +00:00
Ian Lance Taylor c477527cbb * ld.h (QUAD_SIZE): Define.
* ldgram.y (QUAD): New token.
	(length): Handle it.
	* ldlex.l: Return QUAD.
	* lexsup.c (keywords): Add QUAD.
	* ldwrite.c (build_link_order): Handle QUAD.
	* ldlang.c (print_data_statement): Handle QUAD.
	(lang_size_sections): Likewise.
	(lang_do_assignments): Likewise.
	* ldexp.c (exp_print_token): Add QUAD to table.
	* ld.texinfo: Describe QUAD.
1994-01-06 19:38:36 +00:00
Roland Pesch 8920addc82 Fixed minor typo ("host" sb "target" in discussion of GNUTARGET).
To my shame, this was reported 28 aug 92 by Jonathan Ryshpan, and lost
in my mail pile til now.
1993-11-03 00:09:34 +00:00
Roland Pesch 7f9ae73e76 Makefile.in: correct out-of-date TEXIDIR default
ld.texinfo: (a) fix INPUT cmd description (b) fix bad formatting in FSF
            style (warning examples) (c) add some index entries on warnings
1993-10-01 21:08:13 +00:00
David MacKenzie 836a5ee449 tiny additions & fixes 1993-09-03 22:47:04 +00:00
David MacKenzie 91fd30d46c mention that [section] is no longer supported 1993-08-10 16:12:30 +00:00
David MacKenzie 867a1b8a18 error fixes and clarifications 1993-08-05 22:49:26 +00:00
David MacKenzie 1cd4cca9bf add more info about -warn-common 1993-08-03 23:09:03 +00:00
David MacKenzie 2a28d8b006 add -warn-common option 1993-08-03 22:47:28 +00:00
David MacKenzie 3e27cc11c4 don't list objfiles... as an option 1993-08-03 00:33:38 +00:00
David MacKenzie de87cdb466 * Make -v only print the version number.
Share some Texinfo documentation with BFD.
1993-07-08 18:00:11 +00:00
David MacKenzie 346535cc1f * ldlex.l, ldgram.y: Support new -oformat option.
Remove attempt at supporting script fragments on the command line.
	* ldlang.c (lang_add_output_format): Take new arg, FROM_SCRIPT.
	* mri.c (mri_format), ldgram.y: Change callers.
	* ldlang.h: Change prototype.
1993-06-22 17:41:28 +00:00
David MacKenzie d18a45278e Document -Map option. 1993-06-17 23:23:48 +00:00
David MacKenzie 8ddef5528d * ldfile.c (ldfile_open_command): Don't try .ld extension.
It wasn't documented (or likely used) and wastes time.
	(try_open): If EXTEN is empty, don't try it.

	* ldctor.c, lderror.c, ldexp.c, ldfile.c, ldindr.c, ldlang.c,
	ldlex.l, ldmain.c, ldmisc.c, ldsym.c, ldver.c, ldwarn.c,
	ldwrite.c, lexsup.c, mri.c, relax.c: Replace DEFUN macro calls
	with normal function declarations.

	* Move *.em to emultempl/*.em.  Move *.sh to emulparams/*.sh.
	Move *.sc-sh to scripttempl/*.sc.
	* {emultempl,emulparams,scripttempl}/README: New files.
	* sh.em, st2000.em, z8ksim.em, h8300hms.em, h8500hms.em: Files
	removed, replaced with generic.em.
	* h8300.sh, h8500.sh, h8300.sc, h8500.sc: Renamed from
	 h8[35]00hms.s[ch].  Change their contents to omit the "hms".

	* *.em (*_get_script): Return script name instead of script contents.
	* ldlang.c (lang_process): Change caller.

	* ldlex.l, ldgram.y: Recognize -m option.
	Check for input files after *all* options in grammar.
	* ldmain.c (main): Check for -m options.  Add default directory
	for -m.

	* mkscript.c: File removed.
	* genscripts.sh: Take two more parameters, tooldirlib and libdir,
	to add to the default LIB_PATH.
	Look for input files in the new subdirectories.
	Create the scripts in emulations subdirectory and don't filter
	them through mkscript.
	* configure.in: Make the emulations subdirectory.

	* Makefile.in: Account for all of the above changes.
	Remove unused .SUFFIXES.  Get libgcc.a path with gcc
	-print-libgcc-file-name instead of $(libdir)/libgcc.a.
	Put CFLAGS last in the compilation rules.
	Add -I../bfd to INCLUDES so sysdep.h is found.

	* ldfile.c (try_open): If opening without the extension fails,
	try with the extension even if -v or -V was given.
	had_script is imported (from ldgram.y), not exported.
1993-06-17 20:55:43 +00:00
David MacKenzie ec40bbb87f Clean up English and Texinfo usage. 1993-04-29 03:39:02 +00:00
Roland Pesch d76ae847f0 Fix index reference (h8/300, not i960). 1993-03-30 06:55:41 +00:00
Roland Pesch cb70c87297 Introduce more blanks in examples; minor formatting cleanup. 1992-08-19 21:34:47 +00:00
Roland Pesch 246504a5c4 Restore docn for -N, now reintroduced into this generation of linker. 1992-08-08 00:31:17 +00:00
Roland Pesch 7b0155478d @{ ... @} --> @code{ ... } 1992-05-07 19:54:26 +00:00
K. Richard Pixley 3f350edad0 {} -> @{@} 1992-05-05 19:13:06 +00:00
Roland Pesch 2d59b2c30e Doc for MRI-compatible linker scripts. 1992-05-05 00:52:27 +00:00
Roland Pesch 1c48127ed7 (1) describe -relax
(2) restructure machine dependencies into separate chapter
(3) replace pretty, but quick to become obsolete, graph of BFD platforms
    vs architectures with extended excerpt from (and ref to ) objdump -i.
1992-01-24 03:38:02 +00:00
Roland Pesch c8072296ee Smallbook format fixes. 1991-11-08 01:46:38 +00:00
Roland Pesch 2c5c06749f Fixed info-markup bugs; makeinfo now succeeds with no complaints. 1991-10-05 01:49:09 +00:00
Roland Pesch b4d4e8e33c Updated, amplified, and reorganized linker manual. Option-flag
description believed complete as of today; still holes---small
ones---in "commands" section.  BFD section also needs better table of
supported archs and formats; see FIXMEs for scattered q's and
desiderata.
1991-04-20 00:07:39 +00:00
Roland Pesch f22eee0870 Initial revision 1991-04-15 22:51:21 +00:00