binutils-gdb/ld
Ian Lance Taylor 4fdbafb247 Changes to make -Ur work again.
* ldmain.c (add_to_set): Now takes reloc argument rather than
	bitsize.  Check config.build_constructors here.  If an new hash
	table entry is created, mark it as undefined.
	(constructor_callback): No longer takes bitsize argument.  Pass
	BFD_RELOC_CTOR to ldctor_add_set_entry, but first make sure the
	BFD backend supports it.
	(reloc_overflow): Handle a NULL abfd argument.
	(reloc_dangerous, unattached_reloc): Likewise.
	* ldctor.c: Include ldmain.h.
	(struct set_info): Change bitsize field to reloc.
	(ldctor_add_set_entry): Now takes reloc argument rather than
	bitsize.  Don't bother to check config.build_constructors here.
	(ldctor_build_sets): Get the size from the reloc howto.  If
	generating relocateable output, call lang_add_reloc rather than
	lang_add_data.
	* ldctor.h (ldctor_add_set_entry): Change declaration to use reloc
	instead of bitsize.
	* ldlang.h (statement_enum): Add lang_reloc_statement_enum.
	(lang_reloc_statement_type): New structure.
	(lang_statement_union_type): Add reloc_statement field.
	(lang_add_reloc): Declare new function.
	* ldlang.c (lang_for_each_statement_worker): Handle
	lang_reloc_statement_enum.
	(map_input_to_output_sections, print_statement): Likewise.
	(lang_size_sections, lang_do_assignments): Likewise.
	(print_reloc_statement): New function.
	(lang_add_reloc): New function.
	* ldwrite.c (build_link_order): Handle lang_reloc_statement_enum.
1994-03-22 00:24:13 +00:00
..
config * config/i386bsd.mh: New file. 1994-03-08 12:25:06 +00:00
emulparams * elf.sc: Permit TEXT_START_SYMBOLS and DATA_START_SYMBOLS to be 1994-03-07 20:26:24 +00:00
emultempl Remove ppc.em; do it all in nlmconv instead. 1994-03-12 03:19:27 +00:00
scripttempl * scripttempl/elf.sc: Force all sections to be aligned. 1994-02-26 05:34:52 +00:00
testsuite For some reason this directory was missing a .Sanitize file. 1994-02-25 03:59:10 +00:00
.Sanitize Lose mpw-build.in 1994-02-28 19:14:06 +00:00
ChangeLog Changes to make -Ur work again. 1994-03-22 00:24:13 +00:00
ChangeLog.gm Mon Feb 28 11:09:48 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-02-28 19:15:10 +00:00
ChangeLog.mpw Fri Mar 4 11:43:47 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-03-04 19:53:16 +00:00
Makefile.in * ldgram.y (dirlist_ptr): Removed; not used. 1994-02-26 03:17:02 +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
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
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 * ldgram.y (section): Reverse the order of memspec_opt and 1994-02-26 05:32:29 +00:00
ldint.texinfo minor fixes 1993-12-31 21:08:12 +00:00
ldlang.c Changes to make -Ur work again. 1994-03-22 00:24:13 +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 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 * ldgram.y (dirlist_ptr): Removed; not used. 1994-02-26 03:17:02 +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 Fri Mar 4 11:43:47 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-03-04 19:53:16 +00:00
mpw-make.in Mon Feb 28 11:07:41 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-02-28 19:13:40 +00:00
mpw-xconfig.in Mon Feb 28 11:09:48 1994 Stan Shebs (shebs@andros.cygnus.com) 1994-02-28 19:15:10 +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.