Hi,
The default settings for CC and USE_DB for FreeBSD seem to be out-of-date.
1. Since FreeBSD 10.0-RELEASE on most platforms, FreeBSD has not included
gcc in the base OS --
https://www.freebsd.org/releases/10.0R/relnotes/#userland
I'd suggest setting CC=cc in OS/Makefile-FreeBSD to use the clang compiler
instead.
2. Makefile-FreeBSD enables the use of FreeBSD's built-in Berkeley DB,
which is no longer useful because it's Berkeley DB v1. That causes the
error below. I'd suggest removing USE_DB from OS/Makefile-FreeBSD. Since
FreeBSD also includes ndbm.h, Exim will use that instead.
Thanks,
David Siebörger
$ git clone -q git://git.exim.org/exim.git
$ cd exim/src
$ mkdir Local
$ cp src/EDITME Local/Makefile
$ echo CC=cc >> Local/Makefile
$ echo EXIM_USER=mailnull >> Local/Makefile
$ make
/bin/sh scripts/source_checks
>>> Creating lookups/Makefile for building dynamic modules
>>> New Makefile & lookups/Makefile installed
>>> Use "make makefile" if you need to force rebuilding of the makefile
/bin/sh ../scripts/Configure-config.h "make"
`buildconfig' is up to date.
Building configuration file config.h
>>> config.h built
/bin/sh ../scripts/Configure-os.h
cc -DMACRO_PREDEF macro_predef.c
In file included from macro_predef.c:13:
In file included from ./exim.h:536:
./hintsdb.h:466:4: error: Berkeley DB version 1 is no longer supported
# error Berkeley DB version 1 is no longer supported
^
./hintsdb.h:756:15: error: unknown type name 'EXIM_DB'
static inline EXIM_DB *
^
./hintsdb.h:760:8: warning: implicit declaration of function 'exim_dbopen__' is invalid in C99 [-Wimplicit-function-declaration]
return exim_dbopen__(name, dirname, flags, mode);
^
./hintsdb.h:760:8: warning: incompatible integer to pointer conversion returning 'int' from a function with result type 'int *' [-Wint-conversion]
return exim_dbopen__(name, dirname, flags, mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./hintsdb.h:764:14: error: unknown type name 'EXIM_DB'
exim_dbclose(EXIM_DB * dbp)
^
./hintsdb.h:765:3: warning: implicit declaration of function 'exim_dbclose__' is invalid in C99 [-Wimplicit-function-declaration]
{ exim_dbclose__(dbp); }
^
In file included from macro_predef.c:13:
In file included from ./exim.h:543:
./dbfunctions.h:20:37: error: unknown type name 'EXIM_CURSOR'
uschar *dbfn_scan(open_db *, BOOL, EXIM_CURSOR **);
^
3 warnings and 4 errors generated.
*** Error code 1
Stop.
make[1]: stopped in /home/drs/src/exim/src/build-FreeBSD-amd64
*** Error code 1
Stop.
make: stopped in /home/drs/src/exim/src