directory searching code into gld${EMULATION_NAME}_search_dir.
(gld${EMULATION_NAME}_search_dir): New static function, extracted
from gld${EMULATION_NAME}_find_so.
(global_needed, global_found): New static variables.
(gld${EMULATION_NAME}_after_open): New static function.
(gld${EMULATION_NAME}_search_needed): New static function.
(gld${EMULATION_NAME}_try_needed): New static function.
(gld${EMULATION_NAME}_check_needed): New static function.
(ld_${EMULATION_NAME}_emulation): Use new after_open function.
* ld.texinfo, ld.1: Mention -rpath-link on SunOS.
(rs6000-*-aix*): New target; use aixrs6.
* emulparams/aixppc.sh, emulparams/aixrs6.sh: New files.
* emultempl/aix.em: New file.
* scripttempl/aix.sc: New file.
* Makefile.in (ALL_EMULATIONS): Add eaixppc.o and eaixrs6.o.
(eaixppc.c, eaixrs6.c): New targets.
* ldexp.h (exp_get_abs_int): Update declaration.
* ldlang.c (print_output_section_statement): Use fprintf_vma to
print return value of exp_get_abs_int.
PR 8142.
(gld${EMULATION_NAME}_try_needed): Call stat_needed to make sure
that the file has not already been included under another name.
(gld${EMULATION_NAME}_stat_needed): New static function.
pure-text. Pass true, not 1, to lang_add_entry.
* emultempl/sunos.em (find_assign): New static variable.
(found_assign): New static variable.
(gld${EMULATION_NAME}_before_allocation): Rename local h to hdyn.
If not a relocateable link, and no start symbol was specified on
the command line, and there are any undefined symbols, set
link_info.shared. If link_info.shared is set, set the address of
the .text section to 0x20.
(gld${EMULATION_NAME}_find_assignment): Rename from
gld${EMULATION_NAME}_find_statement_assignment. If find_assign is
set, then just set found_assign based on whether an assignment is
found to find_assign.
(gld${EMULATION_NAME}_get_script): Don't use a special script when
producing a shared library.
* emulparams/sun4.sh (GENERATE_SHLIB_SCRIPT): Remove.
* scripttempl/aout.sc: Remove CREATE_SHLIB tests.
* ldlang.c (entry_from_cmdline): New global variable.
(lang_add_entry): Change cmdline parameter from int to boolean.
Use global entry_from_cmdline rather than function static
from_cmdline.
* ldlang.h (entry_from_cmdline): Declare.
(lang_add_entry): Change declaration of second parameter from int
to boolean.
* ldgram.y: Pass false, not 0, to lang_add_entry.
* ldlex.h (lex_string): Declare.
* ldlex.l (lex_string): Define.
* lexsup.c (parsing_defsym): Define.
(parse_args): In OPTION_DEFSYM case, set lex_string before calling
lex_redirect, and clear it after calling yyparse. Set
parsing_defsym around call to yyparse.
* ldmain.c (main): Set lex_string before calling lex_redirect, and
clear it after calling yyparse.
* ldmisc.c (vfinfo): For %S, handle --defsym arguments and built
in linker scripts correctly.
PR 8092.
* emulparams/sun4.sh (GENERATE_SHLIB_SCRIPT): Define.
* emultempl/sunos.em (gld${EMULATION_NAME}_get_script): Use the
shared library script when appropriate.
* scripttempl/aout.sc: If CREATE_SHLIB is set, start the .text
section at SIZEOF_HEADERS.
(warning_callback): Add new parameter symbol. Call
warning_find_reloc to try to find the section and VMA.
(warning_find_reloc): New static function.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
Pass NULL as symbol parameter to warning callback.
* configure.tgt: Add i386lelf to targ_extra_emuls for
i[345]86-*-linuxaout* and i[345]86-*-linuxoldld. For
i[345]86-*-linux*, set targ_emul to i386lelf, and add elf_i386 to
targ_extra_emuls.
* emulparams/i386lelf.sh: New file, a copy of elf_i386.sh.
* emultempl/elf32.em: If TARGET_IS_i386lelf, use autoconf
recommended mechanism to define DIR and struct dirent.
(libcmp): New static function use only when TARGET_IS_i386lelf.
(gld${EMULATION_NAME}_open_dynamic_archive): Likewise.
* Makefile.in (ALL_EMULATIONS): Add ei386lelf.o
(ei386lelf.c): New target.
* configure.in: Call AC_CONFIG_HEADER with config.h:config.in.
Check for config.h:config.in when creating stamp-h.
* configure: Rebuild.
* Makefile.in (stamp-h): Depend upon config.in rather than
config.h.in. Set CONFIG_HEADERS to config.h:config.in when
calling config.status.
* configure.host: New file.
* configure.tgt: New file.
* aclocal.m4: New file.
* configure: New file, built by autoconf.
* acconfig.h: New file.
* config.h.in: New file, built by autoheader.
* sysdep.h: New file.
* ld.h: Incorporate old contents of config.h.
* config.h: Remove.
* Makefile.in: Various changes for new configure script. Also:
(CC_FOR_BUILD): Remove.
(ldmain.o): Don't bother to ensure that EMUL is non-empty.
(dep.sed): Use @SRCDIR@, not @srcdir@.
* dep-in.sed: Use @SRCDIR@, not @srcdir@.
* genscripts.sh: Create ldscripts if it does not exist.
* ldemul.c, lexsup.c, mpw-emipsidt.c: Don't include "config.h".
* mpw-esh.c, emultemp/*.em: Likewise.
* ldmain.c: Likewise. Include <ctype.h>. Don't try to set
HAVE_SBRK here.
* config/*.mt, config/*.mh: Remove.
parameters.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
Change call to warning accordingly.
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): If not
relocateable and not shared, put .gnu.warning.SYMBOL sections into
the .text section.
* emultempl/{armpe.sc, i386pe.sc}: Deleted.
* emultempl/pe.sc: New file performs generic PE support and sorts
archive members.
* emulparams/{armpe.sh,i386pe.sh}: Use new file.
* scripttempl/{armpe.sc, i386pe.sc}: Deleted
* scripttempl/pe.sc: New.
* Makefile.in: Use new files.
b
* scripttempl/armpe.sc: Always start code at 0x401000, even
if -r.
* ldwrite.c (strdup): New extern declaration.
* ldgram.y (atype): New rule to clarify type parsing.
* ldlang.c (init_os): Remove commented out code.
(lang_size_sections): Set SEC_ALLOC and SEC_LOAD bits
unless told not to by the link script.
(CASE, EXTERN, START): New tokens.
(mri_script_command): Handle CASE, EXTERN, INCLUDE, START.
(casesymlist): New nonterminal.
(extern_name_list): New nonterminal.
* ldlex.l: Accept lower case trailing base specifiers. Don't
ignore the first digit when the base is a suffix. Accept many
EXPRESSION state tokens in MRI state. Support MRI continuation
lines and MRI semicolon comments. Accept all MRI keywords in
lower case. Add CASE, EXTERN, and START MRI keywords.
declaration.
(ld_emulation_xfer_type): Add search parameter to
open_dynamic_archive entry point.
* ldemul.c (ldemul_open_dynamic_archive): Add search parameter.
* ldfile.c (ldfile_try_open_bfd): Rename from try_open_bfd, and
make non-static. Change all callers to use new name.
(ldfile_open_file_search): Make static. If entry is dynamic, call
ldemul_open_dynamic_archive.
(ldfile_open_file): Don't call ldemul_open_dynamic_archive.
* ldfile.h (ldfile_open_file_search): Don't declare.
(ldfile_try_open_bfd): Declare.
* emultempl/elf32.em (gld${EMULATION_NAME}_open_dynamic_archive):
Accept search parameter. Don't search for a library, just look in
a single place.
* emultempl/linux.em (gld${EMULATION_NAME}_open_dynamic_archive):
Likewise.
* ldlang.h (lang_input_statement_type): Add new field dynamic.
* ldlang.c (new_afile): Set dynamic from config.dynamic_link.
* ldfile.c: Include bfdlink.h.
(ldfile_open_file): Check dynamic field of entry, not global
dynamic_link field. Don't do a dynamic search when doing a
relocateable link.
* ldmain.c (main): Don't warn about dynamic_link for a
relocateable link.
* emultempl/sunos.em (gld${EMULATION_NAME}_find_so): Skip file if
dynamic is false.
(gld${EMULATION_NAME}_create_output_section_statements): Always
loop over input files.
* Makefile.in: Rebuild dependencies.
* ldmain.c (main): Always initialize PE info in link_info.
* lexsup.c (OPTION_BASE_FILE): New option.
(parse_args): Handle new option.
* emulparams/armpe.sh: Output pei.
* emultempl/i386pe.em: Add newline to end.
* scripttempl/armpe.sc: Change output and quote the $s.
* scripttempl/i386pe.sc: Change output and quote the $s.
* configure.in: Change linux to default to elf. Using
i[345]86-*-linuxaout will build a linker which defaults to a.out.
* config/i386-laout.mt: Rename from old config/i386-linux.mt.
* config/i386-linux.mt: Rename from old config/i386-lelf.mt.
* config/i386-lelf.mt: Remove.
(i386-unknown-coff): Remove.
(sh-hitachi-hms): New target.
(emulation_ofiles): Set correctly for each target.
(version, TDEFINES): Add to makefile fragment.
* mpw-make.in (BISON): Use byacc instead of bison.
(em_*.c): Replace with e*.c everywhere.
(ldgram.h): Separate action from ldgram.c generation.
(LD_PROG): Depend on Version.r.
(Version.r): generate from version info.
* mpw-em.c: Remove.
* mpw-emipsidt.c: New file, modified for MPW from emipsidt.c.
describes an archive, call bfd_link_add_symbols on each member.
* ldmain.c (whole_archive): New variable.
(main): Initialize it to false.
* ldmain.h: Declare whole_archive.
* lexsup.c (parse_args): Grok --whole-archive switch.
* ldgram.y: Add token LNAME.
(input_list): Treat LNAME like NAME, but pass it to
lang_add_input_file as lang_input_file_is_l_enum.
* ld.texinfo: Document using -lFILENAME in INPUT.
(gld${EMULATION_NAME}_place_orphan): Place readonly sections with
contents whose names begin with ".rel" after hold_rel. Remove the
assertion which checked for unplaced .rel sections. Don't try to
sort the section into place if place->bfd_section is NULL.
(gld${EMULATION_NAME}_place_section): Set hold_rel to the first
section beginning with ".rel".
an internal linker script, print out the script.
* ldfile.c (try_open): Reindent function. Make the messages about
opening script files more informative.
PR 6309.
a MIPS target, clobber the size of all but the first input
.reginfo section to be 0, so that lang_size_sections sets the
correct size for the output .reginfo section.
call untested for each test, rather than ignoring it. If one test
fails, go on to the next one instead of returning.
* ld-cdtest/cdtest.exp: If compilations fail, mark tests as
unresolved.
* ld-empic/empic.exp: Likewise. Also, always pass the same test
name to pass or fail.
* ld-shared/shared.exp: Likewise. Also, always run all tests.
* ld-scripts/defined.exp: If as or nm fail, mark test as
unresolved. Always pass the same test name to pass or fail.
* ld-scripts/script.exp: Likewise.
* ld-scripts/sizeof.exp: Likewise.
* emulparams/mipsidt.sh (TEMPLATE_NAME): Set to mipsecoff.
* emulparams/mipsidtl.sh (TEMPLATE_NAME): Likewise.
* scripttempl/mips.sc: Put .rel.sdata sections in .text, and
provide __runtime_reloc_start and __runtime_reloc_stop if they are
used. Align _fdata to a 16 byte boundary.
* Makefile.in (emipsidt.c): Depend upon mipsecoff.em rather than
generic.em.
(emipsidtl.c): Likewise.
(check): Pass CC_FOR_HOST and CFLAGS_FOR_HOST to runtest.
* config/i386linux.mh: New file; set HOSTING_CRT0.
* genscripts.sh: Don't put ${libdir} in LIB_PATH if it is
/usr/lib, since that is already in LIB_PATH.