libctf: work on platforms without O_CLOEXEC.
(Not tested on any such platforms, since I don't have access to any at the moment. Testing encouraged.) libctf/ * configure.ac: Check for O_CLOEXEC. * ctf-decls.h (O_CLOEXEC): Define (to 0), if need be. * config.h.in: Regenerate.
This commit is contained in:
parent
6b22174ff1
commit
ad118caa9f
5 changed files with 67 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2019-06-04 Nick Alcock <nick.alcock@oracle.com>
|
||||||
|
|
||||||
|
* configure.ac: Check for O_CLOEXEC.
|
||||||
|
* ctf-decls.h (O_CLOEXEC): Define (to 0), if need be.
|
||||||
|
* config.h.in: Regenerate.
|
||||||
|
* configure: Likewise.
|
||||||
|
|
||||||
2019-06-04 Nick Alcock <nick.alcock@oracle.com>
|
2019-06-04 Nick Alcock <nick.alcock@oracle.com>
|
||||||
|
|
||||||
* qsort_r.c: Rename to...
|
* qsort_r.c: Rename to...
|
||||||
|
|
|
@ -24,6 +24,9 @@
|
||||||
/* Define to 1 if you have a working `mmap' system call. */
|
/* Define to 1 if you have a working `mmap' system call. */
|
||||||
#undef HAVE_MMAP
|
#undef HAVE_MMAP
|
||||||
|
|
||||||
|
/* Whether the platform has a definition of O_CLOEXEC. */
|
||||||
|
#undef HAVE_O_CLOEXEC
|
||||||
|
|
||||||
/* Define to 1 if you have the `pread' function. */
|
/* Define to 1 if you have the `pread' function. */
|
||||||
#undef HAVE_PREAD
|
#undef HAVE_PREAD
|
||||||
|
|
||||||
|
|
37
libctf/configure
vendored
37
libctf/configure
vendored
|
@ -6462,6 +6462,43 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5
|
||||||
|
$as_echo_n "checking for O_CLOEXEC... " >&6; }
|
||||||
|
if ${ac_cv_libctf_macro_O_CLOEXEC+:} false; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
#include <fcntl.h>
|
||||||
|
#ifndef O_CLOEXEC
|
||||||
|
choke me;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return O_CLOEXEC;
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
ac_cv_libctf_macro_O_CLOEXEC=yes
|
||||||
|
else
|
||||||
|
ac_cv_libctf_macro_O_CLOEXEC=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libctf_macro_O_CLOEXEC" >&5
|
||||||
|
$as_echo "$ac_cv_libctf_macro_O_CLOEXEC" >&6; }
|
||||||
|
|
||||||
|
if test $ac_cv_libctf_macro_O_CLOEXEC = yes; then
|
||||||
|
|
||||||
|
$as_echo "#define HAVE_O_CLOEXEC 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile"
|
ac_config_files="$ac_config_files Makefile"
|
||||||
|
|
||||||
ac_config_headers="$ac_config_headers config.h"
|
ac_config_headers="$ac_config_headers config.h"
|
||||||
|
|
|
@ -133,6 +133,22 @@ esac
|
||||||
|
|
||||||
AM_CONDITIONAL(NEED_CTF_QSORT_R, test "${ac_cv_libctf_qsort_r_signature}" = unknown)
|
AM_CONDITIONAL(NEED_CTF_QSORT_R, test "${ac_cv_libctf_qsort_r_signature}" = unknown)
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for O_CLOEXEC], [ac_cv_libctf_macro_O_CLOEXEC],
|
||||||
|
[AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM([[#include <fcntl.h>
|
||||||
|
#ifndef O_CLOEXEC
|
||||||
|
choke me;
|
||||||
|
#endif
|
||||||
|
]],
|
||||||
|
[[return O_CLOEXEC;]])],
|
||||||
|
[ac_cv_libctf_macro_O_CLOEXEC=yes],
|
||||||
|
[ac_cv_libctf_macro_O_CLOEXEC=no])])
|
||||||
|
|
||||||
|
if test $ac_cv_libctf_macro_O_CLOEXEC = yes; then
|
||||||
|
AC_DEFINE([HAVE_O_CLOEXEC], 1,
|
||||||
|
[Whether the platform has a definition of O_CLOEXEC.])
|
||||||
|
fi
|
||||||
|
|
||||||
AC_CONFIG_FILES(Makefile)
|
AC_CONFIG_FILES(Makefile)
|
||||||
AC_CONFIG_HEADERS(config.h)
|
AC_CONFIG_HEADERS(config.h)
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
|
@ -62,6 +62,10 @@ void ctf_qsort_r (void *base, size_t nmemb, size_t size,
|
||||||
void *arg);
|
void *arg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_O_CLOEXEC
|
||||||
|
# define O_CLOEXEC 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#undef MAX
|
#undef MAX
|
||||||
#undef MIN
|
#undef MIN
|
||||||
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue