OpenBSD 5.5 was released on May 1 2014. In it, there appears to be
movement on deprecating arc4random_* function calls. A build client
builds all of the object files correctly, but is failing to link the
final exim binary with the following error:
ccache gcc -o exim acl.o child.o crypt16.o daemon.o dbfn.o debug.o
deliver.o directory.o dns.o drtables.o enq.o exim.o expand.o filter.o
filtertest.o globals.o dkim.o header.o host.o ip.o log.o lss.o match.o
moan.o os.o parse.o queue.o rda.o readconf.o receive.o retry.o
rewrite.o rfc2047.o route.o search.o sieve.o smtp_in.o smtp_out.o
spool_in.o spool_out.o std-crypto.o store.o string.o tls.o tod.o
transport.o tree.o verify.o lookups/lf_quote.o lookups/lf_check_file.o
lookups/lf_sqlperform.o local_scan.o malware.o mime.o regex.o spam.o
spool_mbox.o demime.o bmi_spam.o spf.o srs.o dcc.o dmarc.o version.o \
routers/routers.a transports/transports.a lookups/lookups.a \
auths/auths.a pdkim/pdkim.a \
-lm \
\
-L/usr/local/lib -Wl,-R/usr/local/lib -lpcre
acl.o(.text+0xe7): In function `acl_var_create':
: warning: strcpy() is almost always misused, please use strlcpy()
filter.o(.text+0x1a2d): In function `read_command_list':
: warning: strcat() is almost always misused, please use strlcat()
daemon.o(.text+0xb55): In function `daemon_go':
: warning: sprintf() is often misused, please use snprintf()
expand.o(.text+0x24c8): In function `vaguely_random_number':
: undefined reference to `arc4random_stir'
collect2: ld returned 1 exit status
Makefile:416: recipe for target 'exim' failed
gmake[1]: *** [exim] Error 1
gmake[1]: Leaving directory
'/home/farm/buildfarm/HEAD/exim.23119/src/build-OpenBSD-amd64'
Makefile:29: recipe for target 'all' failed
gmake: *** [all] Error 2
I hesitate to remove the "#define HAVE_ARC4RANDOM" from the
OS/os.h-OpenBSD because I don't want to break building on the older
versions. Anybody have suggestions of how to best fix it?
...Todd
--
The total budget at all receivers for solving senders' problems is $0.
If you want them to accept your mail and manage it the way you want,
send it the way the spec says to. --John Levine