[4493] in Release_7.7_team

home help back first fref pref prev next nref lref last post

Re: multithreaded Perl

daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Mon Apr 12 17:01:51 2004

Date: Mon, 12 Apr 2004 16:59:47 -0400 (EDT)
Message-Id: <200404122059.i3CKxlDS006586@brad-majors.mit.edu>
From: Garry Zacheiss <zacheiss@MIT.EDU>
To: Alex T Prengel <alexp@MIT.EDU>
cc: release-team@MIT.EDU
In-reply-to: "[4491] in Release_7.7_team"

>> When on an Athena machine, I make /usr/bin/perl be the first one found
>> on my path, I get the same error. There seems to be something different
>> between these perl versions it doesn't like- until recently I didn't
>> realise that /usr/athena/bin/perl and /usr/bin/perl were
>> different. There's a new version of the application out- I can try
>> building it with /usr/bin/perl to see if I can get a build that works
>> both on Athena and RH9 machines; the app uses a lot of extra specialized
>> perl modules- maybe that's related to the problem.

Your problem here is that the perl modules freewrl is trying to load
were built against /usr/athena/bin/perl, not /usr/bin/perl.  In this
case, they happen to be losing because of the difference in threading
support, but they could lose for any number of other reasons, too.  In
general, building modules against one install of perl and then running
them against another is likely to cause problems like this.

I'm going to go ahead and submit patches to build /usr/athena/bin/perl
with threading support in 9.3, but that doesn't help you immediately,
and really only addresses a symptom.  

What you should do for software like this that uses perl and needs to
operate both in and out of the athena environment, is make sure you
build your perl modules against /usr/bin/perl (this means putting it
first in your PATH or explicitly running "/usr/bin/perl Makefile.PL"
when building them); you'll also need to make sure that any #! lines in
your scripts reference /usr/bin/perl rather than either
/usr/athena/bin/perl or "/usr/bin/env perl", since the latter will get
/usr/athena/bin/perl for most users.  This should be sufficient for you
to be using a consistent perl between both Athena and non-Athena
machines.

Garry




home help back first fref pref prev next nref lref last post