Luke Palmer <[EMAIL PROTECTED]> wrote:

> It appears JIT is entirely broken.  It broke recently, as it was
> working well for me just a couple days ago.

> I'm running i686 (P3) Linux, gcc-3.2.2

Have it. I did install gcc 3.3.1 (and a newer gdb). The segfaults are
due to new ways how gcc 3 does subroutine calling, or better how gcc
does pass subroutine params on the stack (and destroy JITs returns
address as it goes).

Anyway: please try this procedure (or equivalent):

$ make -s               # make (silently) parrot
$ touch core_ops_cgp.c  # touch the relevant file
$ make                  # make again
^C                      # stop it
$ gcc-3.3 ....  -c core_ops_cgp.c -mno-accumulate-outgoing-args
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# copy and past above command line for making core_ops_cgp.o and
# append the marked option

$ make -s && make -sC languages/imcc
$ IMCC=imcc perl t/harness -j t/*/*.t

[ gcc-3.3 is the compiler executable on my system ]

So we need (and already did since some time) per file compile settings:

- tsq.c does not compile with any optimization
- core_ops_cg.c might need no optimization on systems with ~< 100 MB RAM
- core_ops_cgp.c needs above flag (except when -Os is given as optimize
  option)

> Luke

leo

Reply via email to