Browse Source

- Fixed bug #35288 (iconv() function defined as libiconv())

PHP-5.1
foobar 20 years ago
parent
commit
bcc1654de3
  1. 1
      NEWS
  2. 69
      ext/iconv/config.m4

1
NEWS

@ -22,6 +22,7 @@ PHP NEWS
- Fixed bug #35517 (mysql_stmt_fetch returns NULL on data truncation). (Georg)
- Fixed bug #35377 (PDO_SQLITE: undefined reference to "fdatasync").
(Nuno, Jani)
- Fixed bug 35288 (iconv() function defined as libiconv()). (Nuno)
- Fixed bug #29955 (mb_strtoupper() / lower() broken with Turkish encoding).
(Rui)
- Fixed bug #28899 (mb_substr() and substr() behave differently when

69
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/])

Loading…
Cancel
Save