H.J. Lu
24718e3ba5
bfd/
...
2006-05-30 H.J. Lu <hongjiu.lu@intel.com>
* bfd.c (bfd_emul_get_maxpagesize): New.
(bfd_elf_set_pagesize): Likewise.
(bfd_emul_set_maxpagesize): Likewise.
(bfd_emul_get_commonpagesize): Likewise.
(bfd_emul_set_commonpagesize): Likewise.
* bfd-in2.h: Regenerated.
* elf-bfd.h (elf_backend_data): Add commonpagesize.
(xvec_get_elf_backend_data): New.
(get_elf_backend_data): Use xvec_get_elf_backend_data.
* elf32-arm.c (elf32_arm_vxworks_bed): Remove const.
* elfxx-target.h (elfNN_bed): Likewise.
* elf32-arm.c (ELF_COMMONPAGESIZE): Defined.
* elf32-mips.c (ELF_COMMONPAGESIZE): Likewise.
* elf32-ppc.c (ELF_COMMONPAGESIZE): Likewise.
* elf32-sh.c (ELF_COMMONPAGESIZE): Likewise.
* elf32-sh64.c (ELF_COMMONPAGESIZE): Likewise.
* elf32-sparc.c (ELF_COMMONPAGESIZE): Likewise.
* elf64-alpha.c (ELF_COMMONPAGESIZE): Likewise.
* elf64-ppc.c (ELF_COMMONPAGESIZE): Likewise.
* elf64-sparc.c (ELF_COMMONPAGESIZE): Likewise.
* elf64-x86-64.c (ELF_COMMONPAGESIZE): Likewise.
* elfn32-mips.c (ELF_COMMONPAGESIZE): Likewise.
* elfxx-ia64.c (ELF_COMMONPAGESIZE): Likewise.
* elfxx-target.h (ELF_COMMONPAGESIZE): Define if not defined.
(elfNN_bed): Initialize commonpagesize with ELF_COMMONPAGESIZE.
* targets.c (bfd_find_target): Support NULL abfd.
ld/
2006-05-30 H.J. Lu <hongjiu.lu@intel.com>
* emulparams/arcelf.sh (MAXPAGESIZE): Changed to
"CONSTANT (MAXPAGESIZE)".
* emulparams/armelf_nbsd.sh: Likewise.
* emulparams/armelf_vxworks.sh: Likewise.
* emulparams/armnto.sh: Likewise.
* emulparams/armsymbian.sh: Likewise.
* emulparams/crislinux.sh: Likewise.
* emulparams/elf32_i860.sh: Likewise.
* emulparams/elf32_i960.sh: Likewise.
* emulparams/elf32am33lin.sh: Likewise.
* emulparams/elf32bfinfd.sh: Likewise.
* emulparams/elf32bmipn32-defs.sh: Likewise.
* emulparams/elf32frvfd.sh: Likewise.
* emulparams/elf32i370.sh: Likewise.
* emulparams/elf32lppcnto.sh: Likewise.
* emulparams/elf32mcore.sh: Likewise.
* emulparams/elf32openrisc.sh: Likewise.
* emulparams/elf32ppcnto.sh: Likewise.
* emulparams/elf32ppcwindiss.sh: Likewise.
* emulparams/elf32vax.sh: Likewise.
* emulparams/elf32xc16x.sh: Likewise.
* emulparams/elf32xc16xl.sh: Likewise.
* emulparams/elf32xc16xs.sh: Likewise.
* emulparams/elf64_aix.sh: Likewise.
* emulparams/elf64hppa.sh: Likewise.
* emulparams/elf64mmix.sh: Likewise.
* emulparams/elf_i386_be.sh: Likewise.
* emulparams/elf_i386_chaos.sh: Likewise.
* emulparams/elf_i386_ldso.sh: Likewise.
* emulparams/hppa64linux.sh: Likewise.
* emulparams/hppalinux.sh: Likewise.
* emulparams/hppaobsd.sh: Likewise.
* emulparams/i386lynx.sh: Likewise.
* emulparams/i386moss.sh: Likewise.
* emulparams/i386nto.sh: Likewise.
* emulparams/i386nw.sh: Likewise.
* emulparams/m32relf_linux.sh: Likewise.
* emulparams/m68kpsos.sh: Likewise.
* emulparams/or32elf.sh: Likewise.
* emulparams/pjelf.sh: Likewise.
* emulparams/pjlelf.sh: Likewise.
* emulparams/ppclynx.sh: Likewise.
* emulparams/ppcnw.sh: Likewise.
* emulparams/shelf32_nbsd.sh : Likewise.
* emulparams/shelf_nbsd.sh: Likewise.
* emulparams/shelf_nto.sh: Likewise.
* emulparams/shlelf_nto.sh: Likewise.
* emulparams/xtensa-config.sh: Likewise.
* emulparams/armelf_linux.sh (MAXPAGESIZE): Changed to
"CONSTANT (MAXPAGESIZE)".
(COMMONPAGESIZE): Changed to "CONSTANT (COMMONPAGESIZE)".
* emulparams/elf32_sparc.sh: Likewise.
* emulparams/elf32bmip.sh: Likewise.
* emulparams/elf32ppccommon.sh: Likewise.
* emulparams/elf64_ia64.sh: Likewise.
* emulparams/elf64_s390.sh: Likewise.
* emulparams/elf64_sparc.sh: Likewise.
* emulparams/elf64alpha.sh: Likewise.
* emulparams/elf64ppc.sh: Likewise.
* emulparams/elf_i386.sh: Likewise.
* emulparams/elf_i386_vxworks.sh: Likewise.
* emulparams/elf_s390.sh: Likewise.
* emulparams/elf_x86_64.sh: Likewise.
* emulparams/shlelf32_linux.sh: Likewise.
* emulparams/shlelf_linux.sh: Likewise.
* emulparams/elf32bmipn32.sh (COMMONPAGESIZE): Changed to
"CONSTANT (COMMONPAGESIZE)".
* emulparams/elf32btsmipn32.sh: Likewise.
* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Add
"-z max-page-size=" and "-z common-page-size=".
(gld${EMULATION_NAME}_list_options): Likewise.
* ld.h (ld_config_type): Add maxpagesize and commonpagesize.
* ld.texinfo: Document "-z max-page-size=" and
"-z common-page-size=".
* ldexp.c (exp_print_token): Handle CONSTANT.
(fold_name): Likewise.
* ldgram.y: Likewise.
* ldlex.l: Likewise.
* ldmain.c (main): Initiliaze config.maxpagesize and
config.commonpagesize. Call bfd_emul_set_maxpagesize if
config.maxpagesize isn't 0. Call bfd_emul_set_commonpagesize if
config.commonpagesize config.maxpagesize isn't 0.
ld/testsuite/
2006-05-30 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/binutils.exp: New file.
* ld-elf/commonpage1.d: Likewise.
* ld-elf/maxpage1.d: Likewise.
* ld-elf/maxpage1.s: Likewise.
2006-05-30 16:45:32 +00:00
Richard Henderson
8d6d53d427
* emulparams/elf64alpha.sh (PLT): New.
...
(TEXT_PLT): New.
* emultempl/alphaelf.em (disable_relaxation): New.
(limit_32bit): Rename from elf64alpha_32bit; update all users.
(elf64_alpha_use_secureplt): Declare.
(bfd_elf64_alpha_vec, bfd_elf64_alpha_freebsd_vec): Declare.
(alpha_after_open): New.
(alpha_before_allocation): New.
(OPTION_NO_RELAX, OPTION_SECUREPLT, OPTION_NO_SECUREPLT): New.
(PARSE_AND_LIST_LONGOPTS): Include them.
(PARSE_AND_LIST_OPTIONS): Likewise.
(PARSE_AND_LIST_ARGS_CASES): Likewise.
(LDEMUL_AFTER_OPEN, LDEMUL_BEFORE_ALLOCATION): New.
* scripttempl/elf.sc (TEXT_PLT): New.
(PLT): Use it.
2005-05-29 23:16:09 +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
Alan Modra
c279ca3ee9
* emulparams/elf64alpha.sh (EXTRA_EM_FILE): Define.
...
(PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS,
PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_ARGS_CASES,
PARSE_AND_LIST_EPILOGUE): Don't define.
* emultempl/alphaelf.em: New file.
2003-03-02 22:07:10 +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
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
Richard Henderson
a9ed1e1b4e
* emulparams/elf64alpha.sh (NOP): Use unop.
2002-01-22 09:51:15 +00:00
Alan Modra
465bc359f9
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Define.
...
(config.status): Delete rule.
Add extra dependencies to cover sourced emulparams files.
* Makefile.in: Regenerate.
* scripttempl/elf.sc: Order <section>, <section>.* and
corresponding linkonce sections as seen in input files.
Formatting fixes. Zero vma of all sections if not relocating.
(STACK): Define and insert if STACK_ADDR defined.
(OTHER_RELOCATING_SECTIONS): Delete.
(OTHER_END_SYMBOLS): Define.
(OTHER_READONLY_SECTIONS): Always insert, not just when relocating.
(OTHER_READWRITE_SECTIONS): Likewise.
(OTHER_GOT_SECTIONS): Likewise.
(OTHER_SDATA_SECTIONS): Likewise.
(OTHER_BSS_SECTIONS): Likewise.
* scripttempl/elfi370.sc (OTHER_READONLY_SECTIONS): Likewise.
(OTHER_READWRITE_SECTIONS): Likewise.
* scripttempl/nw.sc (OTHER_READONLY_SECTIONS): Likewise.
(OTHER_READWRITE_SECTIONS): Likewise
* emulparams/armelf.sh (OTHER_RELOCATING_SECTIONS): Delete.
(STACK_ADDR): Define.
* emulparams/armelf_oabi.sh: As for armelf.sh.
* emulparams/elf32mcore.sh: As for armelf.sh.
* emulparams/h8300elf.sh: As for armelf.sh.
* emulparams/mn10200.sh: As for armelf.sh.
* emulparams/shelf.sh: As for armelf.sh.
* emulparams/elf32fr30.sh (OTHER_RELOCATING_SECTIONS): Delete.
(OTHER_END_SYMBOLS): Define.
* emulparams/m32relf.sh: As for elf32fr30.sh.
* emulparams/h8300helf.sh: As for elf32fr30.sh.
* emulparams/h8300self.sh: As for elf32fr30.sh.
* emulparams/criself.sh (OTHER_READONLY_SECTIONS): Protect symbol
defines with RELOCATING test.
(OTHER_SDATA_SECTIONS): Likewise.
(OTHER_RELOCATING_SECTIONS): Delete, replacing with..
(OTHER_END_SYMBOLS): ..this.
* emulparams/crislinux.sh: As for criself.sh.
* emulparams/elf32bmipn32.sh (OTHER_SDATA_SECTIONS): Zero vma
if not relocating.
(OTHER_RELOCATING_SECTIONS): Delete, replacing with..
(OTHER_SECTIONS): ..this. Zero vma if not relocating. Order
normal and linkonce sections as seen in input files.
* emulparams/elf32bmip.sh (DATA_ADDR): Don't define if EMBEDDED.
(TEXT_DYNAMIC): Likewise.
(INITIAL_READONLY_SECTIONS): Zero vma if not relocating.
(OTHER_SDATA_SECTIONS): Likewise.
* emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS): Likewise.
* emulparams/shlelf_linux.sh (OTHER_READWRITE_SECTIONS): Likewise.
* emulparams/elf64alpha.sh (OTHER_READONLY_SECTIONS): Likewise.
* emulparams/hppalinux.sh (OTHER_READONLY_SECTIONS): Likewise.
* emulparams/elf64_aix.sh (OTHER_GOT_SECTIONS): Likewise.
(OTHER_PLT_RELOC_SECTIONS): Likewise.
(OTHER_READONLY_SECTIONS): Likewise. Order normal and linkonce
sections as seen in input files.
* emulparams/elf64_ia64.sh: As for emulparams/elf64_aix.sh.
* emulparams/hppa64linux.sh (OTHER_READONLY_SECTIONS): Zero vma
if not relocating.
(OTHER_READWRITE_SECTIONS, OTHER_BSS_SECTIONS): Likewise.
(OTHER_BSS_END_SYMBOLS): Merge from elf64hppa.sh.
* emulparams/elf64mmix.sh (OTHER_RELOCATING_SECTIONS): Delete.
(OTHER_SECTIONS): Instead, use this..
(OTHER_END_SYMBOLS): ..and this.
* emulparams/elf32b4300.sh: Source elf32bmip.sh, remove duplicates.
* emulparams/elf32bsmip.sh: Likewise.
* emulparams/elf32btsmip.sh: Likewise.
* emulparams/elf32ebmip.sh: Likewise.
* emulparams/elf32lmip.sh: Likewise.
* emulparams/elf32elmip.sh: Source elf32lmip.sh, remove duplicates.
* emulparams/elf32lsmip.sh: Likewise.
* emulparams/elf32ltsmip.sh: Source elf32btsmip.sh, remove duplicates.
* emulparams/elf32l4300.sh: Source elf32b4300.sh, remove duplicates.
* emulparams/elf64bmip.sh: Source elf32bmipn32.sh, remove duplicates.
* emulparams/elf64btsmip.sh: Likewise.
* emulparams/elf64ltsmip.sh: Source elf64btsmip.sh, remove duplicates.
* emulparams/elf32lppc.sh: Source elf32ppc.sh, remove duplicates.
* emulparams/elf32ppclinux.sh: Likewise.
* emulparams/elf32ppcsim.sh: Likewise.
* emulparams/elf32lppcsim.sh: Source elf32lppc.sh, remove duplicates.
* emulparams/elf64hppa.sh: Source hppa64linux.sh, remove duplicates.
* emulparams/h8300helf.sh: Source h8300elf.sh, remove duplicates.
* emulparams/h8300self.sh: Likewise.
* emulparams/mn10300.sh: Source mn10200.sh, remove duplicates.
* emulparams/sh.sh: Comment.
* emulparams/shl.sh: Source sh.sh, remove duplicates.
* emulparams/shlelf.sh: Source shelf.sh, remove duplicates.
* emulparams/shelf_linux.sh: Source shlelf_linux.sh, remove duplicates.
2001-11-22 09:08:05 +00:00
Andreas Jaeger
48f6162b7a
* emultempl/aix.em: Add missing prototype.
...
* emultempl/lnk960.em: Likewise.
* emultempl/vanilla.em: Likewise.
* emultempl/armcoff.em: Likewise.
* emultempl/armelf_oabi.em: Likewise.
* emultempl/beos.em: Likewise.
* emultempl/gld960c.em: Likewise.
* emultempl/gld960.em: Likewise.
* emulparams/elf64alpha.sh (PARSE_AND_LIST_PROLOGUE): Add parameter
for prototype declaration.
2001-09-03 06:43:37 +00:00
David O'Brien
ad95f82a09
2000-11-28 David O'Brien <obrien@dragon.nuxi.com>
...
* emulparams/elf64alpha.sh (ENTRY): Remove leading underscore as ELF
does not use them.
Approved by: Richard Henderson <rth@twiddle.net>
Message-ID: <20001127014059.A16638@twiddle.net>
2000-11-28 10:43:11 +00:00
Richard Henderson
d34802440c
* emulparams/elf64alpha.sh (MAXPAGESIZE): Typo -- 64k, not 1M.
2000-11-15 23:16:30 +00:00
H.J. Lu
b2009ff751
2000-07-27 H.J. Lu <hjl@gnu.org>
...
* emulparams/elf64alpha.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.
(PARSE_AND_LIST_EPILOGUE): Likewise.
2000-07-28 01:53:29 +00:00
Nick Clifton
88cdf29775
Implement -taso command line option.
2000-07-28 00:57:45 +00:00
Richard Henderson
252b5132c7
19990502 sourceware import
1999-05-03 07:29:11 +00:00