binutils-gdb/ld
Ian Lance Taylor 2a9fa50cd8 Add support for ELF shared libraries.
* ld.h (ld_config_type): Add field dynamic_link.
	* ldmain.c (main): Initialize config.dynamic_link to false.  Warn
	on attempts to use -r with -relax, -call_shared or -s.
	* lexsup.c (longopts): Separate OPTION_CALL_SHARED from
	OPTION_NON_SHARED.  Add OPTION_IGNORE.  Adjust macro values
	accordingly.  Add "dy" and "non_shared" options.  Change "Qy" to
	OPTION_IGNORE for now.  Handle OPTION_CALL_SHARED and
	OPTION_NON_SHARED by setting dynamic_link field accordingly.
	Handle OPTION_IGNORE by ignoring it.  Clear dynamic_link field for
	-r and -Ur.
	* ldfile.c (ldfile_open_file): If config.dynamic_link is true, try
	opening a file with a .so extension first.
	* emultempl/elf32.em: New file.
	* emulparams/elf32_sparc.sh (TEXT_START_ADDR): Change to 0x10000.
	(NONPAGED_TEXT_START_ADDR): Likewise.
	(TEMPLATE_NAME): Define as elf32.
	(DATA_PLT): Define.
	* emulparams/elf_i386.sh (TEMPLATE_NAME): Define as elf32.
	* scripttempl/elf.sc: Add placement for new dynamic sections.
	Don't use CREATE_OBJECT_SYMBOLS.  Define _etext, _edata and _end
	outside of any section.  Don't use ALIGN(8); just let one section
	VMA follow another.  Put .dynbss in .bss.  Don't mention debugging
	sections; they'll be handled correctly anyhow.
	* Makefile.in (eelf_i386.c): Depend upon elf32.em, not generic.em.
1994-05-19 18:25:10 +00:00
..
config * config/i386-linux.mt (OTHER_EMULATIONS): Change em_ to e to 1994-05-13 17:06:49 +00:00
emulparams keep gld960coff.sh 1994-05-08 05:37:58 +00:00
emultempl Add support for ELF shared libraries. 1994-05-19 18:25:10 +00:00
scripttempl Add support for ELF shared libraries. 1994-05-19 18:25:10 +00:00
testsuite * ld.bootstrap/bootstrap.exp, lib/ld.exp: Replace error proc 1994-05-17 22:40:29 +00:00
.Sanitize note name change of cdtest-bar.cc 1994-05-11 23:49:35 +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.exp
ChangeLog Add support for ELF shared libraries. 1994-05-19 18:25:10 +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
config.h
configure
configure.bat
configure.in * config/mipsl-idt.mt: Renamed from mips-idtl.mt. 1994-05-06 06:54:15 +00:00
dep-in.sed New file used for rebuilding dependencies. 1993-12-13 19:37:22 +00:00
genscripts.sh
h8-doc.texi
ld.1
ld.h Add support for ELF shared libraries. 1994-05-19 18:25:10 +00:00
ld.texinfo Don't create unnecessary output sections. 1994-05-11 20:29:21 +00:00
ldctor.c Made many changes to eliminate gcc warnings. Made various 1993-12-11 22:55:55 +00:00
ldctor.h
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
ldfile.c Add support for ELF shared libraries. 1994-05-19 18:25:10 +00:00
ldfile.h
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 * ldlang.c (print_output_section_statement): Change ``no attached 1994-05-13 18:01:59 +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 Add support for ELF shared libraries. 1994-05-19 18:25:10 +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 (ldversion): Updated version number. 1994-05-11 23:10:34 +00:00
ldver.h
ldwrite.c Changes to make -Ur work again. 1994-03-22 00:24:13 +00:00
ldwrite.h
lexsup.c Add support for ELF shared libraries. 1994-05-19 18:25:10 +00:00
Makefile.in Add support for ELF shared libraries. 1994-05-19 18:25:10 +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
NEWS There is no interesting Irix 5, or PowerPC, or RS/6000 support in the 1994-04-14 04:02:34 +00:00
README
TODO

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.