On Mon, May 20, 2002 at 05:12:24PM -0700, Bill Moseley wrote:
> At 10:49 PM 05/20/02 +0100, Nicholas Clark wrote:
> >He means run 'make perl' in the extension directory, rather than make
> >It builds a new perl statically linked with the extension.
> 
> I'm feeling more clueless.
> 
> So, I built perl 5.7.3 once again (I forgot and used -Duseshrplib the first
> time...)
> 
> Anyway, make perl && make test_static ends up with:
> 
>    All tests successful.
> 
> Argh.  I don't know if that's good news or bad news.

I think it's  good news. It's conclusive proof that the problem is in the
dynamic linking. It's not in your module, the aspell library or core perl.
So at least you know where it is.
I guess it's also bad news, because it's still a problem that you need to
fix to have the world be a happy place, and it's possibly in the hardest
thing to fix.

> make && make test still fails with 5.7.3.
> 
> So what does all this mean?  Any ideas what to try next?  Edit my module's
> BUGS file, say YMMV, and open a beer?

Well, that's the fallback position. Say "It does build static - if you can't
get it to build dynamic do XXX to make a static version, and bug your
platform's dynamic linking people"

I thought that there was an LD_DEBUG variable, for ld.so (which I find is
called rtld on FreeBSD), but maybe I'm getting confused with  PERL_DL_DEBUG
I doubt that setting that will tell you anything new, but it's probably
worth a try.

> BTW -- I need to read Perl's INSTALL again, but if I want to rebuild perl
> is there a shortcut for make install to skip the docs?

I think running

  ./installperl

from the perl build directory will do what you want.

The docs install is about 50% faster (per document)(I think) on 5.8, but then
there are now more documents to make sure it takes the same amount of time.

> 
> I've been using this:
> 
> make distclean
> ../Configure -des -Dprefix=/home/moseley/perl/ithread \
> -Dusethreads -Doptimize='-g' -Duseshrplib -Dusedevel
> make && make test
> make install
> 
> (or just now)
> ../Configure -des -Dprefix=/home/moseley/perl/static \
> -Doptimize='-g' -Dusedevel

You don't need to build a fully static perl to link your extension statically
against it. Sorry if that wasn't clear and I've caused you to spend lots of
time waiting for perl to rebuild.

> Summary of my perl5 (revision 5.0 version 6 subversion 0) configuration:

Unless there's a good reason for you to stick to 5.6.0, it's probably
worthwhile upgrading to 5.6.1. 5.6.1 fixes lots of bugs.
I guess you know this, and have a good reason.

[Then again, holding off until 5.8.0 might count as a "good reason"]

SuSE, working:

>     cc='cc', optimize='-O2', gccversion=egcs-2.91.66 19990314/Linux
> (egcs-1.1.2 release)

>     /usr/local/lib/perl5/5.6.0/i586-linux

Debian, not working:

> Summary of my perl5 (revision 5.0 version 7 subversion 3 patch 16714)
>     ccversion='', gccversion='2.95.4 20011002 (Debian prerelease)',
>     libc=/lib/libc-2.2.5.so, so=so, useshrplib=false, libperl=libperl.a


Does SuSE have a different glibc version to Debian? With both perl and gcc
differing between the two platforms, there are a lot of variables changing.

Are the two machines networked close enough together to let you run binaries
built on one on the other? I'm not sure if this would work, but you could see
whether building the same perl with the same gcc on both platforms still gives
a difference. (but I guess you'd have to make each platform see the correct
headers for the C++ libraries, and then the mangling probably changes between
them and, erk. No. that won't work)

Nicholas Clark
-- 
Even better than the real thing:        http://nms-cgi.sourceforge.net/

Reply via email to