From: Jeremy Harris Date: Mon, 30 May 2022 14:57:18 +0000 (+0100) Subject: Fix build on BSDs & Solaris X-Git-Tag: exim-4.97-RC0~282^2~16 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/48ea675fee2d5fee8d33c525e28727b69114cfce Fix build on BSDs & Solaris Broken-by: 204a7a2c2e --- diff --git a/src/OS/Makefile-FreeBSD b/src/OS/Makefile-FreeBSD index 02253d9c6..4793a438b 100644 --- a/src/OS/Makefile-FreeBSD +++ b/src/OS/Makefile-FreeBSD @@ -13,7 +13,7 @@ PERL_COMMAND=/usr/local/bin/perl HAVE_SA_LEN=YES # crypt() is in a separate library -LIBS=-lcrypt -lm -lutil +LIBS=-lcrypt -lm -lutil -lexecinfo # Dynamically loaded modules need to be built with -fPIC CFLAGS_DYNAMIC=-shared -rdynamic -fPIC diff --git a/src/OS/Makefile-OpenBSD b/src/OS/Makefile-OpenBSD index 697632682..7c451e2cc 100644 --- a/src/OS/Makefile-OpenBSD +++ b/src/OS/Makefile-OpenBSD @@ -23,6 +23,7 @@ EXIWHAT_EGREP_ARG='/exim( |$$)' EXIWHAT_KILL_SIGNAL=-USR1 HAVE_IPV6=YES +CFLAGS += -DNO_EXECINFO # OpenBSD ships with a too-old Berkeley DB. NDBM is the default if we don't specify one. #USE_DB=yes diff --git a/src/OS/Makefile-SunOS5 b/src/OS/Makefile-SunOS5 index 3b436f4bf..d07adcff4 100644 --- a/src/OS/Makefile-SunOS5 +++ b/src/OS/Makefile-SunOS5 @@ -20,5 +20,6 @@ X11LIB=$(X11)/lib OS_C_INCLUDES=setenv.c CFLAGS += -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -D__EXTENSIONS__ +CFLAGS += -DNO_EXECINFO # End diff --git a/src/src/exim.c b/src/src/exim.c index 6fde16a9c..14c3359ca 100644 --- a/src/src/exim.c +++ b/src/src/exim.c @@ -20,7 +20,9 @@ Also a few functions that don't naturally fit elsewhere. */ #ifndef _TIME_H # include #endif -#include /*XXX maybe glibc-only? */ +#ifndef NO_EXECINFO +# include +#endif #ifdef USE_GNUTLS # include @@ -266,6 +268,7 @@ exit(1); void stackdump(ucontext_t * ucontext) { +#ifndef NO_EXECINFO void * buf[STACKDUMP_MAX]; char ** ss; int nptrs = backtrace(buf, STACKDUMP_MAX); @@ -281,6 +284,7 @@ if ((ss = backtrace_symbols(buf, nptrs))) else log_write(0, LOG_MAIN|LOG_PANIC, "backtrace_symbols: %s\n", strerror(errno)); log_write(0, LOG_MAIN|LOG_PANIC, "---\n"); +#endif } #undef STACKDUMP_MAX