GNU ld version 2.11.93.0.2 20020207 Supported emulations: elf_i386 i386linux elf_i386_glibc21 using 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(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/i386-redhat-linux/lib); /* Do we need any of these for elf? __DYNAMIC = 0; */ SECTIONS { /* Read-only sections, merged into text segment: */ . = 0x08048000 + SIZEOF_HEADERS; .interp : { *(.interp) } .hash : { *(.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.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0x90909090 .plt : { *(.plt) } .text : { *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0x90909090 .fini : { KEEP (*(.fini)) } =0x90909090 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .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); .data : { *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } .eh_frame : { KEEP (*(.eh_frame)) } .gcc_except_table : { *(.gcc_except_table) } .dynamic : { *(.dynamic) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure 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 look for a file to match a wildcard. The wildcard also means that it 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 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 ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .got : { *(.got.plt) *(.got) } _edata = .; PROVIDE (edata = .); __bss_start = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* 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 are no input sections. */ . = ALIGN(32 / 8); } . = ALIGN(32 / 8); _end = .; PROVIDE (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 are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.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) } .debug_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) } } ================================================== attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o succeeded /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o succeeded /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o succeeded /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o attempt to open main.o succeeded main.o attempt to open f.o succeeded f.o attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/libgcc.so failed attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/libgcc.a succeeded attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/libc.so failed attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/libc.a failed attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libc.so succeeded opened script file /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libc.so attempt to open /lib/libc.so.6 succeeded /lib/libc.so.6 attempt to open /usr/lib/libc_nonshared.a succeeded attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/libgcc.so failed attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/libgcc.a succeeded attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o succeeded /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o attempt to open /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crtn.o succeeded /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crtn.o ld-linux.so.2 needed by /lib/libc.so.6 found ld-linux.so.2 at /lib/ld-linux.so.2 Memory Configuration Name Origin Length Attributes *default* 0x00000000 0xffffffff Linker script and memory map LOAD /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o LOAD /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o LOAD /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o LOAD main.o LOAD f.o LOAD /usr/lib/gcc-lib/i386-redhat-linux/2.96/libgcc.a LOAD /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../libc.so START GROUP LOAD /lib/libc.so.6 LOAD /usr/lib/libc_nonshared.a END GROUP LOAD /usr/lib/gcc-lib/i386-redhat-linux/2.96/libgcc.a LOAD /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o LOAD /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crtn.o 0x080480f4 . = (0x8048000 + SIZEOF_HEADERS ) .interp 0x080480f4 0x13 *(.interp) .interp 0x080480f4 0x13 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .note.ABI-tag 0x08048108 0x20 .note.ABI-tag 0x08048108 0x20 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .hash 0x08048128 0x30 *(.hash) .hash 0x08048128 0x30 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .dynsym 0x08048158 0x70 *(.dynsym) .dynsym 0x08048158 0x70 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .dynstr 0x080481c8 0x7a *(.dynstr) .dynstr 0x080481c8 0x7a /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .gnu.version 0x08048242 0xe *(.gnu.version) .gnu.version 0x08048242 0xe /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .gnu.version_d 0x08048250 0x0 *(.gnu.version_d) .gnu.version_r 0x08048250 0x20 *(.gnu.version_r) .gnu.version_r 0x08048250 0x20 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .rel.dyn 0x08048270 0x8 *(.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.ctors) *(.rel.dtors) *(.rel.got) .rel.got 0x08048270 0x8 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o *(.rel.bss.rel.bss.*.rel.gnu.linkonce.b.*) .rela.dyn *(.rela.init) *(.rela.text.rela.text.*.rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata.rela.rodata.*.rela.gnu.linkonce.r.*) *(.rela.data.rela.data.*.rela.gnu.linkonce.d.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss.rela.bss.*.rela.gnu.linkonce.b.*) .rel.plt 0x08048278 0x20 *(.rel.plt) .rel.plt 0x08048278 0x20 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .rela.plt *(.rela.plt) .init 0x08048298 0x18 *(.init) .init 0x08048298 0xc /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o 0x08048298 _init .init 0x080482a4 0x5 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o .init 0x080482a9 0x5 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o .init 0x080482ae 0x2 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crtn.o .plt 0x080482b0 0x50 *(.plt) .plt 0x080482b0 0x50 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x080482c0 __register_frame_info@@GLIBC_2.0 0x080482d0 __deregister_frame_info@@GLIBC_2.0 0x080482e0 __libc_start_main@@GLIBC_2.0 0x080482f0 printf@@GLIBC_2.0 .text 0x08048300 0x1b0 *(.text.stub.text.*.gnu.linkonce.t.*) .text 0x08048300 0x24 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x08048300 _start .text 0x08048324 0x24 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o *fill* 0x08048348 0x8 2425393296 .text 0x08048350 0xb0 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o .text 0x08048400 0x3c main.o 0x08048400 main .text 0x0804843c 0x2c f.o 0x0804843c f *fill* 0x08048468 0x8 2425393296 .text 0x08048470 0x40 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o *(.gnu.warning) .fini 0x080484b0 0x1e *(.fini) .fini 0x080484b0 0x14 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o 0x080484b0 _fini .fini 0x080484c4 0x5 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o .fini 0x080484c9 0x5 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crtn.o 0x080484ce PROVIDE (__etext, .) 0x080484ce PROVIDE (_etext, .) 0x080484ce PROVIDE (etext, .) .rodata 0x080484d0 0x8 *(.rodata.rodata.*.gnu.linkonce.r.*) .rodata 0x080484d0 0x8 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x080484d0 _fp_hw 0x080484d4 _IO_stdin_used .rodata1 *(.rodata1) .eh_frame_hdr 0x080484d8 0x0 *(.eh_frame_hdr) 0x080494d8 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000) .data 0x080494d8 0x24 *(.data.data.*.gnu.linkonce.d.*) .data 0x080494d8 0x4 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x080494d8 data_start 0x080494d8 __data_start .data 0x080494dc 0xc /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o 0x080494dc __dso_handle .data 0x080494e8 0x14 main.o 0x080494ec format 0x080494e8 i .data1 *(.data1) .eh_frame 0x080494fc 0x4 *(.eh_frame) .eh_frame 0x080494fc 0x4 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o .gcc_except_table *(.gcc_except_table) .dynamic 0x08049500 0xc8 *(.dynamic) .dynamic 0x08049500 0xc8 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x08049500 _DYNAMIC .ctors 0x080495c8 0x8 *crtbegin.o(.ctors) *(EXCLUDE_FILE ( *crtend.o).ctors) .ctors 0x080495c8 0x4 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o *(SORT(.ctors.*)) *(.ctors) .ctors 0x080495cc 0x4 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o .dtors 0x080495d0 0x8 *crtbegin.o(.dtors) *(EXCLUDE_FILE ( *crtend.o).dtors) .dtors 0x080495d0 0x4 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o *(SORT(.dtors.*)) *(.dtors) .dtors 0x080495d4 0x4 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o .jcr *(.jcr) .got 0x080495d8 0x20 *(.got.plt) .got.plt 0x080495d8 0x1c /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x080495d8 _GLOBAL_OFFSET_TABLE_ *(.got) .got 0x080495f4 0x4 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x080495f8 _edata = . 0x080495f8 PROVIDE (edata, .) 0x080495f8 __bss_start = . .bss 0x080495f8 0x18 *(.dynbss) *(.bss.bss.*.gnu.linkonce.b.*) .bss 0x080495f8 0x18 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o *(COMMON) 0x08049610 . = ALIGN (0x4) 0x08049610 . = ALIGN (0x4) 0x08049610 _end = . 0x08049610 PROVIDE (end, .) 0x08049610 . = DATA_SEGMENT_END (.) .stab 0x00000000 0x7a4 *(.stab) .stab 0x00000000 0x7a4 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x7e0 (size before relaxing) .stabstr 0x00000000 0x1983 *(.stabstr) .stabstr 0x00000000 0x1983 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o 0x0 (size before relaxing) .stab.excl *(.stab.excl) .stab.exclstr *(.stab.exclstr) .stab.index *(.stab.index) .stab.indexstr *(.stab.indexstr) .comment 0x00000000 0x181 *(.comment) .comment 0x00000000 0x37 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .comment 0x00000037 0x37 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o .comment 0x0000006e 0x37 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o .comment 0x000000a5 0x37 main.o .comment 0x000000dc 0x37 f.o .comment 0x00000113 0x37 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o .comment 0x0000014a 0x37 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crtn.o .debug *(.debug) .line *(.line) .debug_srcinfo *(.debug_srcinfo) .debug_sfnames *(.debug_sfnames) .debug_aranges *(.debug_aranges) .debug_pubnames *(.debug_pubnames) .debug_info *(.debug_info.gnu.linkonce.wi.*) .debug_abbrev *(.debug_abbrev) .debug_line *(.debug_line) .debug_frame *(.debug_frame) .debug_str *(.debug_str) .debug_loc *(.debug_loc) .debug_macinfo *(.debug_macinfo) .debug_weaknames *(.debug_weaknames) .debug_funcnames *(.debug_funcnames) .debug_typenames *(.debug_typenames) .debug_varnames *(.debug_varnames) OUTPUT(linkex elf32-i386) .note 0x00000000 0x8c .note 0x00000000 0x14 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o .note 0x00000014 0x14 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o .note 0x00000028 0x14 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o .note 0x0000003c 0x14 main.o .note 0x00000050 0x14 f.o .note 0x00000064 0x14 /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o .note 0x00000078 0x14 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crtn.o