* 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.
linker scripts if place is not NULL. Put commands found in an
assumed linker script into place.
(lookup_name): Pass NULL as place argument to load_symbols.
(open_input_bfds): In lang_input_statement_enum case, pass a place
argument to load_symbols, and store any new statements after the
current one.
PR 5917.
* emulparams/vax.sh (OUTPUT_FORMAT): Use "a.out".
* scripttempl/go32coff.sc: Changes from DJ Delorie: Change default entry point
to "start". Align at end of each section to 0x200. Start .text section 0x1000
later. Add _etext, _edata, _end symbols.
composed of different object file formats.
(ldctor_build_sets): If the output format does not support the
reloc, and we are not generating a relocateable link, try getting
the reloc from the input format.
(ei386nw.c, eppcnw.c): New targets.
* config/{i386,ppc}-nw.mt, emulparams/{i386,ppc}nw.sh,
scripttmpl/nw.sc: New files, for i386 and powerpc netware.
* configure.in: Changed netware ld_target name to be {i386,ppc}-nw
instead of {i386,ppc}-elf.
* configure.in (sparc*-*-netware): Removed. There is no such
thing anymore.
it does not already exist.
* ld.bootstrap/bootstrap.exp: Don't create tmpdir here.
* ld.cdtest/cdtest.exp: Likewise.
* ld.scripts/defined.exp: Likewise. Also, don't set as and nm
here. Change perror for no variables found to fail.
* ld.scripts/script.exp: New test.
* ld.scripts/script.t, ld.scripts/script.s: New files.
* ld.scripts/defined.exp, ld.scripts/defined.s: New files.
* ld.scripts/defined.t: New file.
* lib/ld.exp (default_ld_simple_link): New function.
(default_ld_assemble, default_ld_nm): New functions.
* config/default.exp: Rename from unix-ld.exp.
(ld_simple_link, ld_assemble, ld_nm): New functions.
(CXX): Move definition, change from g++ to gcc.
(EXPECT, RUNTEST): Copy definitions from top level Makefile.in.
(RUNTEST_CC, RUNTEST_CFLAGS): Remove.
(RUNTEST_CXX, RUNTEST_CXXFLAGS): Remove.
(CC_FOR_TARGET, CXX_FOR_TARGET): Copy from top level Makefile.in.
(.cc.o): Comment out.
(testdir): Remove.
(site.exp): Don't create testdir or set tmpdir.
(check): Run checks even if not running native. Use CC_FOR_TARGET
instead of RUNTEST_CC, and likewise for CXX.
(cdtest targets): Comment out.
* config/solaris2.mh (HOSTING_LIBS): Only mention crtend.o once.
* cdtest-bar.cc, cdtest-foo.cc, cdtest-foo.h: Remove.
* cdtest-main.cc, cdtest.exp: Remove.
file naming problems.
* emulparams/elf32lmip.sh: Rename from elf32mipl.sh.
* Makefile.in (ALL_EMULATIONS): Rename eelf32mipb.o to
eelf32bmip.o and eelf32mipl.o to eelf32lmip.o.
(eelf32bmip.c): Rename from eelf32mipb.c. Use elf32bmip.sh.
(eelf32lmip.c): Rename from eelf32mipl.c. Use elf32lmip.sh.
* config/mipsb-elf32.mt (EMUL): Use elf32bmip, not elf32mipb.
* config/mipsl-elf32.mt (EMUL): Use elf32lmip, not elf32mipl.
* lexsup.c (parse_args): Handle -EB and -EL by setting
command_line.endian.
* ldgram.y (ifile_p1): Accept OUTPUT_FORMAT with three arguments.
* ldlang.c (lang_add_output_format): Add arguments big and little.
If command_line.endian is set, use it to select big or little
rather than the default. Changed all callers.
* ldlang.h (lang_add_output_format): Update declaration.
* emulparams/elf32mipb.sh: Define BIG_OUTPUT_FORMAT and
LITTLE_OUTPUT_FORMAT.
* emulparams/elf32mipl.sh: Likewise.
* emulparams/mipsbig.sh: Likewise.
* emulparams/mipsbsd.sh: Likewise.
* emulparams/mipsidt.sh: Likewise.
* emulparams/mipsidtl.sh: Likewise.
* emulparams/mipslit.sh: Likewise.
* scripttempl/elf.sc: Define BIG_OUTPUT_FORMAT and
LITTLE_OUTPUT_FORMAT if not already defined. Pass them to
OUTPUT_FORMAT.
* scripttempl/mips.sc: Pass BIG_OUTPUT_FORMAT and
LITTLE_OUTPUT_FORMAT to OUTPUT_FORMAT.
* scripttempl/mipsbsd.sc: Likewise.
name. For %C, print the function name on a separate line, to keep
the length of error messages under control.
* ldmain.c (multiple_definition): Use %D for ``first defined
here.''
(undefined_symbol): Use %D for ``more undefined references
follow''.
PR 3770.
bfd_check_format_matches, and, if ambiguous, print a list of
matching formats. If file format is not recognized, treat file as
a linker script.
* ldgram.y (yyerror): If assuming an object file is a script,
mention that. Tweak the format of the error messages.
* ldlex.l (lex_warn_invalid): If assuming an object is a script,
guess that this is not actually a script, and just report that the
file format was not recognized.
* ld.texinfo (Options): Admit that -( may be used more than once.
Add note that unrecognized object files are now treated as linker
scripts.
* ldfile.c (ldfile_input_filename): Make const.
(ldfile_assumed_script): New variable.
(try_open): Change arguments types to const.
(ldfile_find_command_file): Likewise.
(ldfile_open_command_file): Likewise. Also, set lineno to 1.
* ldfile.h: Update declarations for ldfile.c changes.
* ldlex.l: Include <ctype.h>.
(file_name_stack): Change to be const char *.
(lineno_stack): New static variable.
(<<EOF>>): Set lineno as well as ldfile_input_filename.
(lex_push_file): Make name argument const. Initialize
lineno_stack entry.
(lex_redirect): Initialize lineno_stack entry.
(lex_warn_invalid): Handle non printable characters nicely.
* ldlex.h (lex_push_file): Declare second argument as const.
* ldgram.y (ifile_p1): Recognize GROUP.
* ldlex.l: Recognize GROUP.
* ld.texinfo (Option Commands): Document GROUP.
(GENERATE_SHLIB_SCRIPT): Define as yes.
(DYNAMIC_LINK): Define as false.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_parse):
Initialize config.dynamic_link to DYNAMIC_LINK if it is defined.
(gld${EMULATION_NAME}_place_orphan): Reset stat_ptr at end.
* Makefile.in (eelf32mipb.c): Depend upon elf32.em rather than
generic.em.
* scripttempl/h8300.sc: Change .stab and .stabstr to use a VMA of
0, and to only be marked as NOLOAD if relocating.
* scripttempl/h8500.sc, scripttempl/h8500b.sc: Likewise.
* scripttempl/h8500c.sc, scripttempl/h8500m.sc: Likewise.
* scripttempl/h8500s.sc, scripttempl/i386coff.sc: Likewise.
* scripttempl/i386go32.sc, scripttempl/i386lynx.sc: Likewise.
* scripttempl/m68kcoff.sc, scripttempl/m68klynx.sc: Likewise.
* scripttempl/sh.sc, scripttempl/sparccoff.sc: Likewise.
* scripttempl/sparclynx.sc: Likewise.
define __start_SECNAME and __stop_SECNAME around sections whose
names can be represented in C, for the benefit of symbol sets in
glibc.
* ldemul.h (ldemul_place_orphan): Declare.
(ld_emulation_xfer_type): Add place_orphan field.
* ldemul.c (ldemul_place_orphan): New function.
* ldlang.h (wild_doit): Declare.
* ldlang.c (wild_doit): Make nonstatic.
(lang_place_orphans): Call ldemul_place_orphan.
* emultempl/elf32.em: Include <ctype.h> and "ldgram.h".
(hold_section, hold_use, hold_text, hold_data, hold_bss): New
static variables.
(gld${EMULATION_NAME}_place_orphan): New static function.
(gld${EMULATION_NAME}_place_section): New static function.
(ld_${EMULATION_NAME}_emulation): Initialize place_orphan field.
* emultempl/linux.em (gld${EMULATION_NAME}_find_address_statement):
New function; add 0x20 to any use of -Ttext.
(gld${EMULATION_NAME}_create_output_section_statements): New
function.
(ld_${EMULATION_NAME}_emulation): Use the new function
gld${EMULATION_NAME}_create_output_section_statements.
Add a new script operator, PROVIDE, to define a symbol only if it
is needed.
* ldgram.y (PROVIDE): New token.
(assignment): Accept PROVIDE.
* ldlex.l (PROVIDE): New token.
* ldexp.h (node_type): Add etree_provide to node_class enum.
(exp_provide): Declare.
* ldexp.c (exp_fold_tree): Handle etree_provide.
(exp_provide): New function.
(exp_print_tree): Handle etree_provide.
* ld.texinfo: Document PROVIDE.
lang_one_common as power of two.
(lang_one_common): Get common symbol alignment from linker hash
table entry. Treat desired alignment as a power of two.
* lexsup.c (S_ISDIR): Define if not already defined.
(parse_args): Add support for -rpath. If -R is used to name a
directory, treat it as -rpath for Solaris compatibility.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
Pass command_line.rpath to bfd_elf32_size_dynamic_sections.
* ldmain.c (main): Initialize command_line.rpath to NULL.
* ld.texinfo: Document -rpath option.