X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=ld%2Fscripttempl%2Fv850.sc;h=df8302cd9094af792b9d70671d8492a60e42cac2;hb=2bf2bf23da;hp=4af97e43e240ac8371afb434e61dd1677582008d;hpb=d061dfac163fafcbba172b7facb651614a900a29;p=binutils-gdb.git diff --git a/ld/scripttempl/v850.sc b/ld/scripttempl/v850.sc index 4af97e43e24..df8302cd909 100644 --- a/ld/scripttempl/v850.sc +++ b/ld/scripttempl/v850.sc @@ -1,10 +1,22 @@ +# Copyright (C) 2014-2018 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. + cat << EOF +/* Copyright (C) 2014-2018 Free Software Foundation, Inc. + + Copying and distribution of this script, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. */ + OUTPUT_FORMAT("elf32-v850", "elf32-v850", "elf32-v850") -OUTPUT_ARCH(v850) +OUTPUT_ARCH(v850:old-gcc-abi) ${RELOCATING+ENTRY(_start)} SEARCH_DIR(.); -EXTERN(__ctbp __ep __gp); +${RELOCATING+EXTERN(__ctbp __ep __gp)}; SECTIONS { /* This saves a little space in the ELF file, since the zda starts @@ -13,13 +25,13 @@ SECTIONS .zdata ${ZDATA_START_ADDR} : { *(.zdata) - *(.zbss) + ${RELOCATING+*(.zbss) *(reszdata) - *(.zcommon) + *(.zcommon)} } /* This is the read only part of the zero data area. - Having it as a seperate section prevents its + Having it as a separate section prevents its attributes from being inherited by the zdata section. Specifically it prevents the zdata section from being marked READONLY. */ @@ -27,8 +39,8 @@ SECTIONS .rozdata ${ROZDATA_START_ADDR} : { *(.rozdata) - *(romzdata) - *(romzbss) + ${RELOCATING+*(romzdata) + *(romzbss)} } /* Read-only sections, merged into text segment. */ @@ -66,10 +78,10 @@ SECTIONS { *(.text) ${RELOCATING+*(.text.*)} - + /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) - *(.gnu.linkonce.t*) + ${RELOCATING+*(.gnu.linkonce.t*)} } =0 ${RELOCATING+_etext = .;} @@ -84,29 +96,29 @@ SECTIONS ${RELOCATING+PROVIDE(__ctbp = .);} *(.call_table_data) } = 0xff /* Fill gaps with 0xff. */ - + .call_table_text : { *(.call_table_text) } .fini : { KEEP (*(.fini)) } =0 - .rodata : { *(.rodata) ${RELOCATING+*(.rodata.*)} *(.gnu.linkonce.r*) } + .rodata : { *(.rodata) ${RELOCATING+*(.rodata.*) *(.gnu.linkonce.r*)} } .rodata1 : { *(.rodata1) } .data : { *(.data) - ${RELOCATING+*(.data.*)} - *(.gnu.linkonce.d*) - CONSTRUCTORS + ${RELOCATING+*(.data.*) + *(.gnu.linkonce.d*)} + ${CONSTRUCTING+CONSTRUCTORS} } .data1 : { *(.data1) } .ctors : { ${CONSTRUCTING+___ctors = .;} KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) + ${RELOCATING+KEEP (*(SORT(.ctors.*)))} KEEP (*crtend(.ctors)) ${CONSTRUCTING+___ctors_end = .;} } @@ -114,7 +126,7 @@ SECTIONS { ${CONSTRUCTING+___dtors = .;} KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) + ${RELOCATING+KEEP (*(SORT(.dtors.*)))} KEEP (*crtend.o(.dtors)) ${CONSTRUCTING+___dtors_end = .;} } @@ -125,23 +137,23 @@ SECTIONS .gcc_except_table : { *(.gcc_except_table) } - .got : { *(.got.plt) *(.got) } + .got : {${RELOCATING+ *(.got.plt)} *(.got) } .dynamic : { *(.dynamic) } .tdata ${TDATA_START_ADDR} : { - ${RELOCATING+PROVIDE (__ep = .);} + ${RELOCATING+PROVIDE (__ep = .); *(.tbyte) - *(.tcommon_byte) + *(.tcommon_byte)} *(.tdata) - *(.tbss) - *(.tcommon) + ${RELOCATING+*(.tbss) + *(.tcommon)} } /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ - + .sdata ${SDATA_START_ADDR} : { ${RELOCATING+PROVIDE (__gp = . + 0x8000);} @@ -155,15 +167,15 @@ SECTIONS } /* We place the .sbss data section AFTER the .rosdata section, so that - it can directly preceed the .bss section. This allows runtime startup + it can directly precede the .bss section. This allows runtime startup code to initialise all the zero-data sections by simply taking the value of '_edata' and zeroing until it reaches '_end'. */ - + .sbss : { ${RELOCATING+__sbss_start = .;} *(.sbss) - *(.scommon) + ${RELOCATING+*(.scommon)} } ${RELOCATING+_edata = DEFINED (__sbss_start) ? __sbss_start : . ;} @@ -173,15 +185,17 @@ SECTIONS { ${RELOCATING+__bss_start = DEFINED (__sbss_start) ? __sbss_start : . ;} ${RELOCATING+__real_bss_start = . ;} - *(.dynbss) + ${RELOCATING+*(.dynbss)} *(.bss) - *(COMMON) + ${RELOCATING+*(COMMON)} } ${RELOCATING+_end = . ;} ${RELOCATING+PROVIDE (end = .);} ${RELOCATING+PROVIDE (_heap_start = .);} + .note.renesas 0 : { KEEP(*(.note.renesas)) } + /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) }