support for Infiniband in the future. This patch also corrects
some issues we found in the socket code. [ISC-Bugs #24245]
+- Add a compile time check for the presence of the noreturn attribute
+ and use it for log_fatal if it's available. This will help code
+ checking programs to eliminate false positives.
+ [ISC-Bugs 27539]
+
Changes since 4.2.2
- Fix the code that checks for an existing DDNS transaction to cancel
[Define to 1 if the system has 'struct if_laddrreq'.])],
[AC_MSG_RESULT(no)])
+#
+# check for GCC noreturn attribute
+#
+AC_MSG_CHECKING(for GCC noreturn attribute)
+AC_TRY_COMPILE([],[void foo() __attribute__((noreturn));],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE([ISC_DHCP_NORETURN], [__attribute__((noreturn))],
+ [Define to the string for a noreturn attribute.])],
+ [AC_MSG_RESULT(no)
+ AC_DEFINE([ISC_DHCP_NORETURN], [],
+ [Define to the string for a noreturn attribute.])])
+
# Look for optional headers.
AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h)
#include <stdio.h>
])
-# Solaris does not have the msg_control or msg_controlen members in
+# Solaris does not have the msg_control or msg_controlen members
# in the msghdr structure unless you define:
#
# _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, and __EXTENSIONS__
extern void (*log_cleanup) (void);
void log_fatal (const char *, ...)
- __attribute__((__format__(__printf__,1,2)));
+ __attribute__((__format__(__printf__,1,2))) ISC_DHCP_NORETURN;
int log_error (const char *, ...)
__attribute__((__format__(__printf__,1,2)));
int log_info (const char *, ...)