Package: libdb4.6
Version: 4.6.18-1
Severity: serious

Hi,

bogofilter currently FTBFS on sparc becauses a configure test dies with
a bus error in libdb4.6.  The test program is attached for reference.

The first error was:
Program terminated with signal 10, Bus error.
#0  0xf7d9b6fc in __env_alloc (infop=<value optimized out>,
 len=264,  retp=0xffec5888) at ../dist/../env/env_alloc.c:275
#1  0xf7da32e0 in __env_attach () from /usr/lib/libdb-4.6.so
#2  0xf7da052c in __env_open () from /usr/lib/libdb-4.6.so
#3  0x00010674 in main () at conftest.c:107

I then did this change:
< Clint> try changing env_alloc.c:66 to
< Clint> } ALLOC_ELEMENT __attribute__ ((aligned));
< Clint> and see if that helps

which resulted in:
#0  __env_alloc (infop=<value optimized out>, len=264, retp=0xffd6b6c8)
        at ../dist/../env/env_alloc.c:280
280             elp->ulen = len;

And with this change:
< Clint> jcristau: dbinc/region.h:205, change size_t pad to uintmax_t

bogofilter built without error.

Cheers,
Julien
/* confdefs.h.  */
#define PACKAGE_NAME "bogofilter"
#define PACKAGE_TARNAME "bogofilter"
#define PACKAGE_VERSION "1.1.5"
#define PACKAGE_STRING "bogofilter 1.1.5"
#define PACKAGE_BUGREPORT ""
#define PACKAGE "bogofilter"
#define VERSION "1.1.5"
#define HAVE_INLINE 1
#define HAVE_EXTERN_INLINE 1
#define _FILE_OFFSET_BITS 64
#define HAVE_LIBM 1
#define HAVE_DECL_GETOPT 1
#define HAVE_DECL_OPTRESET 0
#define HAVE_DECL_O_DSYNC 1
#define HAVE_DECL_O_SYNC 1
#define HAVE_DECL_O_FSYNC 0
#define __NO_CTYPE 1
#define SPAM_HEADER_NAME "X-Bogosity"
#define HAVE_ICONV 1
#define ICONV_CONST 
#define ENABLE_UNICODE 1
#define DEFAULT_CHARSET "iso-8859-1"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE__BOOL 1
#define HAVE_STDBOOL_H 1
#define HAVE_DIRENT_H 1
#define TIME_WITH_SYS_TIME 1
#define HAVE_SYSLOG_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_FCNTL_H 1
#define HAVE_STRING_H 1
#define HAVE_STRINGS_H 1
#define HAVE_UNISTD_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDARG_H 1
#define HAVE_STDINT_H 1
#define HAVE_LIMITS_H 1
#define HAVE_FLOAT_H 1
#define RETSIGTYPE void
#define HAVE_SYS_SELECT_H 1
#define HAVE_SYS_SOCKET_H 1
#define SELECT_TYPE_ARG1 int
#define SELECT_TYPE_ARG234 (fd_set *)
#define SELECT_TYPE_ARG5 (struct timeval *)
#define PROTOTYPES 1
#define __PROTOTYPES 1
#define HAVE_UINT 1
#define HAVE_ULONG 1
#define HAVE_UINT32_T 1
#define HAVE_U_INT32_T 1
#define HAVE_INT32_T 1
#define HAVE_INT16_T 1
#define HAVE_U_INT16_T 1
#define HAVE_UINT16_T 1
#define HAVE_U_INT8_T 1
#define HAVE_SSIZE_T 1
#define HAVE_RLIM_T 1
#define SIZEOF_SHORT 2
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
#define SIZEOF_SIZE_T 4
#define HAVE_STDLIB_H 1
#define HAVE_UNISTD_H 1
#define HAVE_GETPAGESIZE 1
#define HAVE_MMAP 1
#define HAVE_VPRINTF 1
#define HAVE_STRCHR 1
#define HAVE_STRRCHR 1
#define HAVE_MEMCPY 1
#define HAVE_MEMMOVE 1
#define HAVE_SNPRINTF 1
#define HAVE_VSNPRINTF 1
#define HAVE_GETOPT_LONG 1
#define HAVE_STRERROR 1
#define HAVE_STRTOUL 1
#define HAVE_DECL_DB_CREATE 1
/* end confdefs.h.  */

#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#include <db.h>
#include <stdio.h>
#include <stdlib.h>
#define TESTDIR "bfadtestdir"
#define barf(where, what) do { fprintf(stderr, "%s failed: %s\n", where, db_strerror(what)); exit(1); } while(0)

int
main ()
{

    DB_ENV *e;
    int r;
    if ((r = db_env_create(&e, 0))) barf("db_env_create", r);
    if ((r = e->open(e, TESTDIR, DB_INIT_LOG|DB_INIT_TXN|DB_INIT_MPOOL|DB_CREATE, 0664)))
	barf("DB_ENV->open", r);
    if ((r = e->close(e, 0)))
        barf("DB_ENV->close", r);
    if ((r = db_env_create(&e, 0))) barf("db_env_create", r);
    if ((r = e->remove(e, TESTDIR, 0))) barf("DB_ENV->remove", r);
    return 0;

  ;
  return 0;
}

Attachment: signature.asc
Description: Digital signature

Reply via email to