GNU LD VERSION 2.13.90.0.2 20020802 Default Linker Script

xiaoxiao2021-03-06  50

Get ld --verbose under RedHat: GNU LD Version 2.13.90.0.2 20020802 Supported Emulation: ELF_I386 I386LINUX ELF_I386_GLIBC21USING 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) Search_dir (" / usr / i386-redhat-linux / lib "); search_dir (" / usr / lib "); search_dir "/ usr / local / lib"); search_dir ("/ lib"); / * do we need any of these for Elf? __dynamic = 0; * / sections {/ * read-only sections, merge inTo text segment: * /. = 0x08048000 sizeof_headers;

{* (. HASH)}. DYNSYM: {* (. DYNSYM)} .dynstr: {* (. DYNSTR)}. gnu.version: {* (. gnu .version}}. gnu.version_d: {* (. gnu.version_d)}. gnu.version_r: {* (. gnu.version_r)} .rel.dyn: {* (. Rel.init) * (. Rel. TEXT .REL.TEXT. * .rel.gnu.linkonce.t. *) * (. Rel.fini) * (. Rel.Rodata .Rel.Rodata. * .rel.gnu.linkonce.r. *) * ( .rel.data .rel.data. * .rel.gnu.linkonce.d. *) * (. Rel.tdata .Rel.tdata. * .rel.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. *)} .rela.dyn: {* (. transla.init) * (. RELA.TEXT .RELA.TEXT. * .RELA.GNU.LINKONCE.T. *) * ( .rela.fini) * (. RELA.RODATA .RELA.RODATA. * .rela.gnu.linkonce.r. *) * (. RELA.DATA.GNU.DATA. * .rela.gnu.linkonce.d. * ) * (. RELA.TDATA .RELA.TDATA. * .RELA.GNU.LINKONCE.TD. *) * (. Rela.tbss. Rela.tbss. * .rela.gnu.linkonce.tb. *) * (. transla.ctors) * (. transla.dtors) * (. transla.got) * (. transla.bss.rela.bss. *. RELA.GNU.LINKONCE.B. *)} .rel.plt: {* (. Rel.plt)} .rela.plt: {* (. transla.plt)} .init: {keyp (* (init) )} = 0x90909090 .plt: {* (. Plt)} .text: {* (. Text .stub .text. * .Net .Linkonce.t. *) / * .Netu.warning sections area handled specially by ELF32. EM. * / * (. gnu.warning)} = 0x90909090 .fini: {keyp (* (. FINI))} = 0x90909090 provide (__text =.); provide (_text =.); provide (eText =.);

. rodata: {* (. Rodata .Rodata. * .gnu.linkonce.r. *)}. rodata1: {* (. rotata1)} .Eh_frame_hdr: {* (. eh_frame_hdr)} / * adjust the address for the data . segment We want to adjust up to the same address within the page on the next page up * / = DATA_SEGMENT_ALIGN (0x1000, 0x1000);... / * Ensure the __preinit_array_start label is properly aligned We could instead move the label definition inside the Section, But The Linker Would ITEN CREATE The section Even IT Turns Out To Be Empty, Which isn't pretty. * /. = align (32/8); provide (__preinit_Array_start =.); .preinit_Array: {* (. . preinit_array)} PROVIDE (__preinit_array_end =); PROVIDE (__init_array_start =); .init_array:.. {* (init_array)} PROVIDE (__init_array_end =); PROVIDE (__fini_array_start =); .fini_array:... {* (fini_array) } Provide (__fini_array_end =.); .Data: {* (. Data .data. * .Gnu.linkonce.d. *) Sort (constructors)} .data1 : {* (. DATA1)} .tdata: {* (. TData .tdata. * .netu.linkonce.td. *)} .tbss: {* (. Tbss.tbss. * .netu.linkonce.tb. * ) * (. tcommon)} .eh_frame: {key: {* (. gcc_except_table)} .dynamic: {* (. Dynamic)} .ct bar: {/ * gcc buys crtbegin. O to find the start of the constructors, sowe make it it is first. because this is a wildcard, it doesn't Matter if the user does not actually link against crtbegin.o; The Linker Won't love for a file to Match A Wildcard. The Wildcard Also Means That Doesn '

T Matter Which Directory Crtbegin.o is in. * / Keep (* crtbegin.o (.ctors)) / * We don't want to include the .ctor section from from the crtend.o file unsteil after the sorted ctors. The .ctor section from the crtend File Contains The end of ctors marve (* (Exclude_file (* crtend.o) .ctors)) Keep (* (sort (.ctors. *))) Keep * (. ctors))} .dtors: {keyp (* crtbegin.o (.dttors)) Keep (* (Exclude_file (* crtend.o) .dttors)) ")") ") Keep (* (sort (.dtors. *)))) Keep (* (. Dtors))} .jcr: {Keep (* (. Jcr))} .got: {* (. Got.plt) * (. Got)} _edata =.;.; __BSS_Start =.; .Bss: {* (. Dynbss) * (. bss .bss. * .gnu.linkonce.b. *) * / * Align Here to Ensure That The .bss section Occupies Space Up to _end Align After .BSS TO Ensure Correct Alignment Even IF The .Bss Section Disappears Because There No Input Sections. * /. = Align (32/8);}. = Align (32/8); _end =.;. = Data_segment_end (.);

/ * Stabs debugging sections. * / .Stab 0: {* (. Stab)} .stabstr 0: {* (. Stabstr)} .stab.excl 0: {* (. Stab.excl)} .stab.exclstr 0 : {* (. stab.exclstr)} .stab.index 0: {* (. stab.index)} .stab.indexStr 0: {* (. stab.indexstr)} .comment 0: {* (. comment) } / * Dwarf debug sections. Symbols in the dwarf debugging sections area relative to the beginning,}} {* (. Debug)} .line 0 : {* (. line)} / * gnu dwarf 1 extensions * / .debug_srcinfo 0: {* (. debug_srcinfo)} .debug_sfnames 0: {* (. debug_sfnames)} / * dwarf 1.1 and dwarf 2 * / .debug_aranges 0 : {* (. Debug_aranges)} .debug_pubnames 0: {* (. debug_pubnames)} / * dwarf 2 * / .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)} .de bug_loc 0: {* (debug_loc.)} .debug_macinfo 0: {(. debug_macinfo) *} / * SGI / MIPS DWARF 2 extensions * / .debug_weaknames 0: {* (. debug_weaknames)} .debug_funcnames 0: {* (. Debug_funcnames)} .debug_typenames 0: {* (. debug_typenames)} .debug_varnames 0: {* (. debug_varnames)}} ======================== ==========================

转载请注明原文地址:https://www.9cbs.com/read-83048.html

New Post(0)