help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: HelloWorld.c CRASHES when moved from FC6 to FC3!!


From: Ignoramus25565
Subject: Re: HelloWorld.c CRASHES when moved from FC6 to FC3!!
Date: Thu, 08 Feb 2007 21:15:58 -0600
User-agent: slrn/0.9.8.1pl1 (Linux)

On Thu, 08 Feb 2007 19:04:58 -0800, Paul Pluzhnikov 
<ppluzhnikov-nsp@charter.net> wrote:
> Ignoramus25565 <ignoramus25565@NOSPAM.25565.invalid> writes:
>
>> Seems to work.
>
> I've reproduced the crash when compiling "int main() { return 0; }"
> on FC6 and running it on FC4.
>
> The reason dynamic linker crashes is that a.out doesn't have
> DT_HASH dynamic tag at all, and FC4 ld-linux.so.2 expects it (and
> divides by l_nbuckets (zero) without checking):
>
> #0  0x00991898 in dl_main (phdr=0x8048034, phnum=224, user_entry=0xbffff64c) 
> at rtld.c:1360
> 1360          for (symidx = main_map->l_buckets[0x6c994f % 
> main_map->l_nbuckets];
>
> Compiling the same code on FC6 with '-Wl,--hash-style=sysv' fixes
> that crash.
>
> Still you are on dangerous ground -- your exe may have subtle
> and non-trivial bugs introduced by "backward" compilation
> environment. Let's hope you have adequate regression tests ...

Seems like using gcc34 is a better option than
'-Wl,--hash-style=sysv', then?

i

>> Also, interestingly, not only the app used to fail witi SIGFPE, but
>> also "ldd app". 
>
> That's not surprising at all -- "ldd" is a simple shell script,
> which tells ld-linux.so.2 to print libraries instead of actually
> loading them. The root cause of the crash is the same in both cases:
> missing DT_HASH dynamic tag.
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]