|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2010-10-06 22:58 UTC] 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);
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 09:00:01 2025 UTC |
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