Subject: Re: apache6 breakage
To: Harold Gutch <logix@foobar.franken.de>
From: Marcus Comstedt <marcus@mc.pp.se>
List: port-dreamcast
Date: 03/02/2004 23:52:33
Harold Gutch <logix@foobar.franken.de> writes:
> #0 0x0048a3b6 in ap_sys_siglist ()
> (gdb) where
> #0 0x0048a3b6 in ap_sys_siglist ()
>
> This is strange - ap_sys_siglist isn't a function, but an
> array of 32 char-pointers, defined in http_main.c:
>
> #define NumSIG 32
> const char *ap_sys_siglist[NumSIG];
Yes. This is why you got the segfault: Since this is data and not
code the page does not have execute permission set.
> #1 0x204b484a in __umoddi3 () from /usr/lib/libgcc_s.so.1
Now, __umoddi3 has no calls to ap_sys_siglist of course. It does call
a couple of other libgcc functions though, for example ___lshrsi3.
The thing is, these functions sometimes have nonstandard calling
conventions which may interfere with the dynamic linker. My guess is
that this is what has happened here. libgcc_s.so is pure evil.
// Marcus