klibc z HEAD

Paweł Sikora pluto w agmk.net
Czw, 6 Paź 2005, 23:52:19 CEST


Dnia czwartek, 6 października 2005 22:19, Jakub Bogusz napisał:
> Statyczne linkowanie działa poprawnie, przy (domyślnym) dynamicznym jest
> SEGV.
>
> $ cat c.c
> int main() {}
> $ klcc -o c c.c
> $ strace ./c
> execve("./c", ["./c"], [/* 44 vars */]) = -1 EFAULT (Bad address)
> --- SIGSEGV (Segmentation fault) @ 0 (0) ---
> +++ killed by SIGSEGV (core dumped) +++

$ nano c.c
$ klcc -o c c.c -s
$ ./c
$ strace ./c
execve("./c", ["./c"], [/* 37 vars */]) = 0
_exit(1)                                = ?

soa#1, system ac:main+ac:ready.

$ objdump -x c

c:     file format elf32-i386
c
architecture: i386, flags 0x00000102:
EXEC_P, D_PAGED
start address 0x08048120

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 0x00000121 memsz 0x00000121 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         00000001  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
SYMBOL TABLE:
no symbols

$ rpm -q gcc binutils
gcc-3.3.6-3
binutils-2.15.94.0.2.2-2

> Przez to wykłada się np. configure z device-mappera.

e...?

-- 
The only thing necessary for the triumph of evil
  is for good men to do nothing.
                                           - Edmund Burke



Więcej informacji o liście dyskusyjnej pld-devel-pl