OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [ld/] [scripttempl/] [epocpe.sc] - Diff between revs 156 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 156 Rev 816
# Linker script for PE.
# Linker script for PE.
if test -z "${RELOCATEABLE_OUTPUT_FORMAT}"; then
if test -z "${RELOCATEABLE_OUTPUT_FORMAT}"; then
  RELOCATEABLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
  RELOCATEABLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
fi
fi
# We can't easily and portably get an unquoted $ in a shell
# We can't easily and portably get an unquoted $ in a shell
# substitution, so we do this instead.
# substitution, so we do this instead.
# Sorting of the .foo$* sections is required by the definition of
# Sorting of the .foo$* sections is required by the definition of
# grouped sections in PE.
# grouped sections in PE.
# Sorting of the file names in R_IDATA is required by the
# Sorting of the file names in R_IDATA is required by the
# current implementation of dlltool (this could probably be changed to
# current implementation of dlltool (this could probably be changed to
# use grouped sections instead).
# use grouped sections instead).
if test "${RELOCATING}"; then
if test "${RELOCATING}"; then
  R_TEXT='*(SORT(.text$*))'
  R_TEXT='*(SORT(.text$*))'
  R_DATA='*(SORT(.data$*))'
  R_DATA='*(SORT(.data$*))'
  R_RDATA='*(SORT(.rdata$*))'
  R_RDATA='*(SORT(.rdata$*))'
  R_IDATA='
  R_IDATA='
    SORT(*)(.idata$2)
    SORT(*)(.idata$2)
    SORT(*)(.idata$3)
    SORT(*)(.idata$3)
    /* These zeroes mark the end of the import list.  */
    /* These zeroes mark the end of the import list.  */
    LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
    LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
    SORT(*)(.idata$4)
    SORT(*)(.idata$4)
    SORT(*)(.idata$5)
    SORT(*)(.idata$5)
    SORT(*)(.idata$6)
    SORT(*)(.idata$6)
    SORT(*)(.idata$7)'
    SORT(*)(.idata$7)'
  R_CRT='*(SORT(.CRT$*))'
  R_CRT='*(SORT(.CRT$*))'
  R_RSRC='*(SORT(.rsrc$*))'
  R_RSRC='*(SORT(.rsrc$*))'
else
else
  R_TEXT=
  R_TEXT=
  R_DATA=
  R_DATA=
  R_RDATA=
  R_RDATA=
  R_IDATA=
  R_IDATA=
  R_CRT=
  R_CRT=
  R_RSRC=
  R_RSRC=
