[perl #32989] Problem in linux ppc

5 views
Skip to first unread message

Sgala @ Apache . Org

unread,
Dec 10, 2004, 10:23:06 AM12/10/04
to bugs-bi...@rt.perl.org
# New Ticket Created by sg...@apache.org
# Please include the string: [perl #32989]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=32989 >


---
osname= linux
osvers= 2.6.9-gentoo-r9
arch= powerpc-linux-thread-multi
cc= gcc 3.4.3 20041125 (Gentoo Linux 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7)
---
Flags:
category=core
severity=critical
ack=no
---
trying to compile parrot (cvs) in a linux ppc machine I get the following error. It looks like the configure process gets confused and does not compile the ppc jit code when it is under linux:

c++ -o parrot -L/usr/local/lib -Wl,-E -g imcc/main.o blib/lib/libparrot.a -lpthread -lnsl -ldl -lm -lcrypt -lutil -lrt -lpthread -lm -L/usr/lib -licuuc -licudata -lpthread -lm
blib/lib/libparrot.a(jit_cpu.o)(.text+0x2722): In function `Parrot_end_jit':
src/jit_cpu.c:74: undefined reference to `Parrot_ppc_jit_restore_nonvolatile_registers'
blib/lib/libparrot.a(jit_cpu.o)(.text+0x2726):src/jit_cpu.c:74: undefined reference to `Parrot_ppc_jit_restore_nonvolatile_registers'
blib/lib/libparrot.a(jit_cpu.o)(.text+0x274e):src/jit_cpu.c:74: undefined reference to `Parrot_ppc_jit_restore_nonvolatile_registers'
blib/lib/libparrot.a(jit_cpu.o)(.text+0x2752):src/jit_cpu.c:74: undefined reference to `Parrot_ppc_jit_restore_nonvolatile_registers'
blib/lib/libparrot.a(jit_cpu.o)(.text+0x2772):src/jit_cpu.c:74: undefined reference to `Parrot_ppc_jit_restore_nonvolatile_registers'
blib/lib/libparrot.a(jit_cpu.o)(.text+0x2776):src/jit_cpu.c:74: more undefined references to `Parrot_ppc_jit_restore_nonvolatile_registers' follow
collect2: ld returned 1 exit status
make: *** [parrot] Error 1

---
Summary of my parrot 0.1.1 configuration:
configdate='Fri Dec 10 15:28:20 2004'
Platform:
osname=linux, archname=powerpc-linux-thread-multi
jitcapable=1, jitarchname=ppc-linux,
jitosname=LINUX, jitcpuarch=ppc
execcapable=1
perl=/usr/bin/perl5.8.6
Compiler:
cc='gcc', ccflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
Linker and Libraries:
ld='gcc', ldflags=' -L/usr/local/lib',
cc_ldflags='',
libs='-lpthread -lnsl -ldl -lm -lcrypt -lutil -lrt -lpthread -lm -L/usr/lib -licuuc -licudata -lpthread -lm'
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=4321,
nv=double, numvalsize=8, doublesize=8

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

Chromatic

unread,
Dec 10, 2004, 3:56:05 PM12/10/04
to perl6-i...@perl.org, bugs-bi...@rt.perl.org
On Fri, 2004-12-10 at 07:23 -0800, via RT wrote:

> trying to compile parrot (cvs) in a linux ppc machine I get the following error. It looks like the configure process gets confused and does not compile the ppc jit code when it is under linux:

This is a duplicate of #32514, which still awaits the gentle touch of a
Configure hacker.

-- c

Leopold Toetsch

unread,
Feb 14, 2005, 12:12:18 PM2/14/05
to perl6-i...@perl.org
Sgala @ Apache . Org <parrotbug...@parrotcode.org> wrote:

> ---
> osname= linux
> osvers= 2.6.9-gentoo-r9
> arch= powerpc-linux-thread-multi

> trying to compile parrot (cvs) in a linux ppc machine I get the


> following error. It looks like the configure process gets confused and
> does not compile the ppc jit code when it is under linux:

> src/jit_cpu.c:74: undefined reference to `Parrot_ppc_jit_restore_nonvolatile_registers'

> jitcapable=1, jitarchname=ppc-linux,

I've now tried to fix that too long lasting problem.

1) attach the patch below

2) mv config/gen/platform/darwin/asm.s jit/ppc

3) perl Configure.pl --nomanicheck # or fix MANIFEST

This might cause trouble for ppc-aix, because the asm function is
included via a different mechanism too.

Tested on OS X only. If that works, cleanup (MANIFEST, aix) can follow.

leo

--- parrot/config/auto/jit.pl Wed Feb 2 13:23:59 2005
+++ parrot-leo/config/auto/jit.pl Mon Feb 14 18:02:32 2005
@@ -79,10 +79,13 @@
}
}

- if (-e "config/gen/platform/$cpuarch.s") {
- copy_if_diff("config/gen/platform/$cpuarch.s", "asmfun.s");
-
- Configure::Data->set(asmfun_o => 'asmfun$(O)');
+ if (-e "jit/$cpuarch/$jitarchname.s") {
+ copy_if_diff("jit/$cpuarch/$jitarchname.s", "src/asmfun.s");
+ Configure::Data->set(asmfun_o => 'src/asmfun$(O)');
+ }
+ elsif (-e "jit/$cpuarch/asm.s") {
+ copy_if_diff("jit/$cpuarch/asm.s", "src/asmfun.s");
+ Configure::Data->set(asmfun_o => 'src/asmfun$(O)');
} else {
Configure::Data->set(asmfun_o => '');
}

Leopold Toetsch

unread,
Feb 25, 2005, 6:31:04 AM2/25/05
to perl6-i...@perl.org
Leopold Toetsch <l...@toetsch.at> wrote:

I'm still waiting for confirmation that the recipe below works for
ppc-linux.

Thanks,
leo

Chromatic

unread,
Feb 25, 2005, 4:18:24 PM2/25/05
to l...@toetsch.at, perl6-i...@perl.org
On Fri, 2005-02-25 at 12:31 +0100, Leopold Toetsch wrote:

> I'm still waiting for confirmation that the recipe below works for
> ppc-linux.

Nope, the assembler here doesn't understand the code. Here's what
worked for me.

-- c


asm.s

Chromatic

unread,
Feb 25, 2005, 4:27:41 PM2/25/05
to l...@toetsch.at, perl6-i...@perl.org
On Fri, 2005-02-25 at 13:18 -0800, chromatic wrote:

> Nope, the assembler here doesn't understand the code. Here's what
> worked for me.

Ignore that attachment, it's wrong. Here's the right one.

-- c


ppc_asm.s
Reply all
Reply to author
Forward
0 new messages