2d20f7bf67
* 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.
25 lines
953 B
Bash
25 lines
953 B
Bash
# See genscripts.sh and ../scripttempl/elf.sc for the meaning of these.
|
|
SCRIPT_NAME=elf
|
|
ELFSIZE=64
|
|
TEMPLATE_NAME=elf32
|
|
EXTRA_EM_FILE=needrelax
|
|
OUTPUT_FORMAT="elf64-ia64-little"
|
|
ARCH=ia64
|
|
MACHINE=
|
|
MAXPAGESIZE=0x10000
|
|
if test -n "$CREATE_SHLIB"; then
|
|
# Optimize shared libraries for 16K page size
|
|
COMMONPAGESIZE=0x4000
|
|
fi
|
|
TEXT_START_ADDR="0x4000000000000000"
|
|
DATA_ADDR="0x6000000000000000 + (. & (${MAXPAGESIZE} - 1))"
|
|
GENERATE_SHLIB_SCRIPT=yes
|
|
NOP=0x00300000010070000002000001000400 # a bundle full of nops
|
|
OTHER_GOT_SECTIONS="
|
|
.IA_64.pltoff ${RELOCATING-0} : { *(.IA_64.pltoff) }"
|
|
OTHER_PLT_RELOC_SECTIONS="
|
|
.rela.IA_64.pltoff ${RELOCATING-0} : { *(.rela.IA_64.pltoff) }"
|
|
OTHER_READONLY_SECTIONS="
|
|
.opd ${RELOCATING-0} : { *(.opd) }
|
|
.IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info*${RELOCATING+ .gnu.linkonce.ia64unwi.*}) }
|
|
.IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind*${RELOCATING+ .gnu.linkonce.ia64unw.*}) }"
|