Hi folks:

  Running a simple Inline C program on a Linux system with late model
perl, Inline 0.44.  Getting an error I don't know how to handle.  Any
suggestions?  Here is the error, the program, and the system information.

--- Error ---

Can't locate auto/main/solve_for.al in @INC (@INC contains:
/home/landman/_Inline/lib /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/5.8.8
/usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl .) at
./gsltest2.pl line 34

-------------

--- Full output ---

[EMAIL PROTECTED]:~] 115 >./gsltest2.pl
<-----------------------Information
Section----------------------------------->

Information about the processing of your Inline C code:

Your source code needs to be compiled. I'll use this build directory:
/home/landman/_Inline/build/solve_for

and I'll install the executable as:
/home/landman/_Inline/lib/auto/solve_for/solve_for.so

No C functions have been successfully bound to Perl.


<-----------------------End of Information
Section---------------------------->
Starting Build Prepocess Stage
Finished Build Prepocess Stage

Starting Build Parse Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Writing Makefile for solve_for
  Finished "perl Makefile.PL" Stage

  Starting "make" Stage
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp  -typemap
/usr/lib/perl5/5.8.8/ExtUtils/typemap   solve_for.xs > solve_for.xsc &&
mv solve_for.xsc solve_for.c
cc -c  -I/home/landman -I/usr/include -D_REENTRANT -D_GNU_SOURCE
-DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe
-Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe
-DVERSION=\"0.00\" -DXS_VERSION=\"0.00\" -fPIC
"-I/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE"   solve_for.c
solve_for.xs: In function 'solve_for':
solve_for.xs:8: warning: 'x' is used uninitialized in this function
Running Mkbootstrap for solve_for ()
chmod 644 solve_for.bs
rm -f blib/arch/auto/solve_for/solve_for.so
LD_RUN_PATH="/usr/lib64" cc  -shared -L/usr/local/lib64 solve_for.o  -o
blib/arch/auto/solve_for/solve_for.so   \
   -lgsl        \

chmod 755 blib/arch/auto/solve_for/solve_for.so
cp solve_for.bs blib/arch/auto/solve_for/solve_for.bs
chmod 644 blib/arch/auto/solve_for/solve_for.bs
  Finished "make" Stage

  Starting "make install" Stage
Installing /home/landman/_Inline/lib/auto/solve_for/solve_for.so
Installing /home/landman/_Inline/lib/auto/solve_for/solve_for.bs
Files found in blib/arch: installing files in blib/lib into architecture
dependent library tree
Writing /home/landman/_Inline/lib/auto/solve_for/.packlist
  Finished "make install" Stage

  Starting Cleaning Up Stage
  Finished Cleaning Up Stage

Finished Build Compile Stage

Can't locate auto/main/solve_for.al in @INC (@INC contains:
/home/landman/_Inline/lib /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/5.8.8
/usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl .) at
./gsltest2.pl line 34

------------------

--- Program ---
#!/usr/bin/perl


my (@k, $k_pointer, @f, $f_pointer, $s);
my ($x,$p,$K,$F,$x);

use Inline C;
use Inline (C => Config =>
             LIBS       => '-lgsl',
             INC        => '-I/usr/include',
             DISABLE    => 'AUTONAME',
             NAME       => 'solve_for',
             BUILD_NOISY=> 'ENABLED',
             PRINT_INFO => 'ENABLED'
           );   
        

@k      = qw(
             0.1, 0.2, 0.0,
             0.0, 0.2, 0.3,
             1.0, 1.0, 1.0
            );
        
@f      = qw(
              4.0,
              3.0,
              2.0
            );


$x      = solve_for (@f,@k);

printf "x = %s\n",$x;

__END__
__C__
double *solve_for(double* f, double* k) {
  double *x;

  *x=0.0;
  return x;
}
----------------

--- Perl info ---

[EMAIL PROTECTED]:~] 118 >perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
  Platform:
    osname=linux, osvers=2.6.16, archname=x86_64-linux-thread-multi
    uname='linux dvorak 2.6.16 #1 smp mon apr 10 04:51:13 utc 2006
x86_64 x86_64 x86_64 gnulinux '
    config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr
-Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm
-Duseshrplib=true -Doptimize=-O2 -fmessage-length=0 -Wall
-D_FORTIFY_SOURCE=2 -g -Wall -pipe'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=define use64bitall=define uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall
-pipe',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING
-fno-strict-aliasing -pipe -Wdeclaration-after-statement'
    ccversion='', gccversion='4.1.0 (SUSE Linux)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib64'
    libpth=/lib64 /usr/lib64 /usr/local/lib64
    libs=-lm -ldl -lcrypt -lpthread
    perllibs=-lm -ldl -lcrypt -lpthread
    libc=/lib64/libc-2.4.so, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.4'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E
-Wl,-rpath,/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64'


Characteristics of this binary (from libperl):
  Compile-time options: DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_PERLIO USE_REENTRANT_API
  Built under linux
  Compiled at Apr 22 2006 23:33:01
  @INC:
    /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/5.8.8
    /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.8.8
    /usr/lib/perl5/site_perl
    /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.8.8
    /usr/lib/perl5/vendor_perl
    .


-----------------

--- OS Info ---

[EMAIL PROTECTED]:~] 119 >uname -a
Linux balto 2.6.16.13-4-default #1 Wed May 3 04:53:23 UTC 2006 x86_64
x86_64 x86_64 GNU/Linux

-----------------

--- _Inline contents ---

[EMAIL PROTECTED]:~] 122 >find _Inline/
_Inline/
_Inline/config
_Inline/build
_Inline/lib
_Inline/lib/auto
_Inline/lib/auto/solve_for
_Inline/lib/auto/solve_for/solve_for.so
_Inline/lib/auto/solve_for/solve_for.bs
_Inline/lib/auto/solve_for/solve_for.inl

-----------------------

--- Sanity check ---

[EMAIL PROTECTED]:~] 124 >cat inline.pl
#!/usr/bin/perl
           use Inline C;
           greet('Joe');

           __END__
           __C__
           void greet(char* name) {
             printf("Hello %s!\n", name);
           }

[EMAIL PROTECTED]:~] 125 >./inline.pl
Hello Joe!

----------------------


-- 
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics LLC,
email: [EMAIL PROTECTED]
web  : http://www.scalableinformatics.com
phone: +1 734 786 8423
fax  : +1 734 786 8452 or +1 866 888 3112
cell : +1 734 612 4615

Reply via email to