SUMMARY: Re: Compile error V0.91.1: gsl_sf_exp_e redefined

Uwe Richter ur at minet.uni-jena.de
Thu Jun 10 16:19:58 CEST 2004


Hello again,

different have answered kindly and asked, please let me response in on 
posting only.

For short:
V0.91.1 now successfully compiled and classified mails. Thanks!!

Things to remember:
- OS is:
   $ sizer -v # Compaq Tru64 UNIX V5.1 (Rev. 732)
- running on:
   $ sizer -c  # cpu "DEC6600"
               # well, in real it is an AlphaServer DS20E
- C compiler is:
   $ cc -V  # Compaq C V6.3-027 on Compaq Tru64 UNIX V5.1 (Rev. 732)
            # Compiler Driver V6.3-026 (sys) cc Driver
   The system's native cc produces much more faster code than gcc -
   so for "primary service binaries" gcc is no option for us.
- Berkeley DB was db-4.2.52 built into separate dir to get included with
   --with-libdb-prefix with configure
- bogofilter version:
   0.91.1 with patches received from
   Matthias Andree <matthias.andree at gmx.de>
   (see attach check-extern_inline.diff)
   Thanks!
- configure and make (install) did well
- $ make check # (see attach make_checl.log)
   failed for:
   - t.u_fpe: ./t.u_fpe[7]: 498301 Floating exception
              maybe as Alpha is little endian
   - t.multiple.wordlists: ?
   - t.MH: ?
   - t.maildir: ?
   scipped:
   - t.valgrind: ?
- tested bogofilter with no difficulties so far; now trying to use it
   as Sendmail milter to sort spam with procmail MDA ...

> On Wed, 9 Jun 2004 15:55:08 +0200 (CEST)
> Uwe Richter wrote:
>
>> while making bogofilter-0.91.1 with successfully built
>> db-4.2.52 under Tru64-UNIX with it's native (non GNU) cc I get a
>> cc: Error: ../gsl/specfunc/exp.c, line 108: This declaration contains
>> a redefinition of "gsl_sf_exp_e".  The previous declaration is at line
>> number 45 in file ../gsl/gsl_sf_exp.h. (redef)
>> int gsl_sf_exp_e(const double x, gsl_sf_result * result)
>> ----^
>> Configure did
>> ...
>> checking for gsl-config... no
>> checking for GSL - version >= 1.4... no
>> checking for gsl-config... (cached) no
>> checking for GSL - version >= 1.0... no
>> so i think the "internal GSL functions" are used.
>>
[...]
> Date: Wed, 9 Jun 2004 10:16:32 -0400
> From: David Relson <relson at osagesoftware.com>
>
> I'm not familiar with the Tru64-UNIX environment, but I'll see if I can
> help.
>
> Have you built bogofilter with Tru64-UNIX before?  What version of
> bogofilter?

No, not successfully. make'ing Bogofilter v0.17.5 showed exact the same 
effect.

> It sounds like a typedef or #define symbol may be changing after exp.h
> is read (and the function prototype is given) and before exp.c is
> compiled (where the function declaration appears). Have you tried
> generating preprocessor output to see what the expanded prototype and
> declaration _really_ are?

Hmm, I saw "HIDE_INLINE_STATIC" beeing ifndef'ed around
were gsl_sf_exp_e was defined in ./gsl/specfunc/exp.c and tried 
configure'ing with CFLAGS="-DHIDE_INLINE_STATIC". But this led to
libbf_gsl.a(libbf_gsl_a-gamma_inc.o): gsl_pow_2: multiply defined
... 137 times up to ...
libbf_gsl.a(libbf_gsl_a-elementary.o): GSL_MIN_LDBL: multiply defined
and failed while make'ing.

> Date: Wed, 9 Jun 2004 20:53:51 +0200
> From: Matthias Andree <matthias.andree at gmx.de>
[...]
> To sanity check cc, create two files, try.h and try.c:
>
> try.h:
> int f(int a);
>
> try.c:
> #include "try.h"
> #include <stdio.h>
> int f(int a) { return a*a; }
> int main() { printf("%d\n", f(42)); return 0; }
>
> Compiling try.c (cc -o try try.c) should work, and running ./try should
> print 1764.

This worked without errors for the system's cc mentioned above.

Please let me know if further things are to be tested for this HW/OS/cc 
combination.

Many thanks to all!
Best regards
Uwe

