--------------------------------------------------------------
What happens when you run the following script:

#######################
use warnings;

use Inline C => Config =>
    BUILD_NOISY => 1;

use Inline C => <<'EOC';

SV * foo() {
     return &PL_sv_yes;
}

EOC

print foo();
#######################
------------------------------------------------------------------

It exits with the following error message:
Can't locate Inline.pm in @INC (@INC
contains:/usr/local/lib/perl5/5.8.6/i686-linux /usr/local/lib/perl5/5.8.6
/usr/local/lib/perl5/site_perl/5.8.6/i686-linux
/usr/local/lib/perl5/site_perl/5.8.6 /usr/local/lib/perl5/site_perl .) at
a.pl line 7.
BEGIN failed--compilation aborted at a.pl line 7.

The file libperl.a does exist on my machine. perl -V:libperl produces
"libperl='libperl.a'". So I am assuming that libperl is installed. 

perl -V produces the following output:

Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
  Platform:
    osname=linux, osvers=2.4.21-27.elsmp, archname=i686-linux
    uname='linux login01 2.4.21-27.elsmp #1 smp wed dec 1 21:59:02 est 2004
i686 i686 i386 gnulinux '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
    optimize='-O2',
    cppflags='-fno-strict-aliasing -pipe -I/usr/include/gdbm'
    ccversion='', gccversion='3.2.3 20030502 (Red Hat Linux 3.2.3-47)',
gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =''
    libpth=/lib /usr/lib
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
    libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.3.2'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fpic', lddlflags='-shared'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under linux
  Compiled at May 19 2005 20:12:23
  %ENV:
  @INC:
    /usr/local/lib/perl5/5.8.6/i686-linux
    /usr/local/lib/perl5/5.8.6
    /usr/local/lib/perl5/site_perl/5.8.6/i686-linux
    /usr/local/lib/perl5/site_perl/5.8.6
    /usr/local/lib/perl5/site_perl
    .
--------------------------------------------------------

Thanks for all your help.

Ganesh
-----Original Message-----
From: Sisyphus [mailto:[email protected]] 
Sent: Thursday, August 27, 2009 9:20 PM
To: Ganesh Krishnan; [email protected]
Subject: Re: [Perldl] Problems with compiling/installing PDL


----- Original Message ----- 
From: "Ganesh Krishnan" <[email protected]>

>
> Can't load '......./PDL/Core/Core.so' for module PDL::Core:
> ......./perl_modules/PDL/i686-linux/auto/PDL/Core/Core.so: undefined 
> symbol:
> PL_sv_yes at 
> /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/DynaLoader.pm
> line 230.
>
> at ......../perl_modules/PDL/i686-linux/PDL/Fit/LM.pm line 26
>

Looks like a broken perl to me.

What happens when you run the following script:

#######################
use warnings;

use Inline C => Config =>
    BUILD_NOISY => 1;

use Inline C => <<'EOC';

SV * foo() {
     return &PL_sv_yes;
}

EOC

print foo();
#######################

For me, it builds fine and then prints 1.

Btw, whether or not libperl.so should exist depends upon how perl was built.

(It doesn't exist for most of my linux builds.)
I think the way to tell is to run 'perl -V:libperl'. If that reports 
'libperl.so', then that file should exist (in something like 
/usr/local/lib/perl5/5.8.6/i686-linux-thread-multi/CORE/libperl.so). But if 
it reports 'libperl.a', then I don't think libperl.so should exist. (But I'm

not an expert on linux.)

Probably best to send us the output of 'perl -V', which should tell us all 
we need to know about how your prl was built.

Cheers,
Rob 



_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to