Include cstring for sanity_test_fdelt if required
SmartOS FD_ZERO is implemented in a way that requires an external declaration of memcpy. We can not simply include cstring in the existing file because sanity_test_memcpy is attempting to replace memcpy, but we can do so here, now that the fdelt test is split out.
This commit is contained in:
parent
7fb886b1b1
commit
b4fd0ca9be
2 changed files with 36 additions and 0 deletions
33
configure.ac
33
configure.ac
|
@ -758,6 +758,39 @@ fi
|
||||||
|
|
||||||
AC_CHECK_HEADERS([endian.h sys/endian.h byteswap.h stdio.h stdlib.h unistd.h strings.h sys/types.h sys/stat.h sys/select.h sys/prctl.h])
|
AC_CHECK_HEADERS([endian.h sys/endian.h byteswap.h stdio.h stdlib.h unistd.h strings.h sys/types.h sys/stat.h sys/select.h sys/prctl.h])
|
||||||
|
|
||||||
|
# FD_ZERO may be dependent on a declaration of memcpy, e.g. in SmartOS
|
||||||
|
# check that it fails to build without memcpy, then that it builds with
|
||||||
|
AC_MSG_CHECKING(FD_ZERO memcpy dependence)
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <cstddef>
|
||||||
|
#if HAVE_SYS_SELECT_H
|
||||||
|
#include <sys/select.h>
|
||||||
|
#endif
|
||||||
|
]],[[
|
||||||
|
#if HAVE_SYS_SELECT_H
|
||||||
|
fd_set fds;
|
||||||
|
FD_ZERO(&fds);
|
||||||
|
#endif
|
||||||
|
]])],
|
||||||
|
[ AC_MSG_RESULT(no) ],
|
||||||
|
[
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <cstring>
|
||||||
|
#if HAVE_SYS_SELECT_H
|
||||||
|
#include <sys/select.h>
|
||||||
|
#endif
|
||||||
|
]], [[
|
||||||
|
#if HAVE_SYS_SELECT_H
|
||||||
|
fd_set fds;
|
||||||
|
FD_ZERO(&fds);
|
||||||
|
#endif
|
||||||
|
]])],
|
||||||
|
[ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_CSTRING_DEPENDENT_FD_ZERO, 1, [Define this symbol if FD_ZERO is dependent of a memcpy declaration being available]) ],
|
||||||
|
[ AC_MSG_ERROR(failed with cstring include) ]
|
||||||
|
)
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
AC_CHECK_DECLS([getifaddrs, freeifaddrs],,,
|
AC_CHECK_DECLS([getifaddrs, freeifaddrs],,,
|
||||||
[#include <sys/types.h>
|
[#include <sys/types.h>
|
||||||
#include <ifaddrs.h>]
|
#include <ifaddrs.h>]
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_SYS_SELECT_H)
|
#if defined(HAVE_SYS_SELECT_H)
|
||||||
|
#ifdef HAVE_CSTRING_DEPENDENT_FD_ZERO
|
||||||
|
#include <cstring>
|
||||||
|
#endif
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
|
|
||||||
// trigger: Call FD_SET to trigger __fdelt_chk. FORTIFY_SOURCE must be defined
|
// trigger: Call FD_SET to trigger __fdelt_chk. FORTIFY_SOURCE must be defined
|
||||||
|
|
Loading…
Add table
Reference in a new issue