-new. Load ld-lib.exp rather than ld.exp.
* ld-bootstrap/bootstrap.exp: Use ld-new rather than ld.new.
* lib/ld-lib.exp: Rename from lib/ld.exp, for the benefit of
DejaGnu changes.
* acinclude.m4: New file, from old aclocal.m4.
* configure.in: Call AM_INIT_AUTOMAKE and AM_PROG_LIBTOOL. Remove
shared library handling; now handled by libtool. Replace
AC_CONFIG_HEADER with AM_CONFIG_HEADER. Call AC_PROG_YACC,
AC_PROG_LEX, and AC_DECL_YYTEXT. Call AM_MAINTAINER_MODE,
AM_CYGWIN32, and AM_EXEEXT. Don't call CY_CYGWIN32 or CY_EXEEXT.
* configure.host: Don't set HLDFLAGS, HLDENV, or RPATH_ENVVAR.
* acconfig.h: Mention PACKAGE and VERSION.
* stamp-h.in: New file.
* ldver.c (ld_program_vresion): Set ld_program_version from
VERSION.
* ldgram.y, ldlex.l: Replace VERSION with VERSIONK.
* Makefile.in: Now built with automake.
* aclocal.m4: Now built with aclocal.
* configure, config.in: Rebuild.
* emulparams/i386go32.sh (OUTPUT_FORMAT): Set to "coff-go32".
(SEGMENT_SIZE): Set to 0x200.
* scripttempl/i386go32.sc: Rewrite.
* configure.tgt (i[3456]86-*-msdosdjgpp*): New target.
* scripttempl/elfppc.sc: Correct .rela.sdata entries.
* scripttempl/elfppc.sc: Put the PLT between the small and large
BSS segments.
* emulparams/elf32ppc.sh (TEXT_START_ADDR): The ABI says `A
program base of 0x02000000 is recommended...' because otherwise
shared libraries are less efficient. We use 0x01800000 because
otherwise it's impossible to branch to location 0, for instance if
you have an undefined weak symbol.
* scripttempl/elf.sc: Set ENTRY based on target. Permit
TEXT_DYNAMIC to control .dynamic segment. Permit
SHLIB_TEXT_START_ADDR to set start of shared object. Support
INITIAL_READONLY_SECTIONS. Put .stub in .text. Only put
.gnu.linkonce.t* in .text when relocating. Support
OTHER_TEXT_SECTIONS. Support SHLIB_DATA_ADDR as well as
DATA_ADDR. Support OTHER_GOT_SYMBOLS and OTHER_GOT_SECTIONS.
* emulparams/elf32b4300.sh (SCRIPT_NAME): Set to elf.
(DATA_ADDR): Don't set.
(INITIAL_READONLY_SECTIONS): Rename from OTHER_READONLY_SECTIONS.
(OTHER_TEXT_SECTIONS): Set.
(OTHER_GOT_SECTIONS): Rename from OTHER_READWRITE_SECTIONS.
(MACHINE): Set to empty string.
* emulparams/elf32l4300.sh: Likewise.
* emulparams/elf32ebmip.sh: Likewise.
* emulparams/elf32elmip.sh: Likewise.
* emulparams/elf32bmip.sh: Likewise. Also:
(TEXT_DYNAMIC): Set.
* emulparams/elf32lmips.sh: Likewise.
* Makefile.in (eelf32bmips.c): Depend upon elf.sc rather than
elfmips.sc.
(eelf32ebmips.c, eelf32elmips.c, eelf32lmip.c): Likewise.
* Makefile.in (ALL_EMULATIONS): Add ealphabsd.o.
(ealphabsd.c): New rule.
* configure.host (alpha-*-bsd): New target.
* configure.tgt (alpha-*-bsd): New target.
* emulparams/alphabsd.sh: New file for *BSD/alpha.
* scripttempl/alphabsd.sc: New file for *BSD/alpha.
(INSTALL_XFORM, INSTALL_XFORM1): Remove.
(install): Depend upon ld.new and installdirs. Use
$(program_transform_name) directly, rather than using
$(INSTALL_XFORM) and $(INSTALL_XFORM1).
(installdirs): New target.
(install-info): Run mkinstalldirs.
Contributed by David S. Miller <davem@caip.rutgers.edu>:
* configure.tgt (sparc*-*-linuxaout*): New target.
(sparc*-*-linux*): New target.
* emulparams/sparclinux.sh: New file.
* Makefile.in (ALL_EMULATIONS): Add esparclinux.o.
(esparclinux.c): New target.
output section is absolute when the input section is not
absolute.
* ldlex.l: Accept whitespace in VERS_START state. Warn about
invalid characters in VERS_* states.
* scripttempl/tic80coff.sc: New (dummy) file for TIc80.
* Makefile.in (etic80coff.c): Add target and rule to build it.
* configure.tgt (tic80-*-coff): Set targ_emul to tic80coff.
(gld${EMULATION_NAME}_find_so): Skip the directory name when
searching for ".so.".
(gld${EMULATION_NAME}_search_dir): Make sure that the library name
has a version number, and that only version numbers follow .so.
stack up to 0x80000.
* emulparms/mn10300.sh (OTHER_RELOCATING_SECTIONS): Likewise.
Because we're seeing .text for some of the plumhall tests which exceeds
0x40000 bytes on these machines.
auxiliary_filters, and make it char **.
* lexsup.c (parse_args): Handle -f by setting up an array.
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Use
new name of auxiliary_filters.
* scripttempl/elf.sc: Move .got closer to .sdata and .sbss by
shifting .plt back. Rumour has it that the NetBSD ld.so depends
on .dynamic being after .got, so we leave that.
* emulparams/d10velf.sh: Changes needed for D10V-EVA board.
Set TEXT_START_ADDR to 0x1000000. Set READONLY_START_ADDR to
0x2000000.
* scripttempl/elfd10v.sc: Fix calculation of .text. Change
.stack to start at 0x2007ffe.
(ALL_64_EMULATIONS): New variable.
* configure.in: Accept --enable-64-bit-bfd option. If it is set
with --enable-targets=all, include ALL_64_EMULATIONS in
EMULATION_OFILES.
* configure: Rebuild.
* lexsup.c (OPTION_WARN_SECTION_ALIGN): Define.
(ld_options): Add --warn-section-align.
(parse_args): Handle --warn-section-align.
* ldlang.c (lang_size_sections): If warn_section_align, warn if
the start of a section changes due to alignment.
* ld.texinfo, ld.1: Document --warn-section-align.
* ld.texinfo: Change some single dashes to double dashes.
PR 10739.
(ldversion): Use it.
* ldver.h (ld_program_version): Declare.
* lexsup.c (ld_options): Handle --dll-verbose like --verbose, not
--version. Change --version handling to match current GNU
standards.
(help): Print bug report address.
* emulparams/shelf.sh: New file.
* emulparams/shlelf.sh: New file.
* Makefile.in (ALL_EMULATIONS): Add eshelf.o and eshlelf.o.
(eshelf.c, eshlelf.c): New targets.
* scripttempl/elf.sc: If EMBEDDED is defined, then don't add
SIZEOF_HEADERS to TEXT_START_ADDR. Expand CTOR_START and CTOR_END
around .ctors, and DTOR_START and DTOR_END around .dtors. Expand
OTHER_RELOCATING_SECTIONS if RELOCATING.
* configure.tgt (v850-*-*): New target.
* emulparams/v850.sh: New file.
No, it doesn't work (gas doesn't even emit relocs yet), but having
a "ld" that at least creates an executable image greatly helps the
gcc testsuite.
* scripttempl/armcoff.sc (__bss_start__, __bss_end__,
__data_start__, __data_end__): Added to keep in sync. with the
default ARM crt0.s. Added __CTOR_LIST__ and __DTOR_LIST__ support.
* configure.in: Call BFD_NEED_DECLARATION on strstr and sbrk.
* acconfig.h (NEED_DECLARATION_STRSTR): New macro.
(NEED_DECLARATION_SBRK): New macro.
* configure, config.in: Rebuild.
* sysdep.h (strstr): Declare if NEED_DECLARATION_STRSTR.
* ldmain.c (sbrk): Declare if HAVE_SBRK and
NEED_DECLARATION_SBRK.
* ldgram.y: Add section_phdr field to %union.
(section): Handle phdr_opt result. Add OVERLAY case.
(opt_exp_without_type): New nonterminal.
(phdr_opt): Return list of phdrs.
(overlay_section): New nonterminal.
* ldlang.c: Include <ctype.h>.
(lang_leave_output_section_statement): Add phdrs parameter.
Change all callers.
(lang_section_in_phdr): Remove.
(overlay_vma, overlay_lmn, overlay_max): New static variables.
(struct overlay_list): Define.
(overlay_list): New static variable.
(lang_enter_overlay, lang_enter_overlay_section): New functions.
(lang_leave_overlay_section, lang_leave_overlay): New functions.
* ldlang.h (lang_leave_output_section_statement): Update
declaration for new parameter.
(lang_section_in_phdr): Don't declare.
(lang_enter_overlay, lang_enter_overlay_section): Declare.
(lang_leave_overlay_section, lang_leave_overlay): Declare.
* ld.texinfo (Overlays): New node under SECTIONS, documenting
overlays.
* ldlex.l: Recognize MAX and MIN.
* ldgram.y (MAX, MIN): New terminals.
(exp): Recognize MAX and MIN.
* ldexp.c (fold_binary): Handle MAX and MIN.
* ld.texinfo (Arithmetic Functions): Document MAX and MIN.
* ld.texinfo (PHDRS): Use @cindex, not @kindex, for program header
index entries.
* ldgram.y (SIZEOF, ADDR): Do not specify type.
* ldlang.h (struct lang_nocrossref): Define.
(struct lang_nocrossrefs): Define.
(nocrossref_list): Declare.
(lang_add_nocrossref): Declare.
* ldlex.l: Recognize NOCROSSREFS keyword.
* ldgram.y (%union): Add nocrossref field.
(NOCROSSREFS): New terminal.
(ifile_p1): Recognize NOCROSSREFS.
(nocrossref_list): New nonterminal.
* ldlang.c (nocrossref_list): Define.
(lang_add_nocrossref): New function.
* ldmain.c (main): If nocrossref_list is not NULL, call
check_nocrossrefs.
(warning_callback): Free symbols if there is no place to store
them.
(notice): Call add_cref if nocrossref_list is not NULL.
* ldcref.c: Include "ldexp.h" and "ldlang.h".
(check_nocrossrefs): New function.
(check_nocrossref): New static function.
(struct check_refs_info): Define.
(check_refs, check_reloc_refs): New static functions.
* Makefile.in: Rebuild dependencies.
* ld.texinfo (Option Commands): Document NOCROSSREFS.
* ldlex.l: Remove unused definition of FILENAME. Add definition
of WILDCHAR. In SCRIPT mode, accept any sequence of WILDCHAR as a
NAME.
* ldgram.y (file_NAME_list): Accept '*' and '?' specially.
(input_section_spec): Accept '?' specially.
(statement): Change exp to mustbe_exp in length and FILL cases.
(section): Call ldlex_script before section statements, and call
ldlex_popstate after them.
* ldlang.c: Include "fnmatch.h".
(wildcardp): New static function.
(wild_section): Permit the section name to be a wildcard.
(wild_file): New static function, broken out of wild.
(wild): Call wild_file. Permit the file name to be a wildcard.
(open_input_bfds): Don't call lookup_name for a wildcard pattern.
* Makefile.in: Rebuild dependencies.
(CFILES): Add fnmatch.c.
(HFILES): Add fnmatch.h.
(OFILES): Add fnmatch.o.
* ld.texinfo: Document that file and section names can now be
wildcard patterns.
* ldlang.c (lang_place_orphans): Correct condition: place a common
section if not relocateable or if common definitions are forced.
Tue Jul 23 10:36:19 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* Makefile.in (ed10velf.c): New target.
* configure.tgt (d10v-*-elf*): New target.
* emulparams/d10velf.sh: New file.
end-sanitize-d10v
System V file name limitations.
* configure.tgt (nc32k-pc532-mach*, ns32k-pc532-ux*): Use
pc532macha rather than pc532machaout.
* Makefile.in (ALL_EMULATIONS): Change epc532machaout.o to
epc532macha.o.
(epc532macha.c): Rename target from epc532machaout.c.
-print-libgcc-file-name through sed.
(i[345]86*-*-sco*, i[345]86-*-isc*): Create crtbegin.o and
crtend.o files, in case gcc doesn't use them.
* Makefile.in (mostlyclean): Remove crtbegin.o and crtend.o.
* ldlang.h (enum section_type): Define.
(lang_output_section_statement_type): Remove loadable field. Add
sectype field.
(lang_enter_output_section_statement): Change flags parameter in
prototype to sectype.
* ldgram.y (typebits): Remove.
(sectype): New static variable.
(opt_at): Use sectype rather than typebits.
(type): Set sectype rather than typebits.
(atype): Likewise.
* ldlex.l: Recognize DSECT, COPY, INFO, and OVERLAY in
EXPRESSION mode.
* ldlang.c (lang_output_section_statement_lookup): Set sectype
field rather than loadable field.
(wild_doit): Check sectype rather than loadable.
(lang_record_phdrs): Likewise.
(lang_enter_output_section_statement): Rename flags parameter to
sectype. Set sectype field rather than loadable field. Set flags
field based on sectype.
* configure.tgt (alpha-*-linuxecoff*): New target.
(alpha-*-linux*): Use elf64alpha.
* emulparams/elf64alpha.sh: New file.
* emultempl/elf32.em: If ELFSIZE is not set, set it to 32. Use
${ELFSIZE} rather than 32 when calling BFD routines.
(hold_rodata): New static variable.
(gld${EMULATION_NAME}_place_orphan): Use hold_rodata for a
readonly section that is not code.
(gld${EMULATION_NAME}_place_section): Set hold_rodata. Don't use
a .rel section unless its bfd_section field is not NULL.
* Makefile.in (ALL_EMULATIONS): Add eelf64alpha.o.
(eelf64alpha.c): New target.
* ldlex.l: Recognize BLOCK and GROUP in EXPRESSION context. Add
BIND keyword.
* ldgram.y: Add BIND token.
(section): Recognize GROUP.
(opt_ext_with_type): Recognize a couple of cases of BIND.
* ldlang.c (init_os): Don't do anything if section is already
initialized. Call exp_init_os on addr_tree field.
(exp_init_os): New static function.
(map_input_to_output_sections): Call exp_init_os on assignment
expression.
(lang_place_orphans): Check for common sections by name COMMON
rather than by common_section field. Don't warn about absence of
[COMMON] command.
* emulpararms/h8300s.sh: New file for H8/S.
* Makefile.in (ALL_EMULATIONS): Add H8/S.
(e_h8300s.c): Add dependencies.
* configure.tgt: Add H8/S to targ_extra_emuls.
H8/S linker stuff. Sanitized until status of this code is known.
(gld${EMULATION_NAME}_set_symbols): New static function to add
LD_LIBRARY_PATH to the list of search directories.
(ld_${EMULATION_NAME}_emulation): Add new set_symbols routine.
if final link.
* emultempl/pe.em (sfunc): Renamed to sort_by_file_name.
(sort_by_section_name, sort_sections_1): New functions.
(sort_sections): Only sort by file name sections in .idata.
Add "Grouped Sections" support.
(gld${EMULATION_NAME}_place_orphan): Rewrite to support Grouped
Sections.
(gld${EMULATION_NAME}_place_section): Delete.
* scripttempl/pe.sc (.text,.data,.rdata): Add *(.foo\$).
(.CRT,.rsrc): Rewrite to use Grouped Section support.
Set a new variable to signify if the final target is an embedded
system.
* scripttempl/{mips.sc,elfmips.sc}: Don't add SIZEOF_HEADERS to
.text for an embedded system.
(SECTION_NAME_MAP_LENGTH): Define.
(print_size, print_alignment, print_fill, print_section): Remove.
(print_flags): Remove.
(lang_map): Rewrite.
(print_output_section_statement): Rewrite.
(print_assignment): Rewrite.
(print_one_symbol): Rewrite.
(print_input_section): Rewrite.
(print_fill_statement): Rewrite.
(print_data_statement): Rewrite.
(print_address_statement): New static function.
(print_reloc_statement): Rewrite.
(print_padding_statement): Rewrite.
(print_wild_statement): Rewrite.
(print_statement_list): Clean up.
(print_statement): Clean up. Some minor output changes.
(print_statements): Clean up.
(load_symbols): Put another - before -whole-archive.
* ldexp.c (exp_print_tree): Change etree_value and etree_rel to
print 0x and to omit leading zeroes. For etree_rel, use %B to
print the BFD. For etree_assign, remove the space after the
destination name.
* ldwrite.c: Include "libiberty.h".
(clone_section): Call xstrdup, not strdup.
(ldwrite): Don't print any map information.
(print_symbol_table, print_file_stuff, print_symbol): Remove.
* ldmain.c (main): Call lang_map when appropriate.
* ldmisc.c (vfinfo): Add support for %W.
(print_address): Remove.
* ldmisc.h (print_address): Don't declare.
* Makefile.in: Rebuild dependencies.
* configure.host (m68*-*-linux*): Add -dynamic-linker to
HOSTING_CRT0. Search -lgcc both before and after -lc in
HOSTING_LIBS. Look for crt{begin,end}.o in the compiler directory
at first.
(i[345]86-*-linux*): Look for crt{begin,end}.o in the compiler
directory at first.
* ldmisc.c: Include "libiberty.h". Include demangle.h with "",
not <>.
(demangle): Make non-static. Remove remove_underscore paramter.
Always return an allocated string.
(vfinfo): Free result of demangle. Add case 'G'. Use %T to print
functionname, rather than calling demangle. Print a colon between
the BFD(section+offset) and the line number.
* ldmain.c (add_archive_element): Improve format of archive
information in map file.
(constructor_callback): Don't print anything to the map file.
* ldlang.c (lang_one_common): Improve format of common symbol
information in map file.
* ldctor.c (ldctor_build_sets): If producing a map file, print set
information.
* ldwrite.c (print_symbol_table): Print a newline before the
header in the map file.
* Makefile.in: Rebuild dependencies.
static function, if ${host} = ${target}.
(gld${EMULATION_NAME}_after_open): Call check_ld_so_conf to find a
needed shared library if ${host} = $[target}.
* emulparams/elf32{b,l}4300.sh (MACHINE): Add explicit
architecture number.
* scripttempl/elf.sc: Use $MACHINE definition if present.
* configure.tgt (targ_extra_emuls): Force 4100 build to use same
template as 4300.
(wild_doit): Discard sections with SEC_EXCLUDE set if not doing a
relocateable link. Don't worry about section being NULL, since it
never should be. Don't call init_os unless the section is going
to be added.
(ldlang_add_file): Call section_already_linked for each section.
* ldmain.c (multiple_definition): Don't warn about multiple
definitions in sections which are being discarded.
* ldlang.c (init_os): Fail on an attempt to initialize any section
named DISCARD_SECTION_NAME.
(wild_doit): Discard input sections assigned to an output section
named DISCARD_SECTION_NAME.
* ld.texinfo: Document use of /DISCARD/.
from "null" to "vectors". Create an output section for
vectors. Add comments on how to explicitly place items
in the vector table.
* scripttempl/h8300h.sc: Likewise.
hmse
* ldmain.c (main): Initialize link_info.wrap_hash.
* ldexp.c (fold_name): Use bfd_wrapped_link_hash_lookup in DEFINED
and NAME cases.
* ld.texinfo, ld.1: Document --wrap.
(ldemulation_xfer_type): Add unrecognized_file field.
* ldemul.c (ldemul_unrecognized_file): New function.
* ldlang.c (load_symbols): If a file can not be recognized, call
ldemul_unrecognized_file before trying it as a linker script.
* aix.em (gld${EMULATION_NAME}_unrecognized_file): New static
function.
(gld${EMULATION_NAME}_read_file): Use FOPEN_RT, not "r".
(ld_${EMULATION_NAME}_emulation): Initialize unrecognized_file.