Commit Graph

640 Commits

Author SHA1 Message Date
Alan Modra
d08a14c385 * ldlang.c (lang_size_sections_1): Don't complain about
SEC_NEVER_LOAD sections having no memory region specified.
2002-04-08 01:01:43 +00:00
Alan Modra
024531e2e5 * ld.texinfo (Format Commands <OUTPUT_FORMAT>): Typo fix. 2002-04-08 00:24:02 +00:00
Matthew Green
c657a1f082 * ld/configure.host (*-*-netbsd*): Add support for NetBSD/ELF. 2002-04-07 13:57:53 +00:00
Alan Modra
61bef6f1a0 * dep-in.sed: Cope with absolute paths.
* Makefile.am (dep.sed): Subst TOPDIR and BFDDIR.
	Run "make dep-am".
	* Makefile.in: Regenerate.
2002-04-04 14:07:57 +00:00
Thiemo Seufer
49ba2791b8 * emulparams/elf64btsmip.sh: n64 replaces .reginfo with .MIPS.options. 2002-04-04 07:21:39 +00:00
Jakub Jelinek
50e60fb578 * ldexp.c (fold_binary) [DATA_SEGMENT_ALIGN]: If common page size
is smaller than maximum, round dot up to common page boundary.
2002-04-03 10:25:41 +00:00
Alan Modra
6f12f4cad7 * configure.host: Set up for generic hosts first, then tweak as
necessary in more specific targets.
	(HOSTING_LIBS): Include libgcc_eh.a if found.
2002-03-27 14:07:50 +00:00
Andreas Jaeger
a8f1f017eb * emulparams/elf_x86_64.sh (COMMONPAGESIZE): Set it. 2002-03-23 18:15:32 +00:00
Alan Modra
1d3fdf38d3 * Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
2002-03-21 09:42:38 +00:00
Alan Modra
79b1faa874 * genscripts.sh (LIB_SEARCH_DIRS): Quote path. 2002-03-21 05:35:39 +00:00
Alan Modra
fcf0e35b46 * ldlang.c (ldlang_add_undef): If the output bfd has been opened,
add the symbol to the linker hash table immediately.
	(lang_place_undefineds): Split symbol creation out..
	(insert_undefined): ..to here.
2002-03-20 07:49:53 +00:00
David O'Brien
fed2999dfb 2002-03-18 David O'Brien <obrien@FreeBSD.org>
* emultempl/elf32.em: Use lbasename vs. basename to fix problem where
	the contents of the buffer returned from basename function will are
	getting overwritten while still being used.

Approved by:  Alan Modra <amodra@bigpond.net.au>
              Message-ID: <20020318032031.GD1089@bubble.sa.bigpond.net.au>
2002-03-19 21:03:43 +00:00
Jan Hubicka
beb43bb9f4 * cpu-i386.c (bfd_x86_64_arch): Rename to "i386:x86-64"
* configure.tgt (x86_64-*-linux-gnu*): Configure i386 as native.

	* elf_x86_64.sh (ARCH): Set to i386:x86-64
	set libraries to default to lib64 paths.
2002-03-18 16:42:43 +00:00
Nick Clifton
eb1e0e807a Add AIX 64 shared library support and emulation layer for binutils 2002-03-18 12:46:27 +00:00
Nick Clifton
a1c259a138 Updated French translations 2002-03-18 09:44:22 +00:00
Alan Modra
862120bdbe * ldmain.c (main): Move .text readonly flag fudges from here..
* ldlang.c (lang_process): ..to here.
2002-03-18 02:55:51 +00:00
Alan Modra
d35a52e2a7 * ldlang.c (lang_check): Remove the word size check added in last
change.  Treat emitrelocations case as for relocatable links.
2002-03-14 10:39:46 +00:00
Nick Clifton
9ce88e60f3 Updated French translations 2002-03-13 10:35:17 +00:00
Alan Modra
30cba02509 * ldlang.c (lang_check): Do relocatable link checks first, so that
warn_mismatch can't override.  Check compatible and word size too.
2002-03-13 02:56:36 +00:00
Daniel Jacobowitz
84ec0e6d80 2002-03-07 Daniel Jacobowitz <drow@mvista.com>
* ld.texinfo: Wrap @menu in @ifnottex, not @ifinfo.
2002-03-08 04:07:21 +00:00
Jakub Jelinek
2d13d8c5ee * scripttempl/elf.sc: Only use DATA_SEGMENT_END() together with
DATA_SEGMENT_ALIGN.
2002-03-05 11:56:23 +00:00
H.J. Lu
b5090659de 2002-03-04 H.J. Lu <hjl@gnu.org>
* scripttempl/elf.sc: Put .preinit_array, .init_array and
	.fini_array in the data segment.
