mirror of
https://github.com/php/php-src.git
synced 2026-03-28 18:22:42 +01:00
- Fixed bug #35288 (iconv() function defined as libiconv())
This commit is contained in:
1
NEWS
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
|
||||
|
||||
@@ -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/])
|
||||
|
||||
Reference in New Issue
Block a user