Subject: pkg/28819: databases/p5-DB_File on IRIX does not compile with db4
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <georg.schwarz@freenet.de>
List: pkgsrc-bugs
Date: 12/30/2004 22:39:00
>Number:         28819
>Category:       pkg
>Synopsis:       databases/p5-DB_File on IRIX does not compile with db4
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 30 22:39:00 +0000 2004
>Originator:     Georg Schwarz
>Release:        current pkgsrc
>Organization:
>Environment:
IRIX lorenz 5.3 08031225 IP20 mips
>Description:
db4/db_185.h has:

/*
 * XXX
 * SGI/IRIX already has a pgno_t.
 */
#ifdef  sgi
#define pgno_t  db_pgno_t
#endif

However, when compiling databases/p5-DB_File (and maybe others, too) or change on IRIX sgi is not defined, and thus it fails:
cfe: Error: /usr/people/schwarz/pkgsrc/databases/p5-DB_File/work/.buildlink/include/db4/db_185.h, line 80: redeclaration of 'pgno_t'; previous declaration at line 41 in file '/usr/include/sys/types.h' (3.1.2.3)


>How-To-Repeat:

>Fix:
Either define sgi by adding something like this to databases/p5-DB_File/Makefile:

--- Makefile.orig       2004-12-30 23:15:30.000000000 +0100
+++ Makefile    2004-12-30 23:16:56.000000000 +0100
@@ -21,5 +21,9 @@
 MAKE_ENV+=     DB_FILE_LIB="${BDBBASE}/lib"
 MAKE_ENV+=     DB_FILE_COMPAT185=1
 
+.if ${OPSYS} == "IRIX"
+CFLAGS+=       -Dsgi
+.endif
+
 .include "../../lang/perl5/module.mk"
 .include "../../mk/bsd.pkg.mk"


or change db4's header file to contain #ifdef __sgi instead.