Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ICU failure on RedHat

2 views
Skip to first unread message

Joshua Gatcomb

unread,
Oct 21, 2004, 8:50:59 AM10/21/04
to perl6-i...@perl.org
Yes, that's right folks - I said RedHat.

I got a shiny new development machine at work that I
can install anything I want on. The trouble is that
it doesn't have any net access so I have to transfer
everything via memory stick or CD. I just so happened
to have some RH CDs lying around, so that's what I
went with.

1. Transfer ICU 3.0 and build from source
2. Do a fresh CVS checkout of parrot, transfer and
build

$ perl Configure.pl --optimize
<configure all goes well>

$ make
<all goes well until parrot is linked>

c++ -o parrot -L/usr/local/lib -Wl,-E -g imcc/main.o
blibl/lib/libparrot.a -lnsl -ldl -lm -lpthread -lcrypt
-lutil -lrt -lgmp -lpthread -lm -L/usr/local/lib
-licuuc -licudata -lpthread -lm

./parrot -o runtime/parrot/include/parrotlib.pbc
runtime/parrot/library/parrotlib.imc

./parrot: error while loading shared libraries:
libicuuc.so.30: cannot open shared object file: No
such file or directory
make: *** [runtime/parrot/include/parrotlib.pbc] Error
127

ICU libs are in /usr/local/lib
/usr/local/lib is in my path
all libs are executable
libicuuc.so.30 indeed does exist in that directory


Any advice?

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region


__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail

Joshua Gatcomb

unread,
Oct 21, 2004, 10:45:20 AM10/21/04
to Joshua Gatcomb, perl6-i...@perl.org

--- Joshua Gatcomb <limbic_re...@yahoo.com>
wrote:

>
> --- Joshua Gatcomb <limbic_re...@yahoo.com>


> wrote:
>
> >
> > 1. Transfer ICU 3.0 and build from source
> > 2. Do a fresh CVS checkout of parrot, transfer
> and
> > build
> >
> > $ perl Configure.pl --optimize
> > <configure all goes well>
> >
> > $ make
> > <all goes well until parrot is linked>
> >
> > c++ -o parrot -L/usr/local/lib -Wl,-E -g
> imcc/main.o
> > blibl/lib/libparrot.a -lnsl -ldl -lm -lpthread
> > -lcrypt
> > -lutil -lrt -lgmp -lpthread -lm -L/usr/local/lib
> > -licuuc -licudata -lpthread -lm
> >
> > ./parrot -o runtime/parrot/include/parrotlib.pbc
> > runtime/parrot/library/parrotlib.imc
> >
> > ./parrot: error while loading shared libraries:
> > libicuuc.so.30: cannot open shared object file:
> No
> > such file or directory
> > make: *** [runtime/parrot/include/parrotlib.pbc]
> > Error
> > 127
>

> Oddly enough, it works if I don't use a system ICU.
> All tests pass normally, but I get 3 tests failing
> under JIT
>
> t/op/interp.t #7
> t/pmc/coroutine.t #10
> t/pmc/exception.t #19

ok, so I did investigate a little further. make testj
works fine (all tests pass) if I don't pass the
--optimize flag to Configure.pl.

Leopold Toetsch

unread,
Oct 21, 2004, 11:14:19 AM10/21/04
to Joshua Gatcomb, perl6-i...@perl.org
Joshua Gatcomb <limbic_re...@yahoo.com> wrote:
>> All tests pass normally, but I get 3 tests failing
>> under JIT
>>
>> t/op/interp.t #7
>> t/pmc/coroutine.t #10
>> t/pmc/exception.t #19

> ok, so I did investigate a little further. make testj
> works fine (all tests pass) if I don't pass the
> --optimize flag to Configure.pl.

No problem here with --optimize and make testj. Yet another DeadRat
problem?

> Cheers
> Joshua Gatcomb

leo

Joshua Gatcomb

unread,
Oct 21, 2004, 11:04:32 AM10/21/04
to Joshua Gatcomb, perl6-i...@perl.org
--- Joshua Gatcomb <limbic_re...@yahoo.com>
wrote:

> ok, so I did investigate a little further. make
> testj
> works fine (all tests pass) if I don't pass the
> --optimize flag to Configure.pl.

Ok, so optimizations break things - why not add more.
Interestingly, adding more aggressive options make it
start working.

--ccflags='-march=i686 -O3 -s -funroll-loops
-fomit-frame-pointer' --debugging=0

everything works again (and is quite fast).

My guess was -march=i686

In IRC Dan said it might be a faulty assumption on our
part or on gcc's.

The gcc that ships with RH9 was 3.2.2 fwiw

Joshua Gatcomb

unread,
Oct 22, 2004, 2:54:52 PM10/22/04
to l...@toetsch.at, perl6-i...@perl.org

Ok - I have isolated things a bit more on a fresh
checkout of about 20 minutes ago.
1. plain Configure.pl - make testj (all pass)
2. Configure.pl --optimize - make testj (3 fail)
3. Configure.pl --optimize
--ccflags='fomit-frame-pointer' (all pass)

And the JIT problems have nothing to do with why a
system ICU breaks things entirely.

I am going to upgrade gcc 3.2.2 to 3.4.2 to see if it
makes a difference.

> leo

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region


__________________________________
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo

Joshua Gatcomb

unread,
Oct 22, 2004, 3:57:11 PM10/22/04
to Andy Dougherty, perl6-i...@perl.org
--- Andy Dougherty <doug...@lafayette.edu> wrote:
> > ICU libs are in /usr/local/lib
>
> > /usr/local/lib is in my path
>
> Which "path"? Do you mean LD_LIBRARY_PATH or do
> you mean PATH?
>
> PATH is irrelevant. That's the set of directories
> used by /bin/sh
> (or equivalent) to find executable programs.

I know that. You know that. Cygwin doesn't know
that. It was one of the many oddities I found when
working with Cygwin. Unfortunately, after working
with it for a year, I had re-programmed my brain.

>
> This looks to me like a LD_LIBRARY_PATH issue. One
> simple fix
> is to set the environment variable
> LD_LIBRARY_PATH=/usr/local/lib
> export LD_LIBRARY_PATH
> (in Bourne shell syntax).
>
> Does that help?

This indeed corrects this problem.

> Andy Dougherty doug...@lafayette.edu

Salamat!
Joshua Gatcomb
a.k.a. Limbic~Region



_______________________________
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com

0 new messages