binutils-gdb/ld
Per Bothner de566389ca Major rewrite of how ld is configured. The major idea
is to use shell scripts to generate everything.
	* Each emulation is defined by a short shell script with
	extension *.sh that specifies the emulation-specific
	parameters (such as the name of the *.sh-sc and *.em
	files to use).
	* genscript.sh is the master shell script used to generate
	an emulation.  It is passed various argument, including
	the name a the emulation-speciic *.sh file that it
	"sources" to set variables to emulation-specifc parameters.
1992-02-15 22:13:53 +00:00
..
config Make the emulation GLD960, not GLD 1992-02-12 06:42:21 +00:00
.Sanitize added h8300hms.c and h8300hms.sc 1992-02-07 22:32:29 +00:00
a29k.sc-sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
a29k.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
aout.sc-sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
ChangeLog * ldlex.l: Put pack -noinhibit-exec and -sort-common 1992-02-04 23:29:33 +00:00
config.h * config/mt-coff-h8300: use EMUL like everything else 1992-02-06 19:43:25 +00:00
config.sub steves h8 patches 1991-10-02 04:01:08 +00:00
configdos.bat Initial revision 1991-12-12 03:42:06 +00:00
configure resync 1991-10-02 04:15:56 +00:00
configure.in Add ${srcdir} for makefile_frags. 1992-02-07 07:52:08 +00:00
ebmon29k.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
ebmon29k.sc-sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
ebmon29k.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
generic.em Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
genscripts.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
gld960.em Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
gld960.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
gld.1 (1) describe -relax 1992-01-24 03:40:21 +00:00
h8300hds.c Include bfd.h before sysdep.h, so ansidecl and PROTO() get defined first. 1991-10-11 11:38:10 +00:00
h8300hds.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
h8300hms.c From h8300hds* 1992-02-06 19:44:44 +00:00
h8300hms.em Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
h8300hms.sc From h8300hds* 1992-02-06 19:44:44 +00:00
h8300hms.sc-sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
h8300hms.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
i386aout.c Initial revision 1991-11-04 00:46:42 +00:00
i386aout.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
i386aout.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
i960.sc-sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
ld-emul.c
ld-gld68k-r.script
ld-gld68k-Ur.script *** empty log message *** 1991-05-04 00:40:37 +00:00
ld-gld68k.c
ld-gld68k.script Now use a.out-sunos rather than a.out-generic 1991-05-13 18:47:30 +00:00
ld-gld960.c
ld-gld960.script
ld-gld-r.script
ld-gld-Ur.script Now use a.out-sunos rather than a.out-generic 1991-05-13 18:47:30 +00:00
ld-gld.c
ld-gld.script Now use a.out-sunos rather than a.out-generic 1991-05-13 18:47:30 +00:00
ld-gldm88kbcs-r.script
ld-gldm88kbcs-Ur.script
ld-gldm88kbcs.c
ld-gldm88kbcs.script
ld-lnk960-r.script
ld-lnk960.c
ld-lnk960.script
ld-vanilla.c
ld.h *** empty log message *** 1991-05-03 23:52:48 +00:00
ld.tex
ld.texinfo (1) describe -relax 1992-01-24 03:38:02 +00:00
ldctor.h Initial revision 1991-12-08 01:21:25 +00:00
ldemul.c Include bfd.h before sysdep.h, so ansidecl and PROTO() get defined first. 1991-10-11 11:28:27 +00:00
lderror.c Make undefined refs not make an executable 1992-02-10 18:54:27 +00:00
ldexp.c * Makefile.in: added relax, also made three stage go through a 1992-01-24 22:34:34 +00:00
ldexp.h
ldfile.c
ldfile.h
ldgld68k.c Initial revision 1991-05-14 17:32:59 +00:00
ldgld68k.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
ldgld68k.script Initial revision 1991-05-14 17:32:59 +00:00
ldgld68kr.sc Initial revision 1991-09-03 21:01:03 +00:00
ldgld68kr.script Initial revision 1991-05-14 17:32:59 +00:00
ldgld68kUr.sc Initial revision 1991-09-03 21:01:03 +00:00
ldgld68kUr.script Initial revision 1991-05-14 17:32:59 +00:00
ldgld960.c Include bfd.h before sysdep.h, so ansidecl and PROTO() get defined first. 1991-10-11 11:28:27 +00:00
ldgld960.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
ldgld960.script Initial revision 1991-05-14 17:32:59 +00:00
ldgld.c Initial revision 1991-05-14 17:32:59 +00:00
ldgld.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
ldgld.script Added new keyword 'CONSTRUCTORS' 1991-08-01 23:29:23 +00:00
ldglda29k.c Initial revision 1991-07-15 23:43:15 +00:00
ldglda29k.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
ldglda29k.script Initial revision 1991-07-15 23:43:15 +00:00
ldglda29kr.sc Initial revision 1991-09-03 21:01:03 +00:00
ldglda29kr.script Initial revision 1991-07-15 23:43:15 +00:00
ldglda29kUr.sc Initial revision 1991-09-03 21:01:03 +00:00
ldglda29kUr.script Initial revision 1991-07-15 23:43:15 +00:00
ldgldi386v.c Initial revision 1991-09-19 21:04:59 +00:00
ldgldi386v.sc Initial revision 1991-09-19 21:04:59 +00:00
ldgldi386vr.sc Initial revision 1991-09-19 21:04:59 +00:00
ldgldi386vUr.sc Initial revision 1991-09-19 21:04:59 +00:00
ldgldm68kv.c Initial revision 1991-09-19 21:04:59 +00:00
ldgldm68kv.sc Initial revision 1991-09-19 21:04:59 +00:00
ldgldm68kvr.sc Initial revision 1991-09-19 21:04:59 +00:00
ldgldm68kvUr.sc Initial revision 1991-09-19 21:04:59 +00:00
ldgldm88kbcs.c Cleaned up map file printing. 1991-06-14 20:16:51 +00:00
ldgldm88kbcs.sc Initial revision 1991-09-03 21:01:03 +00:00
ldgldm88kbcs.script Cleaned up map file printing. 1991-06-14 20:16:51 +00:00
ldgldm88kbcsr.sc Initial revision 1991-09-03 21:01:03 +00:00
ldgldm88kbcsr.script Initial revision 1991-05-14 17:32:59 +00:00
ldgldm88kbcsUr.sc Initial revision 1991-09-03 21:01:03 +00:00
ldgldm88kbcsUr.script Initial revision 1991-05-14 17:32:59 +00:00
ldgldr.sc Initial revision 1991-09-03 21:01:03 +00:00
ldgldr.script Initial revision 1991-05-14 17:32:59 +00:00
ldgldUr.sc Initial revision 1991-09-03 21:01:03 +00:00
ldgldUr.script Added new keyword 'CONSTRUCTORS' 1991-08-01 23:29:23 +00:00
ldgram.y * ldgram.y: map -M behave in the same way as -Map (sets file name 1992-01-28 18:21:36 +00:00
ldindr.c Include bfd.h before sysdep.h, so ansidecl and PROTO() get defined first. 1991-10-11 11:28:27 +00:00
ldindr.h * ldindr.h: added to contain prototypes of ldindr.c 1991-12-08 01:21:28 +00:00
ldlang.c ldlang.c: now won't core dump with -M 1992-02-11 20:21:52 +00:00
ldlang.h Merging from VMS port. Doc to follow.. 1992-01-24 18:41:32 +00:00
ldlex.h
ldlex.l * Makefile.in: added relax, also made three stage go through a 1992-01-24 22:34:34 +00:00
ldlnk960.c ldlnk960.c: Special #ifdef to choose little endian ony 1992-01-29 16:44:09 +00:00
ldlnk960.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
ldlnk960.script Initial revision 1991-05-14 17:32:59 +00:00
ldlnk960r.sc Initial revision 1991-09-03 21:01:03 +00:00
ldlnk960r.script Initial revision 1991-05-14 17:32:59 +00:00
ldm88k.c *** empty log message *** 1991-09-03 21:14:13 +00:00
ldm88k.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
ldm88kr.sc Initial revision 1991-09-03 21:12:23 +00:00
ldm88kUr.sc Initial revision 1991-09-03 21:12:23 +00:00
ldmain.c * ldgram.y: map -M behave in the same way as -Map (sets file name 1992-01-28 18:21:36 +00:00
ldmain.h
ldmisc.c Merging from VMS port. Doc to follow.. 1992-01-24 18:41:32 +00:00
ldmisc.h
ldsym.c Work around for problems in linking C++ programs that need file-level 1992-02-02 21:12:25 +00:00
ldsym.h Add or update copyright notices. 1991-10-16 19:39:40 +00:00
ldtemplate Add or update copyright notices. 1991-10-16 19:39:40 +00:00
ldvanilla.c Add or update copyright notices. 1991-10-16 19:39:40 +00:00
ldver.c Add or update copyright notices. 1991-10-16 19:39:40 +00:00
ldver.h Initial revision 1991-05-18 02:58:02 +00:00
ldwarn.c Add or update copyright notices. 1991-10-16 19:39:40 +00:00
ldwarn.h Add or update copyright notices. 1991-10-16 19:39:40 +00:00
ldwrite.c Now compiles with gcc too. 1992-01-24 23:44:10 +00:00
ldwrite.h
lnk960.em Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
lnk960.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
m88kbcs.sc-sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
m88kbcs.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
Makefile
makefile.dos Initial revision 1991-12-12 03:42:06 +00:00
Makefile.in A change to the makefile got lost; ldmain. forgot that it should set 1992-02-01 00:50:35 +00:00
mkscript.c Add copright notice to mkscript.c as well. 1991-10-16 19:41:33 +00:00
news.sc * config/mh-sparc.h: now uses libgcc.a 1992-01-29 16:43:16 +00:00
news.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
README Initial revision 1991-10-15 06:57:32 +00:00
relax.c Work around for problems in linking C++ programs that need file-level 1992-02-02 21:12:25 +00:00
sun3.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
sun4.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +00:00
vanilla.em Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
vanilla.sc-sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:07:15 +00:00
vanilla.sh Major rewrite of how ld is configured. The major idea 1992-02-15 22:13:53 +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.