| # Linker script for i386 go32 (DJGPP) | |
| test -z "$ENTRY" && ENTRY=start | |
| EXE=${CONSTRUCTING+${RELOCATING+-exe}} | |
| # These are substituted in as variables in order to get '}' in a shell | |
| # conditional expansion. | |
| CTOR='.ctor : { | |
| *(SORT(.ctors.*)) | |
| *(.ctor) | |
| }' | |
| DTOR='.dtor : { | |
| *(SORT(.dtors.*)) | |
| *(.dtor) | |
| }' | |
| cat <<EOF | |
| OUTPUT_FORMAT("${OUTPUT_FORMAT}${EXE}") | |
| ENTRY(${ENTRY}) | |
| SECTIONS | |
| { | |
| .text ${RELOCATING+ ${TARGET_PAGE_SIZE}+SIZEOF_HEADERS} : { | |
| *(.text) | |
| ${RELOCATING+*(.text.*)} | |
| ${RELOCATING+*(.gnu.linkonce.t*)} | |
| *(.const*) | |
| *(.ro*) | |
| ${RELOCATING+*(.gnu.linkonce.r*)} | |
| ${RELOCATING+etext = . ; PROVIDE(_etext = .) ;} | |
| ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} | |
| } | |
| .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { | |
| ${RELOCATING+djgpp_first_ctor = . ; | |
| *(SORT(.ctors.*)) | |
| *(.ctor) | |
| djgpp_last_ctor = . ;} | |
| ${RELOCATING+djgpp_first_dtor = . ; | |
| *(SORT(.dtors.*)) | |
| *(.dtor) | |
| djgpp_last_dtor = . ;} | |
| *(.data) | |
| ${RELOCATING+*(.data.*)} | |
| ${RELOCATING+*(.gcc_exc*)} | |
| ${RELOCATING+___EH_FRAME_BEGIN__ = . ;} | |
| ${RELOCATING+*(.eh_fram*)} | |
| ${RELOCATING+___EH_FRAME_END__ = . ;} | |
| ${RELOCATING+LONG(0);} | |
| ${RELOCATING+*(.gnu.linkonce.d*)} | |
| ${RELOCATING+edata = . ; PROVIDE(_edata = .) ;} | |
| ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} | |
| } | |
| ${CONSTRUCTING+${RELOCATING-$CTOR}} | |
| ${CONSTRUCTING+${RELOCATING-$DTOR}} | |
| .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} : | |
| { | |
| *(.bss${RELOCATING+ .bss.* .gnu.linkonce.b.*}) | |
| *(COMMON) | |
| ${RELOCATING+ end = . ; PROVIDE(_end = .) ;} | |
| ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} | |
| } | |
| /* Stabs debugging sections. */ | |
| .stab 0 : { *(.stab) } | |
| .stabstr 0 : { *(.stabstr) } | |
| /* DWARF 2 */ | |
| .debug_aranges 0 : { *(.debug_aranges) } | |
| .debug_pubnames 0 : { *(.debug_pubnames) } | |
| .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } | |
| .debug_abbrev 0 : { *(.debug_abbrev) } | |
| .debug_line 0 : { *(.debug_line) } | |
| .debug_frame 0 : { *(.debug_frame) } | |
| .debug_str 0 : { *(.debug_str) } | |
| .debug_loc 0 : { *(.debug_loc) } | |
| .debug_macinfo 0 : { *(.debug_macinfo) } | |
| } | |
| EOF |