From 8c45f14f0adbff0d1df8acc7442988ad3a519f78 Mon Sep 17 00:00:00 2001 From: EduardoRFS Date: Thu, 2 Jul 2020 07:07:26 -0300 Subject: [PATCH] check if shmat is available to use afl * Android has sys/shm.h but doesn't have shmat --- configure | 24 +++++++++++++++++------- configure.ac | 8 +++++++- runtime/afl.c | 2 +- runtime/caml/s.h.in | 2 ++ 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/configure b/configure index b4ffd63d8..418ea6796 100755 --- a/configure +++ b/configure @@ -12998,13 +12998,6 @@ if test "x$ac_cv_header_stdint_h" = xyes; then : fi -ac_fn_c_check_header_mongrel "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_shm_h" = xyes; then : - $as_echo "#define HAS_SYS_SHM_H 1" >>confdefs.h - -fi - - ac_fn_c_check_header_compile "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "#include " if test "x$ac_cv_header_dirent_h" = xyes; then : @@ -15604,6 +15597,23 @@ if test "x$ac_cv_func_getauxval" = xyes; then : fi +## shmat +ac_fn_c_check_header_mongrel "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_shm_h" = xyes; then : + + $as_echo "#define HAS_SYS_SHM_H 1" >>confdefs.h + + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = xyes; then : + $as_echo "#define HAS_SHMAT 1" >>confdefs.h + +fi + + +fi + + + ## execvpe ac_fn_c_check_func "$LINENO" "execvpe" "ac_cv_func_execvpe" diff --git a/configure.ac b/configure.ac index 4e9d485dd..9ab754bc8 100644 --- a/configure.ac +++ b/configure.ac @@ -740,7 +740,6 @@ AS_IF([test "x$ac_cv_lib_m_cos" = xyes ], [mathlib="-lm"], [mathlib=""]) AC_CHECK_HEADER([math.h]) AC_CHECK_HEADERS([unistd.h],[AC_DEFINE([HAS_UNISTD])]) AC_CHECK_HEADER([stdint.h],[AC_DEFINE([HAS_STDINT_H])]) -AC_CHECK_HEADER([sys/shm.h],[AC_DEFINE([HAS_SYS_SHM_H])]) AC_CHECK_HEADER([dirent.h], [AC_DEFINE([HAS_DIRENT])], [], [#include ]) @@ -1564,6 +1563,13 @@ AC_CHECK_FUNC([accept4], [AC_DEFINE([HAS_ACCEPT4])]) AC_CHECK_FUNC([getauxval], [AC_DEFINE([HAS_GETAUXVAL])]) +## shmat +AC_CHECK_HEADER([sys/shm.h], + [ + AC_DEFINE([HAS_SYS_SHM_H]) + AC_CHECK_FUNC([shmat], [AC_DEFINE([HAS_SHMAT])]) + ]) + ## execvpe AC_CHECK_FUNC([execvpe], [AC_DEFINE([HAS_EXECVPE])]) diff --git a/runtime/afl.c b/runtime/afl.c index 582449ef6..bc6c9826b 100644 --- a/runtime/afl.c +++ b/runtime/afl.c @@ -15,7 +15,7 @@ /* Runtime support for afl-fuzz */ #include "caml/config.h" -#if !defined(HAS_SYS_SHM_H) +#if !defined(HAS_SYS_SHM_H) || !defined(HAS_SHMAT) #include "caml/mlvalues.h" diff --git a/runtime/caml/s.h.in b/runtime/caml/s.h.in index 23cf3d272..6b1be0323 100644 --- a/runtime/caml/s.h.in +++ b/runtime/caml/s.h.in @@ -245,6 +245,8 @@ #undef HAS_SYS_SHM_H +#undef HAS_SHMAT + #undef HAS_EXECVPE #undef HAS_POSIX_SPAWN