diff --git a/Modules/_uuidmodule.c b/Modules/_uuidmodule.c index 88c40ce3537..d4bc3c7b0d4 100644 --- a/Modules/_uuidmodule.c +++ b/Modules/_uuidmodule.c @@ -4,17 +4,10 @@ #include -/* bpo-11063: libuuid on macOS doesn't provide uuid_generate_time_safe(), - only uuid_generate_time(). */ -#ifndef __APPLE__ -# define HAVE_TIME_SAFE -#endif - - static PyObject * py_uuid_generate_time_safe(void) { -#ifdef HAVE_TIME_SAFE +#ifdef HAVE_UUID_GENERATE_TIME_SAFE uuid_t out; int res; @@ -45,7 +38,7 @@ PyInit__uuid(void) { PyObject *mod; assert(sizeof(uuid_t) == 16); -#ifdef HAVE_TIME_SAFE +#ifdef HAVE_UUID_GENERATE_TIME_SAFE int has_uuid_generate_time_safe = 1; #else int has_uuid_generate_time_safe = 0; diff --git a/configure b/configure index 0edbb3e8623..7944f8fe5d4 100755 --- a/configure +++ b/configure @@ -9512,6 +9512,37 @@ _ACEOF fi # Dynamic linking for HP-UX +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe" >&5 +$as_echo_n "checking for uuid_generate_time_safe... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + +#ifndef uuid_generate_time_safe +uuid_t out; +uuid_generate_time_safe(out); +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +$as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sem_init" >&5 $as_echo_n "checking for library containing sem_init... " >&6; } if ${ac_cv_search_sem_init+:} false; then : diff --git a/configure.ac b/configure.ac index c7738064582..743e0625dc4 100644 --- a/configure.ac +++ b/configure.ac @@ -2677,6 +2677,18 @@ AC_CHECK_LIB(sendfile, sendfile) AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX +AC_MSG_CHECKING(for uuid_generate_time_safe) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ +#ifndef uuid_generate_time_safe +uuid_t out; +uuid_generate_time_safe(out); +#endif +]])], + [AC_DEFINE(HAVE_UUID_GENERATE_TIME_SAFE, 1, Define if uuid_generate_time_safe() exists.) + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)] +) + AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris # posix4 on Solaris 2.6 # pthread (first!) on Linux diff --git a/pyconfig.h.in b/pyconfig.h.in index 5f8b09a6189..6e0f3e8eeb3 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -1187,6 +1187,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H +/* Define if uuid_generate_time_safe() exists. */ +#undef HAVE_UUID_GENERATE_TIME_SAFE + /* Define to 1 if you have the `wait3' function. */ #undef HAVE_WAIT3