summaryrefslogtreecommitdiff
path: root/ext/iconv
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2006-01-03 13:21:07 +0000
committerfoobar <sniper@php.net>2006-01-03 13:21:07 +0000
commitbcc1654de3e526feb4cd955439e53cd6ed7492fe (patch)
tree112d59bdcdcc923012a0a0960b9d05ef8ec063f3 /ext/iconv
parenta5e15f2e1c5bb5507269fa18174ea195e9c0c8d9 (diff)
downloadphp-git-bcc1654de3e526feb4cd955439e53cd6ed7492fe.tar.gz
- Fixed bug #35288 (iconv() function defined as libiconv())
Diffstat (limited to 'ext/iconv')
-rw-r--r--ext/iconv/config.m469
1 files changed, 36 insertions, 33 deletions
diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
index 8df214561c..1614b1781c 100644
--- a/ext/iconv/config.m4
+++ b/ext/iconv/config.m4
@@ -14,9 +14,6 @@ if test "$PHP_ICONV" != "no"; then
])
if test "$iconv_avail" != "no"; then
- iconv_cflags_save="$CFLAGS"
- iconv_ldflags_save="$LDFLAGS"
-
if test -z "$ICONV_DIR"; then
for i in /usr/local /usr; do
if test -f "$i/include/iconv.h" || test -f "$i/include/giconv.h"; then
@@ -40,46 +37,55 @@ if test "$PHP_ICONV" != "no"; then
PHP_ICONV_H_PATH="$PHP_ICONV_PREFIX/include/iconv.h"
fi
- if test -z "$iconv_lib_name"; then
- AC_MSG_CHECKING([if iconv is glibc's])
- AC_TRY_LINK([#include <gnu/libc-version.h>],[gnu_get_libc_version();],
+ AC_MSG_CHECKING([if iconv is glibc's])
+ AC_TRY_LINK([#include <gnu/libc-version.h>],[gnu_get_libc_version();],
+ [
+ AC_MSG_RESULT(yes)
+ iconv_impl_name="glibc"
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+
+ if test -z "$iconv_impl_name"; then
+ AC_MSG_CHECKING([if using GNU libiconv])
+ php_iconv_old_ld="$LDFLAGS"
+ LDFLAGS="-liconv $LDFLAGS"
+ AC_TRY_RUN([
+ #include <$PHP_ICONV_H_PATH>
+ int main() {
+ printf("%d", _libiconv_version);
+ return 0;
+ }
+ ],[
+ AC_MSG_RESULT(yes)
+ iconv_impl_name="gnu_libiconv"
+ ],[
+ AC_MSG_RESULT(no)
+ LDFLAGS="$php_iconv_old_ld"
+ ])
+ fi
+
+ if test -z "$iconv_impl_name"; then
+ AC_MSG_CHECKING([if iconv is Konstantin Chuguev's])
+ AC_TRY_LINK([#include <iconv.h>],[iconv_ccs_init(NULL, NULL);],
[
AC_MSG_RESULT(yes)
- iconv_impl_name="glibc"
+ iconv_impl_name="bsd"
],[
AC_MSG_RESULT(no)
])
- else
- case "$iconv_lib_name" in
- iconv [)]
- AC_MSG_CHECKING([if iconv is Konstantin Chuguev's])
- AC_TRY_LINK([#include <iconv.h>],[iconv_ccs_init(NULL, NULL);],
- [
- AC_MSG_RESULT(yes)
- iconv_impl_name="bsd"
- ],[
- AC_MSG_RESULT(no)
- iconv_impl_name="gnu_libiconv"
- ])
- ;;
-
- giconv [)]
- iconv_impl_name="gnu_libiconv"
- ;;
-
- biconv [)]
- iconv_impl_name="bsd"
- ;;
- esac
- fi
+ fi
echo > ext/iconv/php_have_bsd_iconv.h
echo > ext/iconv/php_have_glibc_iconv.h
+ echo > ext/iconv/php_have_libiconv.h
case "$iconv_impl_name" in
gnu_libiconv [)]
PHP_DEFINE([PHP_ICONV_IMPL],[\"libiconv\"],[ext/iconv])
AC_DEFINE([PHP_ICONV_IMPL],["libiconv"],[Which iconv implementation to use])
+ PHP_DEFINE([HAVE_LIBICONV],1,[ext/iconv])
+ PHP_ADD_LIBRARY_WITH_PATH(iconv, "$PHP_ICONV_PREFIX/$PHP_LIBDIR", ICONV_SHARED_LIBADD)
;;
bsd [)]
@@ -141,9 +147,6 @@ int main() {
AC_MSG_RESULT([no])
])
- CFLAGS="$iconv_cflags_save"
- LDFLAGS="$iconv_ldflags_save"
-
PHP_NEW_EXTENSION(iconv, iconv.c, $ext_shared,, [-I\"$PHP_ICONV_PREFIX/include\"])
PHP_SUBST(ICONV_SHARED_LIBADD)
PHP_INSTALL_HEADERS([ext/iconv/])