summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2001-08-26 15:25:55 +0000
committerStanislav Malyshev <stas@php.net>2001-08-26 15:25:55 +0000
commit2a0a07b883e23973be74c548c75a53d35df8460a (patch)
tree3c4ce27528fd8c0d2192d0bf626a0a406fcfd161
parentb0970f14216e37b5756faf3d2e177f0e157c6839 (diff)
downloadphp-git-2a0a07b883e23973be74c548c75a53d35df8460a.tar.gz
Add dlsym underscore detection, by Jani Taskinen
-rw-r--r--Zend/Zend.m414
-rw-r--r--Zend/zend.h6
2 files changed, 19 insertions, 1 deletions
diff --git a/Zend/Zend.m4 b/Zend/Zend.m4
index e1d4db9841..784a810f79 100644
--- a/Zend/Zend.m4
+++ b/Zend/Zend.m4
@@ -21,6 +21,7 @@ AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_CC_C_O])
AC_REQUIRE([AC_PROG_LEX])
AC_REQUIRE([AC_HEADER_STDC])
+AC_REQUIRE([AC_PROG_LIBTOOL])
LIBZEND_BISON_CHECK
@@ -54,6 +55,19 @@ AC_TYPE_SIGNAL
AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl $LIBS"])
AC_CHECK_FUNC(dlopen,[AC_DEFINE(HAVE_LIBDL, 1,[ ])])
+dnl
+dnl Ugly hack to check if dlsym() requires a leading underscore in symbol name.
+dnl
+AC_MSG_CHECKING([whether dlsym() requires a leading underscode in symbol names])
+_LT_AC_TRY_DLOPEN_SELF([
+ AC_MSG_RESULT(no)
+], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, 1, [Define if dlsym() requires a leading underscode in symbol names. ])
+], [
+ AC_MSG_RESULT(no)
+], [])
+
dnl This is required for QNX and may be some BSD derived systems
AC_CHECK_TYPE( uint, unsigned int )
AC_CHECK_TYPE( ulong, unsigned long )
diff --git a/Zend/zend.h b/Zend/zend.h
index c3276f71c3..580286846f 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -71,7 +71,11 @@
# define DL_LOAD(libname) dlopen(libname, RTLD_LAZY | RTLD_GLOBAL)
# define DL_UNLOAD dlclose
-# define DL_FETCH_SYMBOL dlsym
+# if defined(DLSYM_NEEDS_UNDERSCORE)
+# define DL_FETCH_SYMBOL(h,s) dlsym((h), "_" ## s)
+# else
+# define DL_FETCH_SYMBOL dlsym
+# endif
# define DL_HANDLE void *
# define ZEND_EXTENSIONS_SUPPORT 1
#elif defined(ZEND_WIN32)