Ticket #1002 (closed bug: duplicate)

Opened 12 years ago

Last modified 12 years ago

Building PGE dies with segfault when JIT enabled under Fedora 11

Reported by: markmont Owned by: pmichaud
Priority: minor Milestone:
Component: PGE Version: trunk
Severity: low Keywords:
Cc: Language:
Patch status: Platform: linux


Since JIT is deprecated, please disregard this ticket if it is a JIT issue; I'm only reporting it in case it is not.

When building parrot r41241 under Fedora 11 "perl Configure.pl ; make" results in:

[...previous output snipped...]
gmake[1]: Entering directory `/home/markmont/perl6/parrot/compilers/pge'
/usr/bin/perl -MExtUtils::Command -e rm_f PGE.pbc ../../runtime/parrot/library/PGE.pbc
/usr/bin/perl -e "" >PGE/builtins_gen.pir
../../parrot -o PGE.pbc --output-pbc PGE.pir
../../parrot ../../runtime/parrot/library/PGE/Perl6Grammar.pir  --output=PGE/builtins_gen.pir PGE/builtins.pg
gmake[1]: *** [PGE.pbc] Segmentation fault (core dumped)
gmake[1]: *** Deleting file `PGE.pbc'
gmake[1]: Leaving directory `/home/markmont/perl6/parrot/compilers/pge'
make: *** [compilers.dummy] Error 2

However, "perl Configure.pl --jitcapable=0 ; make" succeeds and the resulting built parrot works with rakudo.


(gdb) bt
#0  0x081c05c8 in ?? ()
#1  0x0035bff5 in Parrot_NCI_invoke (interp=0x81a2040, pmc=0x8221130, 
    next=0xb7eb33b0) at ./src/pmc/nci.pmc:332
#2  0x00149948 in Parrot_invokecc_p (cur_opcode=0xb7eb33a8, interp=0x81a2040)
    at src/ops/core.ops:433
#3  0x002114cb in runops_slow_core (interp=0x81a2040, runcore=0x8231980, 
    pc=0xb7eb33a8) at src/runcore/cores.c:955
#4  0x0020fa1f in runops_int (interp=0x81a2040, offset=24)
    at src/runcore/main.c:640
#5  0x001e7720 in runops (interp=0x81a2040, offs=24) at src/call/ops.c:119
#6  0x001e7ae1 in runops_args (interp=0x81a2040, sub=0x8221250, obj=0x8205e08, 
    meth_unused=0x0, sig=0x452e04 "P", ap=0xbf9f984c "\1")
    at src/call/ops.c:269
#7  0x001e7cf6 in Parrot_runops_fromc_args (interp=0x81a2040, sub=0x8221250, 
    sig=0x452e04 "P") at src/call/ops.c:338
#8  0x001ff65e in run_sub (interp=0x81a2040, sub_pmc=0x8221250)
    at src/packfile.c:688
#9  0x001ff916 in do_1_sub_pragma (interp=0x81a2040, sub_pmc=0x8221250, 
    action=PBC_MAIN) at src/packfile.c:780
#10 0x001ffd48 in do_sub_pragmas (interp=0x81a2040, self=0x8240dd8, 
    action=PBC_MAIN, eval_pmc=0x0) at src/packfile.c:941
#11 0x002073ec in PackFile_fixup_subs (interp=0x81a2040, what=PBC_MAIN, 
    eval=0x0) at src/packfile.c:4951
#12 0x0042546a in imcc_run_pbc (interp=0x81a2040, obj_file=0, output_file=0x0, 
    argc=3, argv=0xbf9f9a98) at compilers/imcc/main.c:795
#13 0x004260af in imcc_run (interp=0x81a2040, 
    sourcefile=0xbf9fa7a6 "../../runtime/parrot/library/PGE/Perl6Grammar.pir", 
    argc=3, argv=0xbf9f9a98) at compilers/imcc/main.c:1088
#14 0x08048939 in main (argc=3, argv=0xbf9f9a98) at src/main.c:60

"perl Configure.pl" reports:

auto::jit -           Determine JIT capability...p = 0x9733000  PAGE_SIZE = 4096 (0x1000)
failure: Permission denied

Misc info:

Linux kernel
gcc 4.4.1
glibc 2.10.1-5.i686
SELinux enabled (however, audit log has only the expected "type=ANOM_ABEND sig=11" events)

Fedora 11 is running as a virtual guest (32 bit) under VMWare Fusion 2.0.5 under MacOS 10.6.1.

Change History

Changed 12 years ago by markmont

darbelo on #perl6 diagnosed this as SELinux not liking some of the stunts JIT pulls.

darbelo says, "The current JIT likes to have write and execute permissions on memory, to which SELinux objects, but the configure probe isn't smart enough to notice. It gets failure: Permission denied"

I confirm this -- after running "setenforce 0" to disable SELinux, "perl Configure.pl ; make" succeeds.

Changed 12 years ago by markmont

darbelo has pointed out that this ticket is a duplicate of #581. I'll put any new information there.

(also s/\#perl6/#parrot/ in the comment above)

Changed 12 years ago by markmont

I have attached a patch to #581 that allows Parrot to be built with JIT support under Fedora when SELinux is in enforcing mode.

Changed 12 years ago by coke

  • status changed from new to closed
  • resolution set to duplicate

As noted earlier, this ticket is a duplicate of #581; resolving ticket, please followup on the other ticket.

Note: See TracTickets for help on using tickets.