-- 
Uwe Richter, Jena University, Mathematics & Computer Science
Ernst-Abbe-Platz 2, Room#3418, D-07740 Jena, Germany
http://www.minet.uni-jena.de/~ur/
-------------- next part --------------
Index: configure.ac
===================================================================
RCS file: /cvsroot/bogofilter/bogofilter/configure.ac,v
retrieving revision 1.272
diff -u -c -p -r1.272 configure.ac
*** configure.ac	4 Jun 2004 15:30:06 -0000	1.272
--- configure.ac	9 Jun 2004 19:53:00 -0000
*************** if test "$ac_cv_c_inline" != no ; then
*** 26,31 ****
--- 26,50 ----
      AC_SUBST(HAVE_INLINE)
  fi
  
+ dnl Check for "extern inline", using a modified version
+ dnl of the test for AC_C_INLINE from acspecific.mt.
+ dnl
+ dnl Imported from the GSL 1.4 documentation (section "Autoconf Macros")
+ dnl and modified to define HAVE_EXTERN_INLINE.
+ AC_CACHE_CHECK([for extern inline], ac_cv_c_extern_inline,
+ 	       [ac_cv_c_extern_inline=no
+ 		AC_TRY_COMPILE([extern $ac_cv_c_inline double foo(double x);
+ 				extern $ac_cv_c_inline double foo(double x) { return x+1.0; };
+ 				double foo (double x) { return x + 1.0; };],
+ 				[  foo(1.0)  ],
+ 				[ac_cv_c_extern_inline="yes"])
+ 		])
+ 
+ if test "$ac_cv_c_extern_inline" != no ; then
+     AC_DEFINE(HAVE_EXTERN_INLINE,1,define to 1 if your compiler supports extern inline storage class)
+     AC_SUBST(HAVE_EXTERN_INLINE)
+ fi
+ 
  dnl Check for extension
  AC_EXEEXT
  
Index: gsl/README.bogofilter
===================================================================
RCS file: gsl/README.bogofilter
diff -N gsl/README.bogofilter
*** /dev/null	1 Jan 1970 00:00:00 -0000
--- gsl/README.bogofilter	9 Jun 2004 19:53:01 -0000
***************
*** 0 ****
--- 1,9 ----
+ README.bogofilter -- (C) 2004 by Matthias Andree, GNU GPL v2.
+ ------------------------------------------------------------------------
+ This is a stripped-down import of the GNU Scientific Library v1.4.
+ This GSL distribution has been modified:
+ 
+ 1. functions unneeded for bogofilter have been dropped
+ 2. all HAVE_INLINE have been replaced by HAVE_EXTERN_INLINE.
+ ------------------------------------------------------------------------
+ END of README.bogofilter
Index: gsl/gsl_math.h
===================================================================
RCS file: /cvsroot/bogofilter/bogofilter/gsl/gsl_math.h,v
retrieving revision 1.1
diff -u -c -p -r1.1 gsl_math.h
*** gsl/gsl_math.h	25 Sep 2003 01:13:12 -0000	1.1
--- gsl/gsl_math.h	9 Jun 2004 19:53:01 -0000
*************** double gsl_max (double a, double b);
*** 127,133 ****
  double gsl_min (double a, double b);
  
  /* inline-friendly strongly typed versions */
! #if HAVE_INLINE
  
  extern inline int GSL_MAX_INT (int a, int b);
  extern inline int GSL_MIN_INT (int a, int b);
--- 127,133 ----
  double gsl_min (double a, double b);
  
  /* inline-friendly strongly typed versions */
! #if HAVE_EXTERN_INLINE
  
  extern inline int GSL_MAX_INT (int a, int b);
  extern inline int GSL_MIN_INT (int a, int b);
