Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

perl compile failure

135 views
Skip to first unread message

Ruben Safir

unread,
Dec 17, 2009, 1:44:12 PM12/17/09
to
It seems that the perl 5.10.1 won't compile on my system with is a new
opensuse 11.2


Its dieing on this line

make[1]: Entering directory `/home/ruben/Downloads/perl-5.10.1/ext/
ODBM_File'
Skip ../../lib/ODBM_File.pm (unchanged)
../../miniperl "-I../../lib" "-I../../lib" ../../lib/ExtUtils/xsubpp -
noprototypes -typemap ../../lib/ExtUtils/typemap -typemap typemap
ODBM_File.xs > ODBM_File.xsc && mv ODBM_File.xsc ODBM_File.c
gcc -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-
protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-O2 -DVERSION=\"1.07\" -DXS_VERSION=\"1.07\" -fPIC "-I../.."
ODBM_File.c
ODBM_File.xs: In function ‘XS_ODBM_File_DESTROY’:
ODBM_File.xs:124: error: too few arguments to function ‘dbmclose’
make[1]: *** [ODBM_File.o] Error 1
make[1]: Leaving directory `/home/ruben/Downloads/perl-5.10.1/ext/
ODBM_File'
Unsuccessful make(ext/ODBM_File): code=512 at make_ext.pl line 360.
make: *** [lib/auto/ODBM_File/ODBM_File.so] Error 2


in the ODBM module. Any clues on a fix?

Ruben

Ruben Safir

unread,
Dec 17, 2009, 3:44:35 PM12/17/09
to

FWIW
http://www.gossamer-threads.com/lists/perl/porters/234587


No I need to figure out where I should put the instruction

add -Dnoextensions=ODBM_File

does that mean

./Configure -dDnoextensions=ODBM_File

??

Ruben

Ben Morrow

unread,
Dec 17, 2009, 3:43:51 PM12/17/09
to

Quoth Ruben Safir <ru...@mrbrklyn.com>:

Well, if you don't need ODBM then just re-Configure perl and omit ODBM
from the list of extensions to build. Make sure you start in a clean
directory, or remove Policy.sh before starting.

Otherwise: where are you getting your <dbm.h> from? dbmclose should be
int dbmclose(void); if you have some GDBM passthrough with a different
prototype that isn't going to work.

You could also take this question to perl5-...@perl.org, which is
the list for discussing perl development (as opposed to Perl
development).

Ben

Ruben Safir

unread,
Dec 17, 2009, 4:33:15 PM12/17/09
to

Thanks Ben

I don't know where the dbm is coming or going to.

ruben@www2:~> gdb -v
GNU gdb (GDB) SUSE (6.8.91.20090930-2.4)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/
gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-suse-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.


Ruben Safir

unread,
Dec 17, 2009, 4:39:12 PM12/17/09
to

Actually, I'm wondering if this might be why CPAN is failing. Does it
use a Berkleys Database to keep track of modules?

Ruben

Ben Morrow

unread,
Dec 17, 2009, 4:45:12 PM12/17/09
to

Quoth Ruben Safir <ru...@mrbrklyn.com>:

> On Thu, 17 Dec 2009 18:44:12 +0000, Ruben Safir wrote:
>
> > It seems that the perl 5.10.1 won't compile on my system with is a new
> > opensuse 11.2
> >
> >
> > Its dieing on this line
> >
> > make[1]: Entering directory `/home/ruben/Downloads/perl-5.10.1/ext/
> > ODBM_File'
> > Skip ../../lib/ODBM_File.pm (unchanged) ../../miniperl "-I../../lib"
> > "-I../../lib" ../../lib/ExtUtils/xsubpp - noprototypes -typemap
> > ../../lib/ExtUtils/typemap -typemap typemap ODBM_File.xs > ODBM_File.xsc
> > && mv ODBM_File.xsc ODBM_File.c gcc -c -D_REENTRANT -D_GNU_SOURCE
> > -fno-strict-aliasing -pipe -fstack- protector -I/usr/local/include
> > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.07\"
> > -DXS_VERSION=\"1.07\" -fPIC "-I../.." ODBM_File.c
> > ODBM_File.xs: In function ‘XS_ODBM_File_DESTROY’: ODBM_File.xs:124:
> > error: too few arguments to function ‘dbmclose’ make[1]: ***
> > [ODBM_File.o] Error 1
> > make[1]: Leaving directory `/home/ruben/Downloads/perl-5.10.1/ext/
> > ODBM_File'
> > Unsuccessful make(ext/ODBM_File): code=512 at make_ext.pl line 360.
> > make: *** [lib/auto/ODBM_File/ODBM_File.so] Error 2
>
> FWIW
> http://www.gossamer-threads.com/lists/perl/porters/234587
>
>
> No I need to figure out where I should put the instruction
>
> add -Dnoextensions=ODBM_File
>
> does that mean
>
> ./Configure -dDnoextensions=ODBM_File

./Configure -Dnoextensions=ODBM_File -des

is probably what you want (assuming you just used '-d' before).
Generally you always want '-des', unless you want an interactive
Configure.

Ben

Ben Morrow

unread,
Dec 17, 2009, 6:43:22 PM12/17/09
to

Quoth Ruben Safir <ru...@mrbrklyn.com>:
> > I don't know where the dbm is coming or going to.

The easiest way to find out is:

- rebuild with ODBM_File included, and wait for it to fail,
- cd to the ext/ODBM_File directory,
- type 'make ODBM_File.i',
- search through ODBM_File.i for 'dbm.h', and check the full path,
- find out where you got that file from (ask rpm, perhaps).

> Actually, I'm wondering if this might be why CPAN is failing. Does it
> use a Berkleys Database to keep track of modules?

ODBM is not the same as Berkely DB. The normal Perl interface to bdb is
DB_File, though there is a more complete BerkelyDB module on CPAN.

I seriously doubt CPAN.pm uses ODBM_File. If anything, it might use
dbmopen/AnyDBM_File, but since that will choose ODBM *last* of the
available options it's unlikely it would end up using it.

Unless you have some code that asks for ODBM_File specifically, I'd just
build a perl without it. I'm fairly certain all you'd end up with is a
compatibility layer from some other DBM library (probably GDBM) anyway.

Ben

0 new messages