Edit report at http://bugs.php.net/bug.php?id=53005&edit=1
ID: 53005
Comment by: reggaedancer at ymail dot com
Reported by: php at jdrtech dot com
Summary: iconv() fails in ext/iconv/iconv.c php_iconv_string
Status: Closed
Type: Bug
Package: Unknown/Other Function
Operating System: Solaris 10 Sparc
PHP Version: 5.3.3
Block user comment: N
New Comment:
Ubelievable!!
It really works.
I just added:
LD_PRELOAD_32=/usr/local/lib/preloadable_libiconv.so
export LD_PRELOAD_32
and the Apache/PHP with iconv is working and not crashing anymore.
I tried to use disable_functions in PHP to avoid iconv,
but this preload solution is great.
Thank you very much for your help.
Previous Comments:
------------------------------------------------------------------------
[2010-10-13 15:12:45] wes at jdrtech dot com
libiconv should provide the preloadable library
preloadable_libiconv.so.
I edited apachectl:
--------------------------------------
case $ARG in
start)
LD_PRELOAD_64=/fcgi/lib/preloadable_libiconv.so
export LD_PRELOAD_64
if [ $RUNNING -eq 1 ]; then
echo "$0 $ARG: httpd (pid $PID) already running"
continue
fi
------------------------------------
of course your library location may differ, probably /usr/local/lib and
LD_PRELOAD_32 if your using 32 bit
good luck
------------------------------------------------------------------------
[2010-10-13 12:26:20] reggaedancer at ymail dot com
Hello,
I have the same issue on Solaris 10 x86,
PHP 5.3.3
after running iconv PHP script, PHP crashed and created a core dump.
What do you mean by "needed to preload".
How can I fix this issue ?
------------------------------------------------------------------------
[2010-10-07 01:45:16] php at jdrtech dot com
needed to do preload, runs great
------------------------------------------------------------------------
[2010-10-06 22:58:19] php at jdrtech dot com
Description:
------------
PHP runs great with the exception of iconv. I've created a test program
that uses libiconv.so.2.5.0 with expected results
CLI command:
>./php ./test.php
Original : This is the Euro symbol '?'.
TRANSLIT : Segmentation Fault (core dumped)
CC: Sun C++ 5.8 2005/10/13
cc: Sun C 5.8 2005/10/13
Configure:
export CC=cc CFLAGS="-xarch=v9a" CXXFLAGS="-xarch=v9a"
CPPFLAGS="-I/fcgi/include" LDFLAGS="-L/fcgi/lib"
./configure --prefix=/fcgi --with-mysql=/opt/mysql/mysql
--enable-mbstring --with-apache=../apache_1.3.41 -with-dom
--with-xsl=/fcgi --with-iconv-dir=/fcgi --enable-debug
>ldd php
libexslt.so.0 => /fcgi/lib/libexslt.so.0
libpthread.so.1 => /lib/64/libpthread.so.1
libsocket.so.1 => /lib/64/libsocket.so.1
libnsl.so.1 => /lib/64/libnsl.so.1
libm.so.2 => /lib/64/libm.so.2
librt.so.1 => /lib/64/librt.so.1
libmysqlclient.so.16 =>
/usr/local/mysql/lib/libmysqlclient.so.16
libthread.so.1 => /lib/64/libthread.so.1
libxslt.so.1 => /fcgi/lib/libxslt.so.1
libxml2.so.2 => /fcgi/lib/libxml2.so.2
libresolv.so.2 => /lib/64/libresolv.so.2
libgen.so.1 => /lib/64/libgen.so.1
libiconv.so.2 => /fcgi/lib/libiconv.so.2
libc.so.1 => /lib/64/libc.so.1
libz.so.1 => /usr/lib/64/libz.so.1
libmp.so.2 => /lib/64/libmp.so.2
libmd5.so.1 => /lib/64/libmd5.so.1
libscf.so.1 => /lib/64/libscf.so.1
libaio.so.1 => /lib/64/libaio.so.1
libdoor.so.1 => /lib/64/libdoor.so.1
libuutil.so.1 => /lib/64/libuutil.so.1
/platform/SUNW,Sun-Blade-100/lib/sparcv9/libc_psr.so.1
/platform/SUNW,Sun-Blade-100/lib/sparcv9/libmd5_psr.so.1
Test script:
---------------
<?php
$text = "This is the Euro symbol '?'.";
echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text),
PHP_EOL;
echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text),
PHP_EOL;
echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
?>
Expected result:
----------------
unknown
Actual result:
--------------
t...@1 (l...@1) program terminated by signal SEGV (no mapping at the fault
address)
0xffffffff7d35a544: _iconv+0x002c: jmp %l5
Current function is php_iconv_string
501 result = iconv(cd, (char **) &in_p, &in_left,
(char **) &out_p, &out_left);
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53005&edit=1