develooper Front page | perl.perl5.porters | Postings from August 2009

ODBM_File

Thread Next
From:
H.Merijn Brand
Date:
August 26, 2009 03:35
Subject:
ODBM_File
Message ID:
20090826123502.7790493f@pc09.procura.nl
        Making ODBM_File (all)
make[1]: Entering directory `/pro/3gl/CPAN/perl-current/ext/ODBM_File'
make[1]: Leaving directory `/pro/3gl/CPAN/perl-current/ext/ODBM_File'
Making all in ext/ODBM_File
 make all PERL_CORE=1 LIBPERL_A=libperl.a LINKTYPE=dynamic
make[1]: Entering directory `/pro/3gl/CPAN/perl-current/ext/ODBM_File'
cc -c   -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/pro/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 `/pro/3gl/CPAN/perl-current/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


Hmm.

on OpenSUSE 11.1, dbmclose () is defined in
/usr/lib/libgdbm_compat.a[close.o]

$ grep -P '\bdbm_?close\b' /usr/include/dbm.h
extern int      dbmclose __P((DBM *));
$ man dbmclose
No manual entry for dbmclose
$ man dbm_close
:
   void dbm_close (DBM *db);
:
   The dbm_close () function shall close a database.  The application
   shall ensure that argument db is a pointer to a dbm structure that
   has been returned from a call to dbm_open ().
:
$ man gdbm
:
   void
   gdbm_close (dbf)
   GDBM_FILE dbf;
:
   int
   dbmclose ()
:
   void
   dbm_close (file)
   DBM *file;
$

So, *OBVIOUSLY* the man page, and the include file do not agree.
In this case, the include file is obviously wrong, but it prevents perl
to be compiled without excluding ODBM_File.

I /think/ it is possible to detect this and create a temporary copy of
the bogus include file that fixed the prototype, but is it worth the
trouble?

-- 
H.Merijn Brand  http://tux.nl      Perl Monger  http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org/
http://qa.perl.org      http://www.goldmark.org/jeff/stupid-disclaimers/

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About