fi
fi
cat <
cat <
${RELOCATING+OUTPUT_FORMAT(${OUTPUT_FORMAT})}
${RELOCATING+OUTPUT_FORMAT(${OUTPUT_FORMAT})}
${RELOCATING-OUTPUT_FORMAT(${RELOCATEABLE_OUTPUT_FORMAT})}
${RELOCATING-OUTPUT_FORMAT(${RELOCATEABLE_OUTPUT_FORMAT})}
${LIB_SEARCH_DIRS}
${LIB_SEARCH_DIRS}
ENTRY(_mainCRTStartup)
ENTRY(_mainCRTStartup)
SECTIONS
SECTIONS
{
{
  .text ${RELOCATING+ __image_base__ + __section_alignment__ } :
  .text ${RELOCATING+ __image_base__ + __section_alignment__ } :
  {
  {
    ${RELOCATING+ *(.init)}
    ${RELOCATING+ *(.init)}
    *(.text)
    *(.text)
    ${R_TEXT}
    ${R_TEXT}
    *(.glue_7t)
    *(.glue_7t)
    *(.glue_7)
    *(.glue_7)
    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
    ${CONSTRUCTING+ ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
                        LONG (-1); *(.ctors); *(.ctor); LONG (0); }
                        LONG (-1); *(.ctors); *(.ctor); LONG (0); }
    ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
    ${CONSTRUCTING+ ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
                        LONG (-1); *(.dtors); *(.dtor);  LONG (0); }
                        LONG (-1); *(.dtors); *(.dtor);  LONG (0); }
    ${RELOCATING+ *(.fini)}
    ${RELOCATING+ *(.fini)}
    /* ??? Why is .gcc_exc here?  */
    /* ??? Why is .gcc_exc here?  */
    ${RELOCATING+ *(.gcc_exc)}
    ${RELOCATING+ *(.gcc_exc)}
    ${RELOCATING+ etext = .;}
    ${RELOCATING+ etext = .;}
    *(.gcc_except_table)
    *(.gcc_except_table)
    /* For EPOC the read only data is located at the end of the .text
    /* For EPOC the read only data is located at the end of the .text
    section */
    section */
    *(.rdata)
    *(.rdata)
    ${R_RDATA}
    ${R_RDATA}
    *(.eh_frame)
    *(.eh_frame)
  }
  }
  /* The Cygwin32 library uses a section to avoid copying certain data
  /* The Cygwin32 library uses a section to avoid copying certain data
     on fork.  This used to be named ".data$nocopy".  The linker used
     on fork.  This used to be named ".data$nocopy".  The linker used
     to include this between __data_start__ and __data_end__, but that
     to include this between __data_start__ and __data_end__, but that
     breaks building the cygwin32 dll.  Instead, we name the section
     breaks building the cygwin32 dll.  Instead, we name the section
     ".data_cygwin_nocopy" and explictly include it after __data_end__. */
     ".data_cygwin_nocopy" and explictly include it after __data_end__. */
  .data ${RELOCATING+BLOCK(__section_alignment__)} :
  .data ${RELOCATING+BLOCK(__section_alignment__)} :
  {
  {
    ${RELOCATING+__data_start__ = . ;}
    ${RELOCATING+__data_start__ = . ;}
    *(.data)
    *(.data)
    *(.data2)
    *(.data2)
    ${R_DATA}
    ${R_DATA}
    ${RELOCATING+__data_end__ = . ;}
    ${RELOCATING+__data_end__ = . ;}
    ${RELOCATING+*(.data_cygwin_nocopy)}
    ${RELOCATING+*(.data_cygwin_nocopy)}
  }
  }
  .bss ${RELOCATING+BLOCK(__section_alignment__)} :
  .bss ${RELOCATING+BLOCK(__section_alignment__)} :
  {
  {
    ${RELOCATING+__bss_start__ = . ;}
    ${RELOCATING+__bss_start__ = . ;}
    *(.bss)
    *(.bss)
    *(COMMON)
    *(COMMON)
    ${RELOCATING+__bss_end__ = . ;}
    ${RELOCATING+__bss_end__ = . ;}
  }
  }
  .edata ${RELOCATING+BLOCK(__section_alignment__)} :
  .edata ${RELOCATING+BLOCK(__section_alignment__)} :
  {
  {
    *(.edata)
    *(.edata)
  }
  }
  /DISCARD/ :
  /DISCARD/ :
  {
  {
    *(.debug\$S)
    *(.debug\$S)
    *(.debug\$T)
    *(.debug\$T)
    *(.debug\$F)
    *(.debug\$F)
    *(.drectve)
    *(.drectve)
  }
  }
  .idata ${RELOCATING+BLOCK(__section_alignment__)} :
  .idata ${RELOCATING+BLOCK(__section_alignment__)} :
  {
  {
    /* This cannot currently be handled with grouped sections.
    /* This cannot currently be handled with grouped sections.
        See pe.em:sort_sections.  */
        See pe.em:sort_sections.  */
    ${R_IDATA}
    ${R_IDATA}
  }
  }
  .CRT ${RELOCATING+BLOCK(__section_alignment__)} :
  .CRT ${RELOCATING+BLOCK(__section_alignment__)} :
  {
  {
    ${R_CRT}
    ${R_CRT}
  }
  }
  .endjunk ${RELOCATING+BLOCK(__section_alignment__)} :
  .endjunk ${RELOCATING+BLOCK(__section_alignment__)} :
  {
  {
    /* end is deprecated, don't use it */
    /* end is deprecated, don't use it */
    ${RELOCATING+ end = .;}
    ${RELOCATING+ end = .;}
    ${RELOCATING+ _end = .;}
    ${RELOCATING+ _end = .;}
    ${RELOCATING+ __end__ = .;}
    ${RELOCATING+ __end__ = .;}
  }
  }
  .reloc ${RELOCATING+BLOCK(__section_alignment__)} :
  .reloc ${RELOCATING+BLOCK(__section_alignment__)} :
  {
  {
    *(.reloc)
    *(.reloc)
  }
  }
  .rsrc ${RELOCATING+BLOCK(__section_alignment__)} :
  .rsrc ${RELOCATING+BLOCK(__section_alignment__)} :
  {
  {
    *(.rsrc)
    *(.rsrc)
    ${R_RSRC}
    ${R_RSRC}
  }
  }
  .stab ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
  .stab ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
  {
  {
    [ .stab ]
    [ .stab ]
  }
  }
  .stabstr ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
  .stabstr ${RELOCATING+BLOCK(__section_alignment__)} ${RELOCATING+(NOLOAD)} :
  {
  {
    [ .stabstr ]
    [ .stabstr ]
  }
  }
}
}
EOF
EOF
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.