Le 04/07/2013 08:44, Armin Rigo a écrit :
Hi Alexis,

On Wed, Jul 3, 2013 at 4:04 PM, Alexis BRENON <[email protected]> wrote:
Is anyone got any idea where I can search to debug this ?
Check first that compiling programs works at all.  Then, still with a
5-lines example .c, try to add options to gcc one at a time until you
reach a very similar command-line to the one in the generated
Makefile.  I bet it crashes at some point.


A bientôt,

Armin.
Thanks Armin for you advice and I find where it crashes. When linking, there is this option:

--version-script=../dynamic-symbols-1

I read this file and remembered that I already see a similar one when I was searching on Google.
First this file looks like this :

{
        global:
                rpython_startup_code;
                get_errno;
                set_errno;
        local:
                *;
};

Adding the failing symbol in global make it works.

{
        global:
                rpython_startup_code;
                get_errno;
                set_errno;
                __data_start;
         local:
                *;
};

Nevertheless, the resulting executable, which must display "Hello World" (as usual), segfault when I launch it... From GDB I get this, when running it with a breakpoint on main() (so it fails before enterring in the main) :

Program received signal SIGSEGV, Segmentation fault.
0x77fc86a4 in dl_main (phdr=<value optimized out>, phnum=<value optimized out>, 
user_entry=<value optimized out>, auxv=0x7fff6e44) at rtld.c:1652
1652    rtld.c: No such file or directory.
        in rtld.c
(gdb) bt
#0  0x77fc86a4 in dl_main (phdr=<value optimized out>, phnum=<value optimized out>, 
user_entry=<value optimized out>, auxv=0x7fff6e44) at rtld.c:1652
#1  0x77fdd560 in _dl_sysdep_start (start_argptr=<value optimized out>, 
dl_main=0x77fc7a84 <dl_main>) at ../elf/dl-sysdep.c:244
#2  0x77fca5c4 in _dl_start_final (arg=0x7fff6e00, info=<value optimized out>) 
at rtld.c:336
#3  0x77fca860 in _dl_start (arg=0x7fff6e00) at rtld.c:564
#4  0x77fc6894 in __start () from /lib/ld.so.1
Backtrace stopped: frame did not save the PC

This bug is the same as if translate my simple Rpython file with the -O2 option. The translation success, but I get the exactly same error on the resulting executable... I encouter this error when I translate (with -O2 option) the targetpypystandalone.py file too, when it tries to execute platcheck_0 during translation...

Maybe there is a deeper reason of all these failures. But I can't point out which or where... Any idea ?

Thanks,
Alexis
_______________________________________________
pypy-dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to