* aout.sc: Don't define __DYNAMIC here. Add new sections used by
shared library support code.
* emultempl/sunos.em: New file.
* emulparams/sun4.sh (TEMPLATE_NAME): Define as sunos.
* Makefile.in (esun4.c): Depend upon sunos.em, not generic.em.
* 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.
* cdtest-foo.cc: Use explicit "#pragma implementation".
* cdtest-bar.cc: Renamed from cdtest-func.cc.
* Makefile.in: References to cdtest-func.o changed to cdtest-bar.o.
* Makefile.in (em_m68klynx.c, em_i386lynx.c, em_sparclynx.c): Use
Lynx-specific script templates.
* configure.in (sparclite*-*-coff): Use coff-sparc.
* emulparams/i386lynx.sh (SCRIPT_NAME): Set to i386lynx.
* emulparams/sparclynx.sh (SCRIPT_NAME): Set to sparclynx.
(ENTRY): Set to __main.
* scripttempl/i386lynx.sc: New file, script for I386 Lynx.
* scripttempl/m68klynx.sc: Add insertion of ctor/dtor sections.
* scripttempl/sparclynx.sc: New file, script for uSparc Lynx.
* config/ppc-elf32.mt: New file.
* emulparams/elf32ppc.sh: New file.
* emultempl/ppc.em: New file.
* Makefile.in (ALL_EMULATIONS): Added em_elf32ppc.o.
(em_elf32ppc.c): New target; uses elf32ppc.sh, ppc.em and elf.sc.
(EMULATION_OFILES): Added dependencies on ldexp.h and ldlang.h.
* ld.texinfo (Options): Document changes to option syntax.
* Makefile.in: Update dependencies.
* ldver.c (help): Tweak dashes in usage message.
* ldgram.y (%union): Remove unused members.
Remove %tokens for command line options; add ones for input types.
(command_line): Rules removed.
(file): Instead of command line, recognize an
input type indicator, then use the nonterminal for that type.
(defsym_expr): New nonterminal from code formerly in command_line.
* ldlex.h: Declare parser input type enum and variable.
Don't declare parse_line.
* ldlex.l: Remove unused variables. Make some used ones static
and comment them.
(COMMAND): Start state and its rules removed.
At start of yylex, return input state token if at start of input.
(lex_redirect): Don't need to set yyout.
(ldlex_command): Function removed.
* ldmain.c (main): Instead of calling parse_line, set up the
redirections and call yyparse directly.
* ldmisc.c (vfinfo): If there's no input filename, print nothing, not
"command line".
* lexsup.c: Remove #if 0'd code.
(parse_line): Function removed.
(parse_args): Rewrite to use getopt_long_only.
(set_default_dirlist): New function from code formerly in
ldgram.y:command_line.
(set_section_start): New function.
* emultempl/generic.em, emultempl/gld960.em, emultempl/hppaelf.em,
emultempl/lnk960.em, emultempl/m88kbcs.em: Don't enclose
compiled-in link scripts in "{" and "}", as the grammar no longer
wants them to be.
De Muyter).
* configure.in (m68k-motorola-sysv*) New target.
* config/delta68.mt: New file.
* emulparams/delta68.sh: New file.
* scripttempl/delta68.sc: New file.
* Makefile.in (ALL_EMULATIONS): Added em_delta68.o.
(em_delta68.c): New target.
* genscripts.sh: Put the scripts in the ldscripts directory, not
emulations.
* configure.in (ldscripts): Make, instead of emulations.
* Makefile.in (scriptdir): Take off the "ld" part.
(install, clean, distclean): Use ldscripts, not emulations.
In tests, pass -L., not -Lemulations.
(ldmain.o): Don't pass -DSCRIPTDIR=....
* ldlang.c (lang_process): Add "ldscripts/" to the name of the
default script file.