tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

perl-5.8.8nb8 binary package problem



Hi, I had a problem using Kakasi.so in p5-Text-Kakasi.

The symptom was that when the Perl module Kakasi.so was
invoked from another perl script, it said:

/usr/pkg/lib/perl5/vendor_perl/5.8.0/i386-netbsd-thread-multi/auto/Text/Kakasi/Kakasi.so:
 
Undefined PLT symbol "kakasi_getopt_argv" (symnum = 14)

The library kakasi_getopt_argv is in /usr/pkg/lib/libkakasi.so, 
but by some reason, Kakasi.so won't reference that library.

The first glance falls to 
   'Text-Kakasi-1.05/Makefile.PL'
This file has the line:
--------------
 'INC' => '-I/usr/local/include',
 'LIBS' => ['-L/usr/local/lib -lkakasi'],
--------------
 I have asked the obache san and he has the same environment
(NetBSD/i386 4.0), but he has no problem in doing the same
thing. So the above line should not be a problem.

He suggested to look at the perl config with the line
------------
perl -e 'use Config; print $Config{libpth}'
------------
The result of various installation (the last line was added later) 
were:
--------------------------------------------------------
package name,   installed by,    output of above command
--------------------------------------------------------
perl-5.8.8nb6,  binary package, /usr/lib
perl-5.8.8nb8,  binary package, /usr/lib
perl-5.8.8nb8,  made from pkgsrc, /usr/lib /usr/pkg/lib
--------------------------------------------------------
Now we have to look at the origin of the binary package.
It would be checked by

 pkg_info -Q BUILD_HOST perl

Now binary package version shows, for example,
--------------------------------------------------------
NetBSD twist.lip6.fr 4.0 NetBSD 4.0 (XEN3_DOMU) #0: 
Sun Dec 16 01:26:00 PST 2007  
builds@wb34:/home/builds/ab/netbsd-4-0-RELEASE/i386/200712160005Z-obj/
home/builds/ab/netbsd-4-0-RELEASE/src/sys/arch/i386/compile/XEN3_DOMU i386
--------------------------------------------------------

Then we checked the difference between made-from-pkgsrc and binary-packge,
and it turned out that the file
    lib/perl5/5.8.0/i386-netbsd-thread-multi/Config.pm

are different.
--------------------------------------------------------
--- bouyer/lib/perl5/5.8.0/i386-netbsd-thread-multi/Config.pm   2008-06-02 
23:04:40.000000000 +0900
+++ pkgsrc/lib/perl5/5.8.0/i386-netbsd-thread-multi/Config.pm   2008-07-08 
15:15:41.000000000 +0900
@@ -81,9 +81,9 @@
     inc_version_list => ' ',
     intsize => '4',
     ldlibpthname => 'LD_LIBRARY_PATH',
-    libpth => '/usr/lib',
+    libpth => '/usr/lib /usr/pkg/lib',
     osname => 'netbsd',
-    osvers => '4.0',
+    osvers => '4.0.0_patch',
     path_sep => ':',
     privlibexp => '/usr/pkg/lib/perl5/5.8.0',
     scriptdir => '/usr/pkg/lib/perl5/bin',
--------------------------------------------------------

   lib/perl5/5.8.0/i386-netbsd-thread-multi/Config_heavy.pl
also has some differences,
--------------------------------------------------------
-ccflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement'
+ccflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement 
-I/usr/pkg/include'

-cppflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement'
+cppflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement 
-I/usr/pkg/include'

-lddlflags='-Wl,-R/usr/pkg/lib --whole-archive -shared '
-ldflags='-Wl,-R/usr/pkg/lib '
+lddlflags='-Wl,-R/usr/pkg/lib --whole-archive -shared  -L/usr/pkg/lib'
+ldflags='-Wl,-R/usr/pkg/lib  -L/usr/pkg/lib'
... (omitted) ...
--------------------------------------------------------

Then I have made perl-5.8.8nb8 from pkgsrc/lang/perl5. 
After that, p5-Text-Kakasi is packaged again.
The problem, not able to find library in libkakasi.so, gone away.

Your opinion ?
(I am thinking to provide more simple example.)
----
Makoto Fujiwara


Home | Main Index | Thread Index | Old Index