Patch config_func_check for *General Issues Bug #75759
Patch version 2018-01-04 09:15 UTC
Return to Bug #75759 |
Download this patch
Patch Revisions:
Developer: smillernl@me.com
diff --git a/config.m4 b/config.m4
index f62d1a6..0aa2d53 100644
--- a/config.m4
+++ b/config.m4
@@ -22,15 +22,29 @@ if test "$PHP_UUID" != "no"; then
PHP_CHECK_FUNC_LIB(uuid_type, uuid)
PHP_CHECK_FUNC_LIB(uuid_variant, uuid)
+ PHP_CHECK_FUNC_LIB(uuid_time, uuid)
+ PHP_CHECK_FUNC_LIB(uuid_mac, uuid)
+
export OLD_CPPFLAGS="$CPPFLAGS"
export CPPFLAGS="$CPPFLAGS $INCLUDES -DHAVE_UUID"
AC_CHECK_HEADER([uuid/uuid.h], [], AC_MSG_ERROR('uuid/uuid.h' header not found))
- PHP_SUBST(UUID_SHARED_LIBADD)
- PHP_ADD_LIBRARY_WITH_PATH(uuid, $PHP_UUID_DIR/$PHP_LIBDIR, UUID_SHARED_LIBADD)
+ AC_MSG_CHECKING(PHP version)
+ AC_TRY_COMPILE([], [
+#ifdef __APPLE__
+#error compiling on darwin
+#endif
+],
+[],
+[export UUID_ON_MAC=true])
+
+
+ if test $UUID_ON_MAC != "true"; then
+ PHP_SUBST(UUID_SHARED_LIBADD)
+ PHP_ADD_LIBRARY_WITH_PATH(uuid, $PHP_UUID_DIR/$PHP_LIBDIR, UUID_SHARED_LIBADD)
+ fi
export CPPFLAGS="$OLD_CPPFLAGS"
- PHP_SUBST(UUID_SHARED_LIBADD)
AC_DEFINE(HAVE_UUID, 1, [ ])
PHP_NEW_EXTENSION(uuid, uuid.c , $ext_shared)
diff --git a/php_uuid.h b/php_uuid.h
index c449cb3..ac57645 100644
--- a/php_uuid.h
+++ b/php_uuid.h
@@ -124,15 +124,19 @@ ZEND_BEGIN_ARG_INFO_EX(uuid_variant_arg_info, ZEND_SEND_BY_VAL, ZEND_RETURN_VALU
ZEND_END_ARG_INFO()
#endif /* HAVE_UUID_VARIANT */
+#if HAVE_UUID_TIME
PHP_FUNCTION(uuid_time);
ZEND_BEGIN_ARG_INFO_EX(uuid_time_arg_info, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 1)
ZEND_ARG_INFO(0, uuid)
ZEND_END_ARG_INFO()
+#endif /* HAVE_UUID_TIME */
+#if HAVE_UUID_MAC
PHP_FUNCTION(uuid_mac);
ZEND_BEGIN_ARG_INFO_EX(uuid_mac_arg_info, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 1)
ZEND_ARG_INFO(0, uuid)
ZEND_END_ARG_INFO()
+#endif /* HAVE_UUID_MAC */
PHP_FUNCTION(uuid_parse);
ZEND_BEGIN_ARG_INFO_EX(uuid_parse_arg_info, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 1)
@@ -148,6 +152,14 @@ ZEND_END_ARG_INFO()
} // extern "C"
#endif
+#ifndef UUID_TYPE_DCE_TIME
+#ifdef __APPLE__
+/* UUID Type definitions */
+#define UUID_TYPE_DCE_TIME 1
+#define UUID_TYPE_DCE_RANDOM 4
+#endif /* __APPLE__ */
+#endif /* UUID_TYPE_DCE_TIME */
+
/* mirrored PHP Constants */
#define UUID_TYPE_DEFAULT 0
#define UUID_TYPE_TIME UUID_TYPE_DCE_TIME
diff --git a/tests/uuid_mac.phpt b/tests/uuid_mac.phpt
index 3d704ca..a4631de 100644
--- a/tests/uuid_mac.phpt
+++ b/tests/uuid_mac.phpt
@@ -5,6 +5,8 @@ uuid_mac() function
if(!extension_loaded('uuid')) die('skip ');
+if(!function_exists('uuid_mac')) die('skip not compiled in (HAVE_UUID_MAC)');
+
?>
--FILE--
<?php
diff --git a/tests/uuid_time.phpt b/tests/uuid_time.phpt
index 0a4f7e0..fe37468 100644
--- a/tests/uuid_time.phpt
+++ b/tests/uuid_time.phpt
@@ -5,6 +5,8 @@ uuid_time() function
if(!extension_loaded('uuid')) die('skip ');
+if(!function_exists('uuid_mac')) die('skip not compiled in (HAVE_UUID_TIME)');
+
?>
--FILE--
<?php
diff --git a/uuid.c b/uuid.c
index 23b3ed8..2f8bba2 100644
--- a/uuid.c
+++ b/uuid.c
@@ -40,8 +40,12 @@ zend_function_entry uuid_functions[] = {
#if HAVE_UUID_VARIANT
PHP_FE(uuid_variant , uuid_variant_arg_info)
#endif /* HAVE_UUID_VARIANT */
+#if HAVE_UUID_TIME
PHP_FE(uuid_time , uuid_time_arg_info)
+#endif /* HAVE_UUID_TIME */
+#if HAVE_UUID_MAC
PHP_FE(uuid_mac , uuid_mac_arg_info)
+#endif /* HAVE_UUID_MAC */
PHP_FE(uuid_parse , uuid_parse_arg_info)
PHP_FE(uuid_unparse , uuid_unparse_arg_info)
#ifdef PHP_FE_END
|