《解释一个ldscript资料全》由会员分享,可在线阅读,更多相关《解释一个ldscript资料全(32页珍藏版)》请在金锄头文库上搜索。
1、.word格式,解释一个Id.script资料GNU Id (GNU Binutils for Ubuntu)2.20.1-system.20100303Supported emulations:elf_i386i386linuxelf_x86_64elf_l1omusing internal linker script:/* Script for -z combreloc: combine and sort reloc sections*/OUTPUT_FORMAT(elf32-i386, elf32-i386,elf32-i386)OUTPUT_ARCH(i386)ENTRY(_start
2、)SEARCH_DIR(/usr/i486-linux-gnu/lib32);SEARCH_DIR(/usr/local/lib32);SEARCH_DIR(/lib32); SEARCH_DIR(/usr/lib32);SEARCH_DIR(/usr/i486-linux-gnu/lib);SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/lib);SEARCH_DIR(/usr/lib);SECTIONS /* Read-only sections, merged into text segment: */PROVIDE (_executable_start
3、=SEGMENT_START(text-segment, 0x08048000);.=SEGMENT_START(text-segment, 0x08048000)+ SIZEOF_HEADERS;.interp: *(.interp) .note.gnu.build-id : *(.note.gnu.build-id) .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_d .gnu.version .rel.dyn*(.rel.init): *(.hash) : *(.gnu.hash) : *(.d yn sym) : *(
4、.dynstr) : *(.gnu.version) : *(.gnu.version_d) : *(.gnu.version_r) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)*(.rel.fini)*(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)*(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)*(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)*(.rel.tdata .rel.tdata.* .rel
5、.gnu.linkonce.td.*)*(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)*(.rel.ctors)*(.rel.dtors)*(.rel.got)*(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)*(.rel.ifunc).rel.plt:*(.rel.plt)PROVIDE_HIDDEN (_rel_iplt_start =.);*(.rel.iplt)PROVIDE_HIDDEN (_relplt_end =.);.init:KEEP (*(.init)专业.专注.word格式, =0x909
6、09090Pit: *(.plt) *(.iplt) .text*(.text.unlikely .text.*_unlikely)*(.text .stub .text.* .gn ui nkonce.t.*)/* .gnu.warning sections are handled specially byelf32.em. */*(.gnu.warning) =0x90909090.fini:KEEP (*(.fini) =0x90909090PROVIDE (_etext =.);PROVIDE (_etext =.);PROVIDE (etext =.);.rodata: *(.rod
7、ata .rodata.* .gnu.linkonce.r.*) .rodata1: *(.rodata1) .eh_frame_hdr : *(.eh_frame_hdr) .eh_frame: ONLY_IF_RO KEEP (*(.eh_frame) .gcc_except_table : ONLY_IF_RO *(.gcc_except_table .gcc_except_table.*) /* Adjust the address for the data segment.We wantto adjust up tothe same address within the page o
8、n the next pageup. */.=ALIGN (CONSTANT (MAXPAGESIZE) - (CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE)- 1); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE);/* Exception handling */.eh_frame: ONLY_IF_RW KEEP (*(.eh_frame) .gcc_except_table : ONLY_IF_RW *(.gcc_exce
9、pt_table .gcc_except_table.*) /* Thread Local Storage sections */.tdata : *(.tdata .tdata.* .gnuinkonce.td.*).tbss: *(.tbss .tbss.* .gn ui nkonce.tb.*)*(.tcommon) .preinit_array:PROVIDE_HIDDEN (_preinit_array_start =.);KEEP (*(.preinit_array)PROVIDE_HIDDEN (_preinit_array_end =.);.init_arrayPROVIDE_
10、HIDDEN (_init_array_start =.);KEEP (*(SORT(.init_array.*)KEEP (*(.init_array)PROVIDE_HIDDEN (_init_array_end =.); .fini_arrayPROVIDE_HIDDEN (_fini_array_start =.);KEEP (*(.fini_array)KEEP (*(SORT(.fini_array.*)PROVIDE_HIDDEN (_fini_array_end =.);.ctors/* gcc uses crtbegin.o to find the start of the
11、constructors, so we make sure it is first. Because this is a wildcard, it doesnt matter if the user does not actually link against crtbegin.o; the linker wont look for a file to match a wildcard. The wildcard also means that it doesnt matter which directory crtbegin.o is in. */KEEP (*crtbegin.o(.cto
12、rs)KEEP (*crtbegin?.o(.ctors)/* We dont want to include the .ctor section fromthe crtend.o file until after the sorted ctors.The .ctor section from the crtend file contains the end of ctors marker and it must be last */KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)KEEP (*(SORT(.ctors.*)KEEP (*
13、(.ctors).dtors:KEEP (*crtbegin.o(.dtors)KEEP (*crtbegin?.o(.dtors)KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)KEEP (*(SORT(.dtors.*)KEEP (*(.dtors).jcr: KEEP (*(.jcr) .data.rel.ro : *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)*(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) .dynamic: *(.dy
14、namic) .got: *(.got) *(.igot) .=DATA_SEGMENT_RELRO_END (12,.);.got.plt: *(.got.plt) *(.igot.plt) .data:*(.data .data.* .gnu.linkonce.d.*)SORT(CONSTRUCTORS).data1: *(.data1) _edata = .; PROVIDE (edata =.);_bss_start =.;.bss*(.dynbss)*(.bss .bss.* .gnu.linkonce.b.*)*(C0MM0N)/* Align here to ensure that the .bss section occupies专业.专注.word格式,space up to_end.Align after .bss to ensure correct alignmenteven if the.bss section disappears because there are no input sections.FIXME: Why do we need it? When there is no .bss section, we dontpad the .data section. */.=ALI