Add support for ELF shared libraries.
authorIan Lance Taylor <ian@airs.com>
Thu, 19 May 1994 18:25:10 +0000 (18:25 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 19 May 1994 18:25:10 +0000 (18:25 +0000)
commit2a9fa50cd8ae5dc1e99056c9683bece549e0b68f
treed4a3dce560b126bc852e1b8cd1dabaa266b7ba2d
parent013dec1ad95ef067951314b9f1beb2fa53296a6f
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.
ld/ChangeLog
ld/Makefile.in
ld/emultempl/.Sanitize
ld/emultempl/elf32.em [new file with mode: 0644]
ld/ld.h
ld/ldfile.c
ld/ldmain.c
ld/lexsup.c
ld/scripttempl/elf.sc