old-cross-binutils/ld
Richard Henderson 71b012a810 * ld.h (args_type): Add gc_sections.
* ldgram.y (ldgram_had_keep, KEEP): New.
        (input_section_spec_no_keep): Rename from old input_section_spec.
        (input_section_spec): New.  Recognize KEEP.
        * ldlang.c (wild_section): Handle keep sections.
        (lang_gc_wild_section, lang_gc_wild_file, lang_gc_wild): New.
        (lang_gc_sections_1, lang_gc_sections): New.
        (lang_process): Invoke lang_gc_sections.
        (lang_add_wild): Add keep argument.  Update all callers.
        * ldlang.h (lang_wild_statement_struct): Add keep_sections.
        * ldlex.l (KEEP): Match it.
        * ldmain.c (main): Error on -r and --gc-sections.
        * lexsup.c: Add --gc-sections.

        * scripttempl/elf.sc: Merge .text.* etc sections appropriately.
        Mark startup sections with KEEP.
        * scripttempl/elfppc.sc: Likewise.

        * ld.texinfo: Update for --gc-sections and KEEP.
1998-07-02 02:52:31 +00:00
..
emulparams * scripttempl/elf.sc (INPUT_FILES): Optional INPUT spec. 1998-06-13 00:53:24 +00:00
emultempl * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Set vma to 0 1998-06-05 22:58:06 +00:00
po * po/Make-in (all-yes): If maintainer mode, depend on .pot file. 1998-06-12 22:39:34 +00:00
scripttempl * ld.h (args_type): Add gc_sections. 1998-07-02 02:52:31 +00:00
testsuite Pass thumb-pe and arm-pe 1998-07-01 17:52:43 +00:00
.Sanitize Added support for display emulation specific command line options. 1998-05-14 22:07:30 +00:00
acconfig.h * Many files: Added gettext invocations around user-visible 1998-04-22 06:58:37 +00:00
acinclude.m4 * Makefile.am: New file, based on old Makefile.in. 1997-08-09 04:54:28 +00:00
aclocal.m4 * configure, Makefile.in, aclocal.m4: Rebuild with new libtool. 1998-02-05 17:24:24 +00:00
ChangeLog * ld.h (args_type): Add gc_sections. 1998-07-02 02:52:31 +00:00
config.in * config.in: Rename from config.h.in. 1995-09-07 17:20:53 +00:00
configure * Many files: Added gettext invocations around user-visible 1998-04-22 06:58:37 +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.host * configure.host: Correct HOSTING_CRT0 in alpha*-*-linux* case to 1998-02-02 19:14:33 +00:00
configure.in * Many files: Added gettext invocations around user-visible 1998-04-22 06:58:37 +00:00
configure.tgt * configure.tgt (mips*vr4320el-*-elf*,mips*vr4320-*-elf*): Added. 1998-03-03 16:20:17 +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 * ld.h (args_type): Add warn_mismatch field. 1997-10-30 17:28:55 +00:00
ld.h * ld.h (args_type): Add gc_sections. 1998-07-02 02:52:31 +00:00
ld.texinfo * ld.h (args_type): Add gc_sections. 1998-07-02 02:52:31 +00:00
ldcref.c * ldcref.c (check_nocrossref): Skip symbols with no output 1996-08-05 20:28:39 +00:00
ldctor.c * ldctor.c (ldctor_add_set_entry): Don't dump core if a 1995-01-24 15:34:16 +00:00
ldctor.h Initial revision 1991-12-08 01:21:25 +00:00
ldemul.c * ldemul.c (ldemul_list_emulations): New function. 1995-03-06 19:21:33 +00:00
ldexp.c * ldgram.y (LOADADDR): New terminal. 1996-08-02 19:01:58 +00:00
ldexp.h Fixed some grammer ambiguities 1991-04-03 22:03:55 +00:00
ldfile.c * ldemul.h (ldemul_open_dynamic_archive): Add search parameter to 1995-07-12 15:37:12 +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 * ld.h (args_type): Add gc_sections. 1998-07-02 02:52:31 +00:00
ldint.texinfo minor fixes 1993-12-31 21:08:12 +00:00
ldlang.c * ld.h (args_type): Add gc_sections. 1998-07-02 02:52:31 +00:00
ldlang.h * ld.h (check_nocrossrefs): Declare. 1996-08-01 17:35:49 +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 * ld.h (args_type): Add gc_sections. 1998-07-02 02:52:31 +00:00
ldmain.c * Many files: Added gettext invocations around user-visible 1998-04-22 06:58:37 +00:00
ldmain.h Made many changes to eliminate gcc warnings. Made various 1993-12-11 22:55:55 +00:00
ldmisc.c * ldmisc.h (demangle): Declare. 1996-04-26 22:15:10 +00:00
ldmisc.h * ldmisc.h (demangle): Declare. 1996-04-26 22:15:10 +00:00
ldver.c updated version 1994-10-17 20:33:46 +00:00
ldver.h Initial revision 1991-05-18 02:58:02 +00:00
ldwrite.c * ldmisc.h (demangle): Declare. 1996-04-26 22:15:10 +00:00
ldwrite.h Initial revision 1991-03-21 21:29:06 +00:00
lexsup.c * ld.h (args_type): Add gc_sections. 1998-07-02 02:52:31 +00:00
mac-ld.r * mpw-config.in: Recognize mips-*-* as equivalent to 1995-12-12 22:35:48 +00:00
Makefile.am * Makefile.am (HFILES): Remove config.h. 1998-06-12 23:36:05 +00:00
Makefile.in * Makefile.am (HFILES): Remove config.h. 1998-06-12 23:36:05 +00:00
mpw-config.in * mpw-idtmips.c: Rename from mpw-emipsidt.c. 1997-04-03 05:50:32 +00:00
mpw-elfmips.c * Many files: Added gettext invocations around user-visible 1998-04-22 06:58:37 +00:00
mpw-eppcmac.c * Many files: Added gettext invocations around user-visible 1998-04-22 06:58:37 +00:00
mpw-esh.c * configure.in: Rewrite to use autoconf. 1995-09-06 18:58:05 +00:00
mpw-idtmips.c * Many files: Added gettext invocations around user-visible 1998-04-22 06:58:37 +00:00
mpw-make.sed * mpw-make.sed: Use NewFolderRecursive for installation. 1996-12-19 19:46:32 +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 improve format 1996-12-31 19:12:03 +00:00
README Initial revision 1991-10-15 06:57:32 +00:00
stamp-h.in * Makefile.am: New file, based on old Makefile.in. 1997-08-09 04:54:28 +00:00
sysdep.h * configure.in: Rewrite to use autoconf. 1995-09-06 18:58:05 +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.