*************** GSL_MIN_LDBL (long double a, long double
*** 178,184 ****
  #define GSL_MIN_DBL(a,b)   GSL_MIN(a,b)
  #define GSL_MAX_LDBL(a,b)  GSL_MAX(a,b)
  #define GSL_MIN_LDBL(a,b)  GSL_MIN(a,b)
! #endif /* HAVE_INLINE */
  
  /* Definition of an arbitrary function with parameters */
  
--- 178,184 ----
  #define GSL_MIN_DBL(a,b)   GSL_MIN(a,b)
  #define GSL_MAX_LDBL(a,b)  GSL_MAX(a,b)
  #define GSL_MIN_LDBL(a,b)  GSL_MIN(a,b)
! #endif /* HAVE_EXTERN_INLINE */
  
  /* Definition of an arbitrary function with parameters */
  
Index: gsl/gsl_pow_int.h
===================================================================
RCS file: /cvsroot/bogofilter/bogofilter/gsl/gsl_pow_int.h,v
retrieving revision 1.1
diff -u -c -p -r1.1 gsl_pow_int.h
*** gsl/gsl_pow_int.h	25 Sep 2003 01:13:12 -0000	1.1
--- gsl/gsl_pow_int.h	9 Jun 2004 19:53:01 -0000
***************
*** 32,38 ****
  
  __BEGIN_DECLS
  
! #if HAVE_INLINE
  extern inline double gsl_pow_2(const double x);
  extern inline double gsl_pow_3(const double x);
  extern inline double gsl_pow_4(const double x);
--- 32,38 ----
  
  __BEGIN_DECLS
  
! #if HAVE_EXTERN_INLINE
  extern inline double gsl_pow_2(const double x);
  extern inline double gsl_pow_3(const double x);
  extern inline double gsl_pow_4(const double x);
Index: gsl/gsl_sf_exp.h
===================================================================
RCS file: /cvsroot/bogofilter/bogofilter/gsl/gsl_sf_exp.h,v
retrieving revision 1.1
diff -u -c -p -r1.1 gsl_sf_exp.h
*** gsl/gsl_sf_exp.h	25 Sep 2003 01:13:12 -0000	1.1
--- gsl/gsl_sf_exp.h	9 Jun 2004 19:53:01 -0000
*************** int gsl_sf_exp_mult_err_e10_e(const doub
*** 130,136 ****
  __END_DECLS
  
  
! #if HAVE_INLINE
  #include <gsl/gsl_math.h>
  #include <gsl/gsl_errno.h>
  
--- 130,136 ----
  __END_DECLS
  
  
! #if HAVE_EXTERN_INLINE
  #include <gsl/gsl_math.h>
  #include <gsl/gsl_errno.h>
  
*************** int gsl_sf_exp_e(const double x, gsl_sf_
*** 158,164 ****
  
  __END_DECLS
  
! #endif /* HAVE_INLINE */
  
  
  #endif /* __GSL_SF_EXP_H__ */
--- 158,164 ----
  
  __END_DECLS
  
! #endif /* HAVE_EXTERN_INLINE */
  
  
  #endif /* __GSL_SF_EXP_H__ */
Index: gsl/gsl_sf_log.h
===================================================================
RCS file: /cvsroot/bogofilter/bogofilter/gsl/gsl_sf_log.h,v
retrieving revision 1.1
diff -u -c -p -r1.1 gsl_sf_log.h
*** gsl/gsl_sf_log.h	25 Sep 2003 01:13:12 -0000	1.1
--- gsl/gsl_sf_log.h	9 Jun 2004 19:53:01 -0000
*************** int gsl_sf_log_1plusx_mx_e(const double 
*** 78,84 ****
  double gsl_sf_log_1plusx_mx(const double x);
  
  
! #if HAVE_INLINE
  extern inline
  int
  gsl_sf_log_e(const double x, gsl_sf_result * result)
--- 78,84 ----
  double gsl_sf_log_1plusx_mx(const double x);
  
  
! #if HAVE_EXTERN_INLINE
  extern inline
  int
  gsl_sf_log_e(const double x, gsl_sf_result * result)
*************** gsl_sf_log_abs_e(const double x, gsl_sf_
*** 113,119 ****
      return GSL_SUCCESS;
    }
  }
! #endif /* HAVE_INLINE */
  
  
  __END_DECLS
--- 113,119 ----
      return GSL_SUCCESS;
    }
  }
! #endif /* HAVE_EXTERN_INLINE */
  
  
  __END_DECLS
-------------- next part --------------
No suffix list.
Making check in trio
No suffix list.
Making check in src
make  check-recursive
Making check in .
make  debugtest configtest  wordhash find_home.test  bogowordfreq fgetsl.test 
`debugtest' is up to date.
`configtest' is up to date.
`wordhash' is up to date.
`find_home.test' is up to date.
`bogowordfreq' is up to date.
`fgetsl.test' is up to date.
make  check-TESTS
Making check in tests
make  check-am
make  dehex spam_header_name  dumbhead deqp deb64 escnp  abortme u_fpe wantcore
`dehex' is up to date.
`spam_header_name' is up to date.
`dumbhead' is up to date.
`deqp' is up to date.
`deb64' is up to date.
`escnp' is up to date.
`abortme' is up to date.
`u_fpe' is up to date.
`wantcore' is up to date.
make  check-TESTS
./t._abort: valgrind: not found
PASS: t.abort
PASS: t.env
PASS: t.bogodir
./t.u_fpe[7]: 498301 Floating exception(coredump)
>>> Using core file "./core".
././printcore: gdb: not found
Problem with GDB program "gdb"
FAIL: t.u_fpe
PASS: t.ignore_spam_header
PASS: t.nullstatsprefix
PASS: t.integrity
PASS: t.integrity2
PASS: t.integrity3
PASS: t.passthrough-hb
PASS: t.escaped.html
PASS: t.escaped.url
PASS: t.split
PASS: t.parsing
PASS: t.lexer
PASS: t.lexer.mbx
PASS: t.folded_rfc2047
PASS: t.dump.load
PASS: t.nonascii.replace
PASS: t.maint
PASS: t.robx
PASS: t.regtest
PASS: t.upgrade.subnet.prefix
3,6c3,6
< ignore.db:  X-Bogosity: No, tests=bogofilter, spamicity=0.520000
< system.db:  X-Bogosity: No, tests=bogofilter, spamicity=0.213025
< user.db:    X-Bogosity: No, tests=bogofilter, spamicity=0.227378
< wordlist.db:X-Bogosity: No, tests=bogofilter, spamicity=0.246265
---
> ignore.db:  X-Bogosity: No, tests=bogofilter, spamicity=0.520000, version=0.91.1
> system.db:  X-Bogosity: No, tests=bogofilter, spamicity=0.213025, version=0.91.1
> user.db:    X-Bogosity: No, tests=bogofilter, spamicity=0.227378, version=0.91.1
> wordlist.db:X-Bogosity: No, tests=bogofilter, spamicity=0.246265, version=0.91.1
11c11
< X-Bogosity: No, tests=bogofilter, spamicity=0.246543
---
> X-Bogosity: No, tests=bogofilter, spamicity=0.246543, version=0.91.1
26c26
< X-Bogosity: No, tests=bogofilter, spamicity=0.346753
---
> X-Bogosity: No, tests=bogofilter, spamicity=0.346753, version=0.91.1
41c41
< X-Bogosity: No, tests=bogofilter, spamicity=0.317310
---
> X-Bogosity: No, tests=bogofilter, spamicity=0.317310, version=0.91.1
56c56
< X-Bogosity: No, tests=bogofilter, spamicity=0.267356
---
> X-Bogosity: No, tests=bogofilter, spamicity=0.267356, version=0.91.1
75,78c75,78
< ignore.db:  X-Bogosity: No, tests=bogofilter, spamicity=0.520000
< system.db:  X-Bogosity: No, tests=bogofilter, spamicity=0.213025
< user.db:    X-Bogosity: No, tests=bogofilter, spamicity=0.150631
< wordlist.db:X-Bogosity: No, tests=bogofilter, spamicity=0.246265
---
> ignore.db:  X-Bogosity: No, tests=bogofilter, spamicity=0.520000, version=0.91.1
> system.db:  X-Bogosity: No, tests=bogofilter, spamicity=0.213025, version=0.91.1
> user.db:    X-Bogosity: No, tests=bogofilter, spamicity=0.150631, version=0.91.1
> wordlist.db:X-Bogosity: No, tests=bogofilter, spamicity=0.246265, version=0.91.1
83c83
< X-Bogosity: No, tests=bogofilter, spamicity=0.246543
---
> X-Bogosity: No, tests=bogofilter, spamicity=0.246543, version=0.91.1
98c98
< X-Bogosity: No, tests=bogofilter, spamicity=0.346753
---
> X-Bogosity: No, tests=bogofilter, spamicity=0.346753, version=0.91.1
113c113
< X-Bogosity: No, tests=bogofilter, spamicity=0.101546
---
> X-Bogosity: No, tests=bogofilter, spamicity=0.101546, version=0.91.1
128c128
< X-Bogosity: No, tests=bogofilter, spamicity=0.105029
---
> X-Bogosity: No, tests=bogofilter, spamicity=0.105029, version=0.91.1
FAIL: t.multiple.wordlists
PASS: t.score1
PASS: t.score2
PASS: t.systest
PASS: t.grftest
PASS: t.bogoutil-hist
PASS: t.bulkmode
./t.MH[19]: 499084 Memory fault(coredump)
>>> Using core file "./checks.498853.20040610T135132/good/core".
././printcore: gdb: not found
Problem with GDB program "gdb"
FAIL: t.MH
./t.maildir[23]: 497749 Memory fault(coredump)
>>> Using core file "./checks.497971.20040610T135132/good/new/core".
././printcore: gdb: not found
Problem with GDB program "gdb"
FAIL: t.maildir
PASS: t.lock1
SKIP: t.valgrind
======================
4 of 33 tests failed
(1 tests were not run)
======================
*** Exit 1
Stop.
*** Exit 1
Stop.
*** Exit 1
Stop.
*** Exit 1
Stop.
*** Exit 1
Stop.
*** Exit 1
Stop.


More information about the Bogofilter mailing list