[perl #36367] [BUG] Parrot doesn't compile/install on FC4

0 views
Skip to first unread message

Patrick R . Michaud

unread,
Jun 22, 2005, 6:27:16 PM6/22/05
to bugs-bi...@rt.perl.org
# New Ticket Created by Patrick R. Michaud
# Please include the string: [perl #36367]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=36367 >


---
osname= linux
osvers= 2.4.21-27.0.2.elsmp
arch= i386-linux-thread-multi
cc= gcc 4.0.0 20050516 (Red Hat 4.0.0-6)
---
Flags:
category=install
severity=high
ack=no
---
Parrot doesn't seem to compile & install under Fedora Core 4.
This is on a fresh install of FC4 (with update packages as appropriate),
and a fresh checkout of Parrot (r8430).

I get the following error during the "make":

----------
...
pf/pf_items.c
ops/core_ops.c
ops/core_ops_switch.c
ops/experimental.ops: In function 'switch_core':
ops/experimental.ops:436: error: unable to find a register to spill in class 'DI
REG'
ops/experimental.ops:436: error: this is the insn:
(insn 14327 14326 14328 617 ops/sys.ops:69 (parallel [
(set (reg:SI 2 cx [44578])
(unspec:SI [
(mem:BLK (reg:SI 44580 [ tmp ]) [0 A8])
(reg:QI 0 ax [44582])
(const_int 1 [0x1])
(reg:SI 2 cx [44581])
] 20))
(use (reg:SI 19 dirflag))
(clobber (reg:SI 44580 [ tmp ]))
(clobber (reg:CC 17 flags))
]) 468 {*strlenqi_1} (nil)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_UNUSED (reg:SI 44580 [ tmp ])
(expr_list:REG_DEAD (reg:SI 19 dirflag)
(expr_list:REG_DEAD (reg:SI 2 cx [44581])
(expr_list:REG_DEAD (reg:QI 0 ax [44582])
(expr_list:REG_DEAD (reg:SI 44580 [ tmp ])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_UNUSED (reg:SI 44580 [ tmp ])
(nil))))))))))
ops/experimental.ops:436: confused by earlier errors, bailing out
make: *** [ops/core_ops_switch.o] Error 1
[pmichaud@localhost trunk]$

----------

I've been able to build Parrot r8430 under my copy of FC3 (which is
not entirely up-to-date) and it seems to work just fine.

I'll be glad to supply more details as needed.

Pm

---
Summary of my parrot 0.2.1 (r8430) configuration:
configdate='Wed Jun 22 15:57:55 2005'
Platform:
osname=linux, archname=i386-linux-thread-multi
jitcapable=1, jitarchname=i386-linux,
jitosname=LINUX, jitcpuarch=i386
execcapable=1
perl=/usr/bin/perl
Compiler:
cc='gcc', ccflags='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -pipe -I/usr/loca
l/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
Linker and Libraries:
ld='gcc', ldflags=' -L/usr/local/lib',
cc_ldflags='',
libs='-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt -lgmp'
Dynamic Linking:
share_ext='.so', ld_share_flags='-shared -L/usr/local/lib -fPIC',
load_ext='.so', ld_load_flags='-shared -L/usr/local/lib -fPIC'
Types:
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=1 byteorder=1234,
nv=double, numvalsize=8, doublesize=8

---
Environment:
HOME LANG LANGUAGE LD_LIBRARY_PATH LOGDIR PATH SHELL

Leopold Toetsch

unread,
Jun 23, 2005, 3:09:45 AM6/23/05
to perl6-i...@perl.org
Patrick R.Michaud (via RT) wrote:

> osname= linux
> osvers= 2.4.21-27.0.2.elsmp
> arch= i386-linux-thread-multi
> cc= gcc 4.0.0 20050516 (Red Hat 4.0.0-6)

^^^^^^^^^


> ---
> Flags:
> category=install
> severity=high
> ack=no
> ---
> Parrot doesn't seem to compile & install under Fedora Core 4.
> This is on a fresh install of FC4 (with update packages as appropriate),
> and a fresh checkout of Parrot (r8430).
>
> I get the following error during the "make":

> ops/core_ops_switch.c


> ops/experimental.ops: In function 'switch_core':
> ops/experimental.ops:436: error: unable to find a register to spill in class 'DI

This was already reported some time ago. I proposed to try to modify
ops/core_ops_switch.c:174 to exclude explicit register allocation for
gcc 4.x:

#if ... && __GNUC__ < 4

If this works then the change has to be done in
lib/Parrot/OpTrans/CSwitch.pm

leo

Reply all
Reply to author
Forward
0 new messages