2002-03-04 20:40:14 +00:00
Alan Modra
f42ce16e2f * scripttempl/elf.sc: Correct syntax errors in 2002-03-01 commit. 2002-03-04 01:37:52 +00:00
Richard Henderson
de77b6ac8b * scripttempl/elf.sc (SECTIONS): Add entries for .preinit_array,
.init_array, and .fini_array.
2002-03-02 01:25:26 +00:00
Andreas Schwab
997e08c061 * emulparams/elf64_ia64.sh (OTHER_READONLY_SECTIONS): Don't fold
.IA64_unwind* in a relocatable link.
2002-02-20 10:48:25 +00:00
Nick Clifton
9a66911f91 Mark 2.12 branch 2002-02-20 10:46:54 +00:00
David O'Brien
6a7f963b84 match reality 2002-02-20 06:53:29 +00:00
Martin Schwidefsky
d86bcc1089 2002-02-19 Martin Schwidefsky <schwidefsky@de.ibm.com>
* emulparams/elf64_s390.sh (ARCH): Change to "s390:64-bit".
	* emulparams/elf_s390.sh (ARCH): Change to "s390:31-bit".
2002-02-19 18:58:04 +00:00
Tom Rix
69f284c74e Add support for -brtl, run time linking, to AIX ld. 2002-02-19 05:01:40 +00:00
Alan Modra
82bd7b59c9 * elf64-ppc.c (STFD_FR0_0R1, LFD_FR0_0R1, BLR): Define.
(struct ppc_link_hash_table): Add sfpr.
	(ppc64_elf_link_hash_table_create): Init it.
	(ppc64_elf_create_dynamic_sections): Split creation of .stub and
	.glink out to..
	(create_linkage_sections): ..here.  Make .sfpr too.
	(ppc64_elf_check_relocs): Call create_linkage_sections, and set
	dynobj early.
	(MIN_SAVE_FPR, MAX_SAVE_FPR): Define.
	(ppc64_elf_func_desc_adjust): Look for missing ._savef* and
	._restf* functions, and create as needed.
	(func_desc_adjust): Only force_local for shared libs.

	* emulparams/elf64ppc.sh (OTHER_TEXT_SECTIONS): Define.
2002-02-18 12:40:28 +00:00
David O'Brien
ac3e50bf05 2002-02-18 David O'Brien <obrien@FreeBSD.org>
* Makefile.in: Add new files earmelf_fbsd, eelf32ppc_fbsd,
	eelf_i386_fbsd, eelf64_ia64_fbsd, eelf_x86_64_fbsd, eelf64_sparc_fbsd,
	and eelf64alpha_fbsd.
	* configure.tgt(sparc64-*-freebsd, ia64-*-freebsd, i[3456]86-*-freebsd,
	x86_64-*-freebsd, arm-*-freebsd, alpha*-*-freebsd, powerpc-*-freebsd):
	use a FreeBSD-specific emulation rather than the psABI one.
	* emulparams/elf_fbsd.sh (ELF_INTERPRETER_NAME): Set appropriate value
	for all FreeBSD ELF systems.
	* emulparams/armelf_fbsd.sh: Bridge elf_fbsd.sh and the "native" psABI
	emulation.
	* emulparams/elf32ppc_fbsd.sh: Likewise.
	* emulparams/elf64_ia64_fbsd.sh: Likewise.
	* emulparams/elf64_sparc_fbsd.sh: Likewise.
	* emulparams/elf64alpha_fbsd.sh: Likewise.
	* emulparams/elf_i386_fbsd.sh: Likewise.
	* emulparams/elf_x86_64_fbsd.sh: Likewise.

Approved by:  Nick Clifton <nickc@cambridge.redhat.com>
              <m3pu33yy0b.fsf@north-pole.nickc.cambridge.redhat.com>
2002-02-18 09:38:01 +00:00
Nick Clifton
6ad738c5d9 Updated translations 2002-02-18 08:40:03 +00:00
Alan Modra
9673c93c26 * ld.texinfo (Output Section Fill): Fix amateur texinfo.
(FILL): Likewise.
2002-02-17 22:15:40 +00:00
Hans-Peter Nilsson
1c5e644702 * emultempl/mmo.em (mmo_after_open): Don't call
_bfd_mmix_check_all_relocs when producing ELF output.
2002-02-17 21:38:03 +00:00
Richard Henderson
8bb5751698 * emulparams/elf64alpha.sh (NOP): Adjust for big-endian
definition.  Emit a unop+nop pair.
2002-02-15 23:39:27 +00:00
Hans-Peter Nilsson
83c2d653c3 * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Also check
for presence of .MMIX.reg_contents.linker_allocated before early
	exit.
