summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2022-05-30 15:57:18 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2022-05-30 15:57:18 +0100
commit48ea675fee2d5fee8d33c525e28727b69114cfce (patch)
treeb7dcb5b11231df01ae034b0fc4ee193d713c3582
parent204a7a2c2e8601558905dc34c576a627045a9f21 (diff)
downloadexim4-48ea675fee2d5fee8d33c525e28727b69114cfce.tar.gz
Fix build on BSDs & Solaris
Broken-by: 204a7a2c2e
-rw-r--r--src/OS/Makefile-FreeBSD2
-rw-r--r--src/OS/Makefile-OpenBSD1
-rw-r--r--src/OS/Makefile-SunOS51
-rw-r--r--src/src/exim.c6
4 files changed, 8 insertions, 2 deletions
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 <time.h>
#endif
-#include <execinfo.h> /*XXX maybe glibc-only? */
+#ifndef NO_EXECINFO
+# include <execinfo.h>
+#endif
#ifdef USE_GNUTLS
# include <gnutls/gnutls.h>
@@ -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