old-cross-binutils/ld
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
..
config H8/500 bits. 1994-02-24 17:15:46 +00:00
emulparams Various H8/500 bits. 1994-02-24 17:14:06 +00:00
emultempl Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
scripttempl H8/500 bits. 1994-02-24 17:15:46 +00:00
testsuite keep ld.cdtest 1994-02-18 22:10:20 +00:00
.Sanitize keep test suite 1994-01-28 17:19:22 +00:00
cdtest-foo.cc * cdtest-main.cc, cdtest-func.cc, cdtest-foo.h, cdtest-foo.cc, 1992-08-05 04:15:37 +00:00
cdtest-foo.h * cdtest-main.cc, cdtest-func.cc, cdtest-foo.h, cdtest-foo.cc, 1992-08-05 04:15:37 +00:00
cdtest-func.cc * cdtest-main.cc, cdtest-func.cc, cdtest-foo.h, cdtest-foo.cc, 1992-08-05 04:15:37 +00:00
cdtest-main.cc * cdtest-main.cc, cdtest-func.cc, cdtest-foo.h, cdtest-foo.cc, 1992-08-05 04:15:37 +00:00
cdtest.exp * cdtest-main.cc, cdtest-func.cc, cdtest-foo.h, cdtest-foo.cc, 1992-08-05 04:15:37 +00:00
ChangeLog Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
ChangeLog.gm Tue Jan 25 20:01:55 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-01-26 04:18:25 +00:00
ChangeLog.mpw Tue Jan 25 19:54:19 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-01-26 04:17:05 +00:00
config.h fix my default emulation changes 1993-01-08 22:06:17 +00:00
configure resync 1991-10-02 04:15:56 +00:00
configure.bat DJ naming change 1992-02-22 00:11:39 +00:00
configure.in Motorola Delta sysV68 support from phdm@info.ucl.ac.BE (Philippe 1994-01-14 20:43:07 +00:00
dep-in.sed New file used for rebuilding dependencies. 1993-12-13 19:37:22 +00:00
genscripts.sh The default script is now compiled in; the others are still in the filesystem. 1993-07-22 00:33:10 +00:00
h8-doc.texi ld.texinfo: 1993-03-30 23:25:03 +00:00
ld.1 clarify reason for -sort-common 1993-10-29 00:30:51 +00:00
ld.h * ldlang.c (lang_size_sections, lang_common): ALIGN_N can't handle 1993-10-15 09:29:32 +00:00
ld.texinfo Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
ldctor.c Made many changes to eliminate gcc warnings. Made various 1993-12-11 22:55:55 +00:00
ldctor.h Initial revision 1991-12-08 01:21:25 +00:00
ldemul.c A major rewrite to move the bulk of the linker into BFD so that 1993-12-30 19:51:41 +00:00
ldexp.c Made many changes to eliminate gcc warnings. Made various 1993-12-11 22:55:55 +00:00
ldexp.h Fixed some grammer ambiguities 1991-04-03 22:03:55 +00:00
ldfile.c Tue Jan 25 19:54:19 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-01-26 04:17:05 +00:00
ldfile.h checkpoint before a merge 1991-04-14 03:22:42 +00:00
ldgram.y Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
ldint.texinfo minor fixes 1993-12-31 21:08:12 +00:00
ldlang.c * ldlang.h (largest_section): Don't declare. 1994-02-22 17:32:30 +00:00
ldlang.h * ldlang.c (relaxing): Removed global variable. 1994-01-24 17:59:18 +00:00
ldlex.h Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
ldlex.l Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
ldmain.c Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
ldmain.h Made many changes to eliminate gcc warnings. Made various 1993-12-11 22:55:55 +00:00
ldmisc.c * ldlang.c, ldmain.c, ldmisc.c: Use bfd_get_error and 1994-02-17 18:12:17 +00:00
ldmisc.h Made many changes to eliminate gcc warnings. Made various 1993-12-11 22:55:55 +00:00
ldver.c * ldver.c: Increase version number to 1.97, for consistency with ../binutils. 1992-05-05 21:07:32 +00:00
ldver.h Initial revision 1991-05-18 02:58:02 +00:00
ldwrite.c A major rewrite to move the bulk of the linker into BFD so that 1993-12-30 19:51:41 +00:00
ldwrite.h Initial revision 1991-03-21 21:29:06 +00:00
lexsup.c Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
Makefile.in Use getopt instead of lex and yacc to parse the command line. 1994-02-25 03:26:25 +00:00
mpw-build.in Tue Jan 25 19:54:19 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-01-26 04:17:05 +00:00
mpw-config.in Tue Jan 25 19:54:19 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-01-26 04:17:05 +00:00
mpw-em.c Tue Jan 25 20:01:55 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-01-26 04:18:25 +00:00
mpw-make.in Tue Jan 25 19:54:19 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-01-26 04:17:05 +00:00
mpw-xconfig.in Tue Jan 25 20:01:55 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-01-26 04:18:25 +00:00
mri.c Made many changes to eliminate gcc warnings. Made various 1993-12-11 22:55:55 +00:00
mri.h Made many changes to eliminate gcc warnings. Made various 1993-12-11 22:55:55 +00:00
NEWS New file. 1993-05-17 19:45:17 +00:00
README Initial revision 1991-10-15 06:57:32 +00:00
TODO * ldver.c: Bump to version 0.98. 1992-09-03 06:02:56 +00:00

This is a BETA release of a completely rewritten GNU linker.
It is distributed with other "binary utilities" which should
be in ../binutils.  See ../binutils/README for more general notes,
including where to send bug reports.

There are many new features of the linker:

* The linker uses a Binary File Descriptor library (../bfd)
that it uses to read and write object files.  This helps
insulate the linker itself from the format of object files.

* The linker support a number of different object file
formats.  It can even handle multiple formats at once:
Read two input formats and write a third.

* The linker can be configured for cross-linking.

* The linker contains a control language.

* There is a manual.

Installation
============

See ../binutils/README.
If you want to make a cross-linker, you may want to specify
a different search path of -lfoo libraries than the default.
You can do this by setting the LIB_PATH variable in ./Makefile.

Porting to a new target
=======================

A new target configuration may need a new linker script (.sc file)
to specify linker actions (such as the layout of the output).
See if one of the existing ones are suitable.
Note that the Makefile generates variants of the standard script
that are used when ld is passed -r -Ur -N or -n options.
These variant default scripts are generated from the "master"
script using sed scripts that may not work in all cases.
Look at the rules and comments in ld/Makefile.in to make sure
you stay with the rules.

Otherwise, you may need to add a new "emulation" (a sample of a
recently added target and emulation is for the SOny 68k News
family - look for files named *news*).

Also see the notes in ../binutils/README.

Reporting bugs etc
===========================
See ../binutils/README.