[klibc] klibc loader crash...
Paweł Sikora
pluto at agmk.net
Fri Sep 30 04:25:25 PDT 2005
Hi all,
I've a simple program called empty.c :)
$ cat empty.c
int main(int argc, char* argv[])
{
return 0;
}
$ cat empty410.s
.file "empty.c"
.text
.p2align 4,,15
.globl main
.type main, @function
main:
xorl %eax, %eax
ret
.size main, .-main
.ident "GCC: (GNU) 4.1.0 20050922 (experimental)"
.section .note.GNU-stack,"", at progbits
binutils-2.15.94.0.2.2 produces for this code empty .data and .bss sections:
Program Header:
PHDR off 0x00000034 vaddr 0x08048034 paddr 0x08048034 align 2**2
filesz 0x000000c0 memsz 0x000000c0 flags r-x
INTERP off 0x000000f4 vaddr 0x080480f4 paddr 0x080480f4 align 2**0
filesz 0x0000002a memsz 0x0000002a flags r--
LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12
filesz 0x00000123 memsz 0x00000123 flags r-x
LOAD off 0x00000124 vaddr 0x08049124 paddr 0x08049124 align 2**12
filesz 0x00000000 memsz 0x00000000 flags rw-
STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
filesz 0x00000000 memsz 0x00000000 flags rwx
PAX_FLAGS off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
filesz 0x00000000 memsz 0x00000000 flags --- 2800
Sections:
Idx Name Size VMA LMA File off Algn
0 .interp 0000002a 080480f4 080480f4 000000f4 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .text 00000003 08048120 08048120 00000120 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .data 00000000 08049124 08049124 00000124 2**2
CONTENTS, ALLOC, LOAD, DATA
3 .bss 00000000 08049124 08049124 00000124 2**2
ALLOC
and /lib/klibc-*.so works fine.
binutils-2.16.91.0.3 doesn't produce useless empty sections:
Program Header:
PHDR off 0x00000034 vaddr 0x08048034 paddr 0x08048034 align 2**2
filesz 0x000000a0 memsz 0x000000a0 flags r-x
INTERP off 0x000000f4 vaddr 0x080480f4 paddr 0x080480f4 align 2**0
filesz 0x0000002a memsz 0x0000002a flags r--
LOAD off 0x00000000 vaddr 0x08048000 paddr 0x08048000 align 2**12
filesz 0x00000123 memsz 0x00000123 flags r-x
STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
filesz 0x00000000 memsz 0x00000000 flags rwx
PAX_FLAGS off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
filesz 0x00000000 memsz 0x00000000 flags --- 2800
Sections:
Idx Name Size VMA LMA File off Algn
0 .interp 0000002a 080480f4 080480f4 000000f4 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
1 .text 00000003 08048120 08048120 00000120 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
and klibc loader crashes (sigsegv) before it reaches main().
tested on klibc 1.0.14 / 1.1.1.
--
The only thing necessary for the triumph of evil
is for good men to do nothing.
- Edmund Burke
More information about the klibc
mailing list