binutils-gdb/ld
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
..
config * config/m68klynx.mh: New file. 1994-09-12 21:06:35 +00:00
emulparams * emulparams/elf32mipb.sh (TEMPLATE_NAME): Define as elf32. 1994-09-10 20:04:17 +00:00
emultempl Thu Jun 16 14:25:22 1994 Eric Youngdale (ericy@cais.cais.com) 1994-06-16 18:36:40 +00:00
scripttempl * config/i386lynx.mh: New file. 1994-09-12 02:42:49 +00:00
testsuite changes from gas-2.3/binutils-2.4 dist (details in branch log msgs, changelogs) 1994-05-27 16:58:05 +00:00
.Sanitize Remove supposedly (but not really) GM-specific bits 1994-09-13 00:18:55 +00:00
ChangeLog * ldlang.c (load_symbols): Check for archive before object. Use 1994-09-13 20:42:47 +00:00
ChangeLog.mpw Merge in former supposed GM-specific bits 1994-09-13 00:20:31 +00:00
Makefile.in * emulparams/elf32mipb.sh (TEMPLATE_NAME): Define as elf32. 1994-09-10 20:04:17 +00:00
NEWS There is no interesting Irix 5, or PowerPC, or RS/6000 support in the 1994-04-14 04:02:34 +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
cdtest-bar.cc * ldver.c (ldversion): Updated version number. 1994-05-11 23:10:34 +00:00
cdtest-foo.cc * ldver.c (ldversion): Updated version number. 1994-05-11 23:10:34 +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-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
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 changes from gas-2.3/binutils-2.4 dist (details in branch log msgs, changelogs) 1994-05-27 16:58:05 +00:00
configure.in * configure.in: Change i[34]86 to i[345]86. 1994-08-24 16:53:39 +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 * ld.h (ld_config_type): Add new field traditional_format. 1994-06-15 06:01:45 +00:00
ld.texinfo * ldlang.c (load_symbols): Check for archive before object. Use 1994-09-13 20:42:47 +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 * scripttempl/elf.sc: Use PROVIDE to define etext, edata, and end. 1994-07-22 20:55:45 +00:00
ldexp.h Fixed some grammer ambiguities 1991-04-03 22:03:55 +00:00
ldfile.c * ldfile.c (open_a): If this is not an archive, try to open it in 1994-06-13 21:35:27 +00:00
ldfile.h * ldfile.h (search_dirs_type): Move from ldfile.c, and add cmdline 1994-06-02 21:30:57 +00:00
ldgram.y * ldlang.c (load_symbols): Check for archive before object. Use 1994-09-13 20:42:47 +00:00
ldint.texinfo minor fixes 1993-12-31 21:08:12 +00:00
ldlang.c * ldlang.c (load_symbols): Check for archive before object. Use 1994-09-13 20:42:47 +00:00
ldlang.h * ldlang.h (lang_input_statement_type): Remove fields subfiles, 1994-06-01 18:28:26 +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 * scripttempl/elf.sc: Use PROVIDE to define etext, edata, and end. 1994-07-22 20:55:45 +00:00
ldmain.c * lexsup.c (parse_args): Add -shared to longopts, and handle it. 1994-06-16 19:32:07 +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 changes from gas-2.3/binutils-2.4 dist (details in branch log msgs, changelogs) 1994-05-27 16:58:05 +00:00
ldver.h Initial revision 1991-05-18 02:58:02 +00:00
ldwrite.c Changes to make -Ur work again. 1994-03-22 00:24:13 +00:00
ldwrite.h Initial revision 1991-03-21 21:29:06 +00:00
lexsup.c * lexsup.c (parse_args): Changed "retain-symbols-file" from 1994-07-08 15:06:29 +00:00
mpw-config.in Merge in former supposed GM-specific bits 1994-09-13 00:20:31 +00:00
mpw-em.c Fri Mar 4 11:43:47 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-03-04 19:53:16 +00:00
mpw-make.in * mpw-config.in (emulname): Set based on target. 1994-06-28 20:20:35 +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

README

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.