2002-02-15 06:50:19 +00:00
Hans-Peter Nilsson
49fda6c8d0 * NEWS: Mention support for MMIX. 2002-02-15 04:04:03 +00:00
Alan Modra
a139d329de * ld.texinfo (Output Section Fill): Describe fill expressions.
(FILL): Refer to the above.
2002-02-15 03:34:47 +00:00
Alan Modra
2c382fb6f5 Support arbitrary length fill patterns.
* ldexp.h (etree_value_type): Add "str" field.
	(union etree_union): Add "str" to "value" struct.
	(exp_bigintop): Declare.
	(exp_get_fill): Declare.
	* ldexp.c: Include "safe-ctype.h".
	(exp_intop): Set value.str to NULL.
	(exp_bigintop): New function.
	(new_rel): Pass in "str", and set new.str from it.
	(new_rel_from_section): Set new.str to NULL.
	(fold_name): Adjust calls to new_rel.
	(exp_fold_tree): Likewise.
	(exp_get_fill): New function.
	* ldgram.y (struct big_int bigint, fill_type *fill): New.
	(INT): Returns a "bigint".  Adjust all code handling INTs.
	(fill_opt): Returns a "fill".
	(fill_exp): Split out of fill_opt, use for FILL.
	* ldlang.h (struct _fill_type): New.
	(fill_type): Move typedef to ldexp.h.
	(lang_output_section_statement_type): "fill" is now a pointer.
	(lang_fill_statement_type): Likewise.
	(lang_padding_statement_type): Likewise.
	(lang_add_fill): Now takes a "fill_type *" param.
	(lang_leave_output_section_statement): Likewise.
	(lang_do_assignments): Likewise.
	(lang_size_sections): Likewise.
	(lang_leave_overlay_section): Likewise.
	(lang_leave_overlay): Likewise.
	* ldlang.c: Include ldgram.h after ldexp.h.
	(lang_output_section_statement_lookup): Adjust for fill_type change.
	(print_fill_statement): Likewise.
	(print_padding_statement): Likewise.
	(insert_pad): Now takes a "fill_type *" arg.
	(size_input_section): Likewise.
	(lang_size_sections_1): Likewise.
	(lang_size_sections): Likewise.
	(lang_do_assignments): Likewise.
	(lang_add_fill): Likewise.
	(lang_leave_output_section_statement): Likewise.
	(lang_leave_overlay_section): Likewise.
	(lang_leave_overlay): Likewise.
	Adjust all callers of the above function.
	* ldlex.l: Include ldgram.h after ldexp.h.  Allow hex numbers
	starting with "0X" as well as "0x".  Return bigint.str for hex
	numbers starting with "0x" or "0X", zero bigint.str otherwise.
	Always use base 16 for numbers starting with "$".
	* ldmain.c: Include ldgram.h after ldexp.h.
	* ldwrite.c (build_link_order): Use bfd_data_link_order in place
	of bfd_fill_link_order.
	* pe-dll.c: Adjust lang_do_assignments calls.
	* emultempl/elf32.em: Likewise.
	* emultempl/hppaelf.em: Likewise.
	* emultempl/ppc64elf.em: Likewise.
	* emultempl/beos.em: Include ldgram.h after ldexp.h, adjust
	lang_add_assignment call.
	* emultempl/pe.em: Likewise.
2002-02-15 02:11:05 +00:00
Alan Modra
313e35ee7c * ld.texinfo (VERSION scripts): Symbol names are globbing patterns.
* ldgram.y (lang_new_vers_regex):  Rename to lang_new_vers_pattern;
	the pattern in question is not a regexp.
	* ldlang.c:  Likewise.
	* ldlang.h:  Likewise.
	* ldlex.l (V_IDENTIFIER):  Allow '[', ']', '-', '!', and '^' also.
2002-02-14 04:24:33 +00:00
Jakub Jelinek
2d20f7bf67 * ldlex.l (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens.
* ldgram.y (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): New tokens.
	(exp): Add DATA_SEGMENT_ALIGN (exp, exp) and DATA_SEGMENT_END (exp).
	* ldexp.c (exp_data_seg): New variable.
	(exp_print_token): Handle DATA_SEGMENT_ALIGN and DATA_SEGMENT_END.
	(fold_binary): Handle DATA_SEGMENT_ALIGN.
	(exp_fold_tree): Handle DATA_SEGMENT_END.
	Pass allocation_done when recursing instead of hardcoding
	lang_allocating_phase_enum.
	* ldexp.h (exp_data_seg): New.
	* ldlang.c (lang_size_sections_1): Renamed from lang_size_sections.
	(lang_size_sections): New.
	* ld.texinfo (DATA_SEGMENT_ALIGN, DATA_SEGMENT_END): Document.
	* scripttempl/elf.sc: Use DATA_SEGMENT_ALIGN and DATA_SEGMENT_END
	if COMMONPAGESIZE is defined.
	* emulparams/elf_i386.sh (COMMONPAGESIZE): Set to 4K.
	* emulparams/elf32_sparc.sh (COMMONPAGESIZE): Set to 8K.
	* emulparams/elf64_sparc.sh (COMMONPAGESIZE): Set to 8K.
	* emulparams/elf64alpha.sh (COMMONPAGESIZE): Set to 8K.
	* emulparams/elf64_ia64.sh (COMMONPAGESIZE): Set to 16K for shared
	libraries only.
2002-02-12 14:50:08 +00:00
Alan Modra
06880219d1 * Makefile.in: Regenerate. 2002-02-11 05:18:20 +00:00
Daniel Jacobowitz
37b0ac0fc8 2002-02-10 Daniel Jacobowitz <drow@mvista.com>
* lexsup.c: Remove strtoul declaration.
2002-02-11 02:41:37 +00:00
Daniel Jacobowitz
4e5bae56d4 2002-02-10 Daniel Jacobowitz <drow@mvista.com>
* ldmain.c: Add prototype for main ().
	* lexsup.c: Guard declaration of strtoul with HAVE_STDLIB_H.
	* emultempl/lnk960.em (lnk960_choose_target): Function should
	take two arguments.
2002-02-10 19:12:13 +00:00
Alan Modra
1e28151506 * ldlang.c (entry_section): New initialised variable.
(lang_finish): Use it.
	* ldlang.h (entry_section): Declare.
	* emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Set
	entry_section to ".opd".
2002-02-10 10:55:23 +00:00
Chris Demetriou
f92d92ffd1 Fix date in last entry. I should stop living in the past. 2002-02-10 02:50:09 +00:00
Chris Demetriou
0a9c1c8e0c 2002-02-08 Chris Demetriou <cgd@broadcom.com>
* ld.texinfo (Options): Add back in -nostdlib documentation,
        which had been inadvertently removed.
2002-02-10 00:40:38 +00:00
Hans-Peter Nilsson
74c44237fd * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Adjust
register section vma to a sane value after emitting error.  Make
	fatal conditions cause program exit when emitting message.
2002-02-09 05:07:07 +00:00
Nick Clifton
5e37cc4676 Fix compile time warning messages 2002-02-08 12:12:15 +00:00
Alexandre Oliva
2d92cb7d27 Contribute sh64-elf.
2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
* emulparams/shelf32.sh (STACK_ADDR): Define as formerly defined
in OTHER_RELOCATABLE_SECTIONS.
2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
* emulparams/shelf32.sh (STACK_ADDR): Define.
(OTHER_RELOCATABLE_SECTIONS): Renamed to...
(OTHER_SECTIONS): this.	 Removed stack settings.
* emulparams/shelf64.sh (OTHER_RELOCATABLE_SECTIONS): Do not set.
(OTHER_SECTIONS): Reset after sourcing shelf32.sh.
2001-03-12  DJ Delorie	<dj@redhat.com>
* emultempl/sh64elf.em (sh64_elf_$_before_allocation): Disable
relaxing if any shmedia or mixed sections are found.
2001-03-07  DJ Delorie	<dj@redhat.com>
* emultempl/sh64elf.em (sh64_elf_before_allocation): Pass f to
einfo.	Gracefully decline to output to non-elf formats.
2001-03-06  Hans-Peter Nilsson	<hpn@redhat.com>
* emulparams/shelf64.sh (OTHER_RELOCATING_SECTIONS) <.stack>:
Default to _end aligned to next multiple of 0x40000, plus 0x40000.
* emulparams/shelf32.sh: Ditto.
2001-01-14  Hans-Peter Nilsson	<hpn@cygnus.com>
* emulparams/shelf32.sh (OTHER_RELOCATING_SECTIONS): Tweak
comment.
2001-01-10  Ben Elliston  <bje@redhat.com>
* emulparams/shelf32.sh (OTHER_RELOCATING_SECTIONS): Avoid
non-portable shell constructs. From Hans-Peter Nilsson.
2001-01-09  Hans-Peter Nilsson	<hpn@cygnus.com>
* emulparams/shelf64.sh (EXTRA_EM_FILE): Define empty.
* Makefile.am (eshelf64.c, eshlelf64.c, eshlelf32.c): Adjust
dependencies to the shell script include chain.
* Makefile.in: Regenerate.
2001-01-06  Hans-Peter Nilsson	<hpn@cygnus.com>
* emultempl/sh64elf.em: Update and tweak comments.
(sh64_elf_${EMULATION_NAME}_after_allocation): Always allocate and
make a .cranges section SEC_IN_MEMORY.
2000-12-30  Hans-Peter Nilsson	<hpn@cygnus.com>
* emultempl/sh64elf.em
(sh64_elf_${EMULATION_NAME}_before_allocation): Don't stop when
.cranges section found to be necessary; continue and set stored
section contents flags for sections with non-mixed contents.
Use a struct sh64_section_data container and sh64_elf_section_data
to store contents-type flags.
Remove unused update of "isec".
(sh64_elf_${EMULATION_NAME}_after_allocation): Only process
sections marked SHF_SH5_ISA32_MIXED.  Use sh64_elf_section_data to
access contents-type flags.  Assert that the associated container
is initialized.	 Use that container, not elf_gp_size, to hold size
of linker-generated cranges contents.
2000-12-18  Hans-Peter Nilsson	<hpn@cygnus.com>
* emultempl/sh64elf.em
(sh64_elf_${EMULATION_NAME}_before_allocation): Exit early if
there's already a .cranges section.  When section flag difference
is found, don't NULL-check cranges a second time.  Tweak comments.
(sh64_elf_${EMULATION_NAME}_after_allocation): Use size after
merging, not max size, as size of ld-generated .cranges contents.
Don't set ELF section flags in output section.	When checking for
needed .cranges descriptors, don't use a variable; compare
incoming ELF section flags directly to SHF_SH5_ISA32_MIXED.  Tweak
comments.
2000-12-18  Hans-Peter Nilsson	<hpn@cygnus.com>
* emultempl/sh64elf.em: New file.
* Makefile.am (eshelf32.c, eshlelf32.c): Adjust dependencies.
* Makefile.in: Regenerate.
* emulparams/shelf32.sh (OUTPUT_FORMAT): Only set if not set.
(OTHER_RELOCATING_SECTIONS): Ditto.
(EXTRA_EM_FILE): New, set to sh64elf if not set.
* emulparams/shlelf32.sh: Stub out all settings except
OUTPUT_FORMAT.	Source shelf32.sh.
* emulparams/shelf64.sh: Similar, but also keep ELF_SIZE and
OTHER_RELOCATING_SECTIONS.
(OTHER_RELOCATING_SECTIONS): Remove .cranges.
* emulparams/shlelf64.sh: Stub out all settings except
OUTPUT_FORMAT.	Source shelf64.sh.
2000-12-15  Hans-Peter Nilsson	<hpn@cygnus.com>
* emulparams/shelf64.sh (OTHER_RELOCATING_SECTIONS): Include
.cranges section.
(DATA_START_SYMBOLS): Define, provide ___data.
(OTHER_READONLY_SYMBOLS): Define, provide ___rodata and align to 8
for consecutive .data section.
(OTHER_GOT_SECTIONS): Define, align to 8 for consecutive .bss
section after .data section.
* emulparams/shlelf64.sh: Ditto.
* emulparams/shelf32.sh: Ditto.
(ALIGNMENT): Define to 8.
* emulparams/shelf32.sh: Ditto.
2000-12-12  Hans-Peter Nilsson	<hpn@cygnus.com>
* configure.tgt (sh64-*-elf*): Assign targ_extra_libpath to get
built-in linker scripts.
2000-11-30  Hans-Peter Nilsson	<hpn@cygnus.com>
* emulparams/shlelf64.sh: New.
* emulparams/shelf64.sh: New.
* configure.tgt (sh64-*-elf*): Add shelf64 and shlelf64 to
targ_extra_emuls.
* Makefile.am: Add support for shlelf64 and shelf64.
* Makefile.in: Regenerate.
2000-11-29  Hans-Peter Nilsson	<hpn@cygnus.com>
* configure.tgt (sh64-*-elf*): Add shelf as default.
Add shlelf to targ_extra_emuls.
2000-11-24  Hans-Peter Nilsson	<hpn@cygnus.com>
* emulparams/shelf32.sh: New file.
* emulparams/shlelf32.sh: New file.
* Makefile.am: Add support for shlelf32 and shelf32.
* configure.tgt: Map sh64-*-elf* to shlelf32 and shelf32.
* Makefile.in: Regenerate.
2002-02-08 06:39:01 +00:00