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

Bug#495120: more informations: problem comes from libstdc++6



One of my friends found this:

http://gcc.gnu.org/ml/gcc-patches/2006-11/msg01238.html

Both boards have e500 cores.

I think this locates the problem both in libstdc++6 and in the compiler used to compile the powerpc packages which should be compiled with options to support e500 cores (either TARGET_NO_LWSYNC or TARGET_E500), for this may be present in other packages.

Here are some tests I did:



gdb backtrace gives:
#0  0x0fe85bd4 in __cxa_guard_release () from /usr/lib/libstdc++.so.6

# objdump -d /usr/lib/libstdc++.so.6.0.10
[....]
000e5b30 <__cxa_guard_release>:
[....]
   e5bd4:       7c 20 04 ac     lwsync
[....]


# cat test.c
#include <stdio.h>

int main( int argc, char *argv[] )
{
        printf("doing lwsync in asm.\n");
        asm volatile("lwsync" : : : "memory");
        printf("done lwsync in asm.\n");
        return 0;
}

# gcc test.c -o test

# ./test
doing lwsync in asm.
Illegal instruction
#

# gdb test
[....]
(gdb) run
Starting program: /root/test
doing lwsync in asm.

Program received signal SIGILL, Illegal instruction.
0x10000494 in main ()
Current language:  auto; currently asm
(gdb) bt
#0  0x10000494 in main ()
(gdb)

# objdump -d test
[....]
10000494:       7c 20 04 ac     lwsync
[....]




Reply to: