From 33978e8e3349c33e0427af94dbee86c0780560bf Mon Sep 17 00:00:00 2001 From: foobar Date: Tue, 3 Jan 2006 13:20:13 +0000 Subject: [PATCH] - Fixed bug #35288 (iconv() function defined as libiconv()) --- ext/iconv/config.m4 | 69 +++++++++++++++++++++++---------------------- 1 file 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_get_libc_version();], + AC_MSG_CHECKING([if iconv is glibc's]) + AC_TRY_LINK([#include ],[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_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_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/]) -- 2.50.1