Alan Modra
1049f94e8e
Correct spelling of "relocatable".
2003-06-25 06:40:27 +00:00
Jakub Jelinek
36af4a4e51
bfd/
...
* elflink.h (elf_link_add_object_symbols): Use !info->executable
instead of info->shared where appropriate.
(bfd_elfNN_size_dynamic_sections, elf_link_output_extsym): Likewise.
* elflink.c (_bfd_elf_create_got_section): Likewise.
(_bfd_elf_link_create_dynamic_sections): Likewise.
(_bfd_elf_link_assign_sym_version): Likewise.
* elf32-i386.c (elf_i386_size_dynamic_sections): Create .interp section
and DT_DEBUG dynamic tag even for position independent executables.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
* elf32-s390.c (elf_s390_size_dynamic_sections: Likewise.
* elf64-ppc.c (ppc64_elf_size_dynamic_sections: Likewise.
* elf64-s390.c (elf_s390_size_dynamic_sections: Likewise.
* elf64-x86-64.c (elf64_x86_64_size_dynamic_sections: Likewise.
* elfxx-ia64.c (elfNN_ia64_size_dynamic_sections: Likewise.
* elf32-sparc.c (elf32_sparc_size_dynamic_sections: Likewise.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections: Likewise.
* elf64-sparc.c (sparc64_elf_size_dynamic_sections: Likewise.
include/
* bfdlink.h (struct bfd_link_info): Add pie and executable
bits.
ld/
* lexsup.c (OPTION_PIE): Define.
(ld_options): Add -pie and --pic-executable options.
(parse_args): Handle OPTION_PIE.
* ldmain.c (main): Initialize link_info.pie and
link_info.executable.
* genscripts.sh: Generate PIE scripts.
* ld.texinfo: Document -pie and --pic-executable options.
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open):
(gld${EMULATION_NAME}_place_orphan): Likewise.
(gld${EMULATION_NAME}_get_script): Include PIE scripts.
* scripttempl/elf.sc: In PIE scripts set . the same way as in
shared scripts.
* emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Set to yes.
* emulparams/elf64_ia64.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf32ppc.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf64ppc.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf_x86_64.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf_s390.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf32_sparc.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf64_sparc.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf64alpha.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf64_s390.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Likewise.
2003-05-30 15:50:12 +00:00
Alexandre Oliva
8aae64e67e
* ldmain.h (overflow_cutoff_limit): Declare.
...
* ldmain.c (overflow_cutoff_limit): Define, initialized to 10.
(reloc_overflow): Limit error messages based on it.
* lexsup.c (parse_args) <OPTION_VERBOSE>: Set cutoff to
unlimited.
2003-05-07 04:14:57 +00:00
Nick Clifton
5ed6aba41c
Fix memory leaks
2003-03-31 18:13:25 +00:00
Alan Modra
3bcf55573d
* ldemul.c (ldemul_add_options, ldemul_handle_option): New functions.
...
(ldemul_parse_args): Return bfd_boolean. Formatting.
* ldemul.h (ldemul_add_options, ldemul_handle_option): Declare.
(ldemul_parse_args): Adjust.
(struct ld_emulation_xfer_struct): Add add_options and handle_option.
Return bfd_boolean from parse_args.
* lexsup.c (parse_args): Malloc shortopts, longopts and
really_longopts. Call ldemul_add_options and ldemul_handle_option.
* emultempl/aix.em (gld${EMULATION_NAME}_add_options): Split out from
gld${EMULATION_NAME}_parse_args.
(gld${EMULATION_NAME}_handle_option): Likewise.
(ld_${EMULATION_NAME}_emulation): Adjust initializer.
* emultempl/armcoff.em: As for aix.em, but remove parse_args.
* emultempl/beos.em: Likewise.
* emultempl/pe.em: Likewise.
* emultempl/ticoff.em: Likewise.
* emultempl/elf32.em: Likewise. Don't duplicate long options either.
(gld${EMULATION_NAME}_add_sysroot): Prototype.
* emultempl/armelf.em (PARSE_AND_LIST_LONGOPTS): Don't duplicate
options.
* emultempl/hppaelf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/ppc32elf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/ppc64elf.em (PARSE_AND_LIST_LONGOPTS): Likewise.
* emultempl/armelf_oabi.em (ld_${EMULATION_NAME}_emulation): Adjust
initializer.
* emultempl/generic.em: Likewise.
* emultempl/gld960.em: Likewise.
* emultempl/gld960c.em: Likewise.
* emultempl/linux.em: Likewise.
* emultempl/lnk960.em: Likewise.
* emultempl/m68kcoff.em: Likewise.
* emultempl/mipsecoff.em: Likewise.
* emultempl/sunos.em: Likewise.
* emultempl/vanilla.em: Likewise.
* emultempl/netbsd.em (gldnetbsd_before_parse): Prototype.
2003-02-28 01:32:31 +00:00
Nick Clifton
ae9a127f86
Fix the behaviour of --allow-shlib-undefined, so that it does what it claims
...
to do. Add an inverse switch. Update the documentation.
2003-02-17 18:24:40 +00:00
Alan Modra
d5cd393307
* ldmain.c (main): Init "strip_discarded".
...
* lexsup.c (OPTION_STRIP_DISCARDED): Define.
(OPTION_NO_STRIP_DISCARDED): Define.
(ld_options): Add "strip-discarded" and "no-strip-discarded".
(parse_args): Handle them.
2002-12-23 12:05:38 +00:00
Nick Clifton
312b768e2f
Change linker's default behaviour - it will now reject binary files whoes
...
architecture it does not recognise, unless it has explicitly told to accept
them.
2002-12-23 10:45:03 +00:00
Alan Modra
b34976b65a
s/boolean/bfd_boolean/ s/true/TRUE/ s/false/FALSE/. Simplify
...
comparisons of bfd_boolean vars with TRUE/FALSE. Formatting.
2002-11-30 08:39:46 +00:00
Daniel Jacobowitz
df2a731323
* emultempl/aix.em: Use include <> for generated headers.
...
* emultempl/beos.em: Likewise.
* emultempl/elf32.em: Likewise.
* emultempl/pe.em: Likewise.
* ldctor.c: Likewise.
* ldexp.c: Likewise.
* ldfile.c: Likewise.
* ldlang.c: Likewise.
* ldlex.c: Likewise.
* ldlex.l: Likewise.
* ldmain.c: Likewise.
* ldmisc.c: Likewise.
* ldwrite.c: Likewise.
* lexsup.c: Likewise.
* mri.c: Likewise.
* pe-dll.c: Likewise.
2002-10-30 03:57:39 +00:00
Nick Clifton
63fd3b826b
Add new command line option "--no-omagic" which undoes the effects of -N.
2002-10-23 13:24:10 +00:00
H.J. Lu
c04c958616
2002-10-08 H.J. Lu <hjl@gnu.org>
...
* ldlang.c (lang_file_exist): Removed.
(new_afile): Revert the last change.
* ldlang.h (lang_file_exist): Removed.
* lexsup.c (parse_args): Revert the last change.
2002-10-08 20:12:45 +00:00
Nick Clifton
53b2a62f07
Abort if the filename to be added matches the linker output filename.
2002-10-07 16:08:21 +00:00
H.J. Lu
3194163592
Check symbols with undefine version.
2002-08-08 03:50:18 +00:00
H.J. Lu
aa713662e8
2002-05-21 H.J. Lu (hjl@gnu.org)
...
* emultempl/elf32.em (gld${EMULATION_NAME}_parse_args): Handle
"-z muldefs".
(gld${EMULATION_NAME}_list_options): Add "-z muldefs".
* ld.texinfo: Updated for --allow-multiple-definition and
"-z muldefs".
* ldmain.c (main): Initialize the allow_multiple_definition
field to false.
* lexsup.c (OPTION_ALLOW_MULTIPLE_DEFINITION): New.
(ld_options): Add --allow-multiple-definition.
(parse_args): Support OPTION_ALLOW_MULTIPLE_DEFINITION.
2002-05-22 05:08:31 +00:00
Kazu Hirata
b7a26f91f4
* ld.h: Fix formatting.
...
* ldexp.c: Likewise.
* ldfile.c: Likewise.
* ldlang.c: Likewise.
* ldmain.c: Likewise.
* lexsup.c: Likewise.
* pe-dll.c: Likewise.
2002-05-03 13:48:55 +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
89894c62c6
* lexsup.c (parse_args): Don't pass shortopts to second call to
...
getopt functions. Restore optind rather than decrementing before
second call. Remove errind as it now duplicates last_optind.
2001-12-13 09:38:11 +00:00
Nick Clifton
ff291a48c0
Insert 'PROGRAM' into the text string describing the -N option so that it is
...
easier to translate into foreign languages.
2001-12-07 12:41:21 +00:00
Chris Demetriou
361b220ebe
2001-11-01 Chris Demetriou <cgd@broadcom.com>
...
* ld.texinfo (Options): Document new option, -nostdlib.
* lexsup.c (OPTION_NOSTDLIB): New definition.
(ld_options): Add entry for "nostdlib".
(parse_args): Handle OPTIONS_NOSTDLIB.
* ldfile.c (ldfile_add_library_path): Don't add directories
to the search path if they weren't specified on the command line
and -nostdlib was specified.
* ld.h (ld_config_type): New member only_cmd_line_lib_dirs.
2001-11-02 01:13:09 +00:00
Nick Clifton
210a7bd13d
Fix infinite parsing loop
2001-10-31 15:41:19 +00:00
Alan Modra
d32820f2fa
* ldver.h (ld_program_version): Remove declaration.
...
* lexsup.c (parse_args): Move printing of copyright message..
* ldver.c (ldversion): .. to here.
Use BFD_VERSION_STRING in place of BFD_VERSION.
(ld_program_version): Remove.
* Makefile.am (Makefile): Depend on bfd/configure.in
Run "make dep-am"
* Makefile.in: Regenerate.
2001-10-02 06:04:23 +00:00
Alan Modra
4818e05fe5
From John Reiser <jreiser@BitWagon.com>
...
* ldlang.c (lang_common): Conditionally inhibit Common allocation.
* lexsup.c: Add --no-define-common commandline option.
* ldgram.y: Add INHIBIT_COMMON_ALLOCATION script command.
* ldlex.l: Likewise.
* ld.h: Add command_line.inhibit_common_definition.
* ldmain.c (main): Initialize.
* ld.texinfo: Document.
2001-09-29 12:57:54 +00:00
H.J. Lu
3882b01078
Locale changes from Bruno Haible <haible@clisp.cons.org>.
2001-09-19 05:33:36 +00:00
Jakub Jelinek
db6751f2e7
* elf-bfd.h (enum elf_reloc_type_class): New.
...
(struct elf_backend_data): Add elf_backend_reloc_type_class.
(_bfd_elf_reloc_type_class): New.
* elfxx-target.h (elf_backend_reloc_type_class): Define.
(elfNN_bed): Add elf_backend_reloc_type_class.
* elf.c (_bfd_elf_reloc_type_class): New.
* elf32-i386.c (elf_i386_check_relocs): Set DF_TEXTREL if the reloc
is against read-only section.
(elf_i386_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(elf_i386_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elf32-sparc.c (elf32_sparc_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
(elf32_sparc_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(elf32_sparc_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elf64-sparc.c (sparc64_elf_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
(sparc64_elf_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(sparc64_elf_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add reltext field.
(elfNN_ia64_hash_table_create): Clear ia64_info.
(get_reloc_section): Set DF_TEXTREL if the reloc is against read-only
section.
(elfNN_ia64_size_dynamic_sections): Use ia64_info->reltext flag
instead of looking up section names for DT_TEXTREL.
(elfNN_ia64_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elflink.h (size_dynamic_sections): Add spare DT_NULL tags.
(struct elf_link_sort_rela): New.
(elf_link_sort_cmp1, elf_link_sort_cmp2, elf_link_sort_relocs): New.
(elf_bfd_final_link): Call elf_link_sort_relocs.
Convert one spare DT_NULL into DT_RELCOUNT resp. DT_RELACOUNT if
necessary.
* bfdlink.h (struct bfd_link_info): Add combreloc and
spare_dynamic_tags fields.
* emultempl/elf32.em (place_orphan): Place orphan .rel* sections
into .rel.dyn resp. .rela.dyn if combreloc.
(get_script): If .x linker script is equal to .xn, only put it
once into the binary.
Add .xc and .xsc scripts.
(parse_args): Handle -z combreloc and -z nocombreloc.
* scripttempl/elf.sc (.rela.sbss): Fix a typo.
For .xc and .xsc scripts put all .rel* or .rela* input sections
but .rel*.plt and PLT-like sections into .rel.dyn resp. .rela.dyn.
* genscripts.sh (GENERATE_COMBRELOC_SCRIPT): Set if SCRIPT_NAME
is elf.
Strip trailing whitespace from script.
Generate .xc and .xsc scripts if requested.
* ldmain.c (main): Initialize link_info.combreloc and
link_info.spare_dynamic_tags.
* lexsup.c (OPTION_SPARE_DYNAMIC_TAGS): Define.
(ld_options): Add --spare-dynamic-tags option.
(parse_args): Likewise.
* ld.texinfo: Document -z combreloc and -z nocombreloc.
* ldint.texinfo: Document .xc and .xsc linker scripts.
* NEWS: Add notes about -z combreloc and SHF_MERGE.
2001-08-23 15:14:18 +00:00
Nick Clifton
b9a8de1ea3
Make --verbose always display linker script
2001-08-12 07:59:28 +00:00
Hans-Peter Nilsson
605d9b3a4f
* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
...
Update for API change in bfd_elf${ELFSIZE}_size_dynamic_sections.
* mpw-elfmips.c (gldelf32ebmip_before_allocation): Ditto.
* ld.h (args_type): Remove member export_dynamic. All users
changed to use struct bfd_link_info member.
2001-06-18 22:20:57 +00:00
H.J. Lu
5af9fd8b93
2001-06-15 H.J. Lu <hjl@gnu.org>
...
* lexsup.c (parse_args); Save optind to report unrecognized
option.
2001-06-16 03:41:45 +00:00
Hans-Peter Nilsson
2a096f0438
* lexsup.c (parse_args) <case OPTION_EXPORT_DYNAMIC, case 'E'>:
...
Set new link_info member export_dynamic.
* ldmain.c (main): Initialize new link_info member export_dynamic.
2001-06-15 13:02:23 +00:00
Nick Clifton
506eee2253
Improve Solaris compatability
2001-05-22 14:00:18 +00:00
H.J. Lu
d1b2b2dcb9
2001-05-02 H.J. Lu <hjl@gnu.org>
...
* ldfile.c: Include "libiberty.h".
* ldlex.l: Likewise.
* ldmisc.c (buystring): Removed.
* ldmisc.h: Likewise.
* ldfile.c: Replace buystring with xstrdup.
* ldlang.c: Likewise.
* ldlex.l: Likewise.
* ldmain.c: Likewise.
* ldmisc.c: Likewise.
* lexsup.c: Likewise.
* mpw-eppcmac.c: Likewise.
2001-05-02 16:42:55 +00:00
J.T. Conklin
7ce691aec4
* ld.texinfo: Document --fatal-warnings.
...
* ld.1: Regenerate.
* ldmisc.c (vfinfo): Set flag to inhibit making executable if
warnings have been turned into errors.
* lexsup.c (OPTION_WARN_FATAL): Define.
(ld_options): Entry for --fatal-warnings.
(parse_args): Handle OPTION_WARN_FATAL.
* ld.h (ld_config_type): Add fatal_warnings field.
2001-04-13 02:22:23 +00:00
Jakub Jelinek
f5fa8ca231
bfd/
...
* libbfd-in.h (_bfd_merge_section): New.
(_bfd_write_merged_section): New.
(_bfd_merged_section_offset): New.
* libbfd.h: Rebuilt.
* linker.c (_bfd_generic_link_output_symbols): Handle
discard_sec_merge.
* aoutx.h (aout_link_write_symbols): Likewise.
* pdp11.c (aout_link_write_symbols): Likewise.
* elflink.h (elf_link_add_object_symbols): Call _bfd_merge_section.
(elf_bfd_final_link): Adjust global symbols pointing into SEC_MERGE
sections.
(elf_link_sec_merge_syms): New.
(elf_link_input_bfd): Call _bfd_merged_section_offset
and _bfd_write_merged_section.
Handle discard_sec_merge.
* elf-bfd.h (struct elf_link_hash_table): Add merge_info
field.
(struct bfd_elf_section_data): Likewise.
* elf.c (_bfd_elf_make_section_from_shdr): Set SEC_MERGE and
SEC_STRINGS section flags and entsize from their ELF counterparts.
(_bfd_elf_link_hash_table_init): Initialize merge_info.
(elf_fake_sections): Set SHF_MERGE, SHF_STRINGS and sh_entsize
from their BFD counterparts.
* merge.c: New file.
* Makefile.am: Add strtab.lo.
* Makefile.in: Rebuilt.
include/
* bfdlink.h (bfd_link_discard): Add discard_sec_merge.
gas/
* config/obj-elf.c (obj_elf_change_section): Add entsize argument,
handle SHF_MERGE and SHF_STRINGS.
(obj_elf_parse_section_letters): Set SHF_MERGE and SHF_STRINGS.
(obj_elf_section): Allow additional argument specifying entity size.
* write.c (adjust_reloc_syms): Keep relocations against local symbols
in SEC_MERGE sections.
ld/
* ldmain.c (main): Default to discard_sec_merge.
* lexsup.c (OPTION_DISCARD_NONE): Define.
(ld_options): Add --discard-none.
(parse_args): Handle OPTION_DISCARD_NONE.
* ldlang.c (wild_doit): SEC_MERGE should be set in the output
section only if SEC_MERGE and SEC_STRINGS flags and entsize of
all its input sections match.
2001-04-13 00:34:36 +00:00
Nick Clifton
a2b64bede3
Fixtypos in ChangeLogs, fix copyright dates in files
2001-03-13 06:14:29 +00:00
Alan Modra
577a062318
Extend "ld --unique" functionality.
2001-01-14 04:36:35 +00:00
Nick Clifton
b7ed8fad53
formatting fix
2001-01-13 19:45:52 +00:00
Nick Clifton
d0398d6ac6
Update copyright date to 2001
2001-01-12 18:01:56 +00:00
Nick Clifton
0fc3347a5c
Fix problems with new EXACTLY_TWO_DASHES command line switch option.
2000-12-31 19:56:04 +00:00
Nick Clifton
e4897a3288
Requre that long options starting with 'o' only accept a double dash prefix.
2000-12-28 19:54:33 +00:00
Nick Clifton
b79e8c7865
Add link option to allow undefiedn symbols in shared libraries
2000-12-12 20:53:02 +00:00
Chandra Chavva
ea20a7da87
Added new option --target-help.
2000-10-17 20:10:20 +00:00
Kazu Hirata
e47d05ade6
2000-10-10 Kazu Hirata <kazu@hxi.com>
...
* deffile.h: Fix formatting.
* lexsup.c: Likewise.
* mri.c: Likewise.
2000-10-11 00:16:07 +00:00
Kazu Hirata
5cc18311d9
2000-09-29 Kazu Hirata <kazu@hxi.com>
...
* deffile.h: Fix formatting.
* ld.h: Likewise.
* ldctor.h: Likewise.
* ldemul.h: Likewise.
* ldexp.h: Likewise.
* ldfile.h: Likewise.
* ldlang.h: Likewise.
* lexsup.c: Likewise.
* mri.c: Likewise.
* pe-dll.c: Likewise.
2000-09-29 13:21:41 +00:00
Alan Modra
a854a4a7c8
--split-by-reloc, --split-by-file extensions. --unique option.
2000-09-05 03:05:19 +00:00
Nick Clifton
3a9d486c00
Add .gnu.linkonce.wi.* to .debug_info sections.
2000-09-02 20:43:22 +00:00
Nick Clifton
28c309a287
Add optional style argument to --demangle switch.
2000-07-20 18:02:56 +00:00
H.J. Lu
e0ee487bb5
2000-07-19 H.J. Lu <hjl@gnu.org>
...
* emulparams/elf32mcore.sh (PARSE_AND_LIST_ARGS): Removed.
(PARSE_AND_LIST_PROLOGUE): New.
(PARSE_AND_LIST_LONGOPTS): Likewise.
(PARSE_AND_LIST_OPTIONS): Likewise.
(PARSE_AND_LIST_ARGS_CASES): Likewise.
* ldmain.c (main): Clear link_info.flags and link_info.flags_1.
* lexsup.c (ld_options): Comment out 'z'.
(parse_args): Likewise.
* emultempl/elf32.em: Include "elf/common.h".
(gld_${EMULATION_NAME}_parse_args): Defined. Handle some -z
options.
(gld_${EMULATION_NAME}_list_options): Likewise.
* ld.texinfo: Add documentation for the recognized -z options.
2000-07-20 03:25:10 +00:00
Alan Modra
227aeb0758
Fix --section-start=xxxx
2000-07-08 13:35:05 +00:00
Nick Clifton
176355da99
Patch from Thomas de Lellis to implement --section-start
2000-05-22 21:58:40 +00:00