Edit report at http://bugs.php.net/bug.php?id=53844&edit=1
ID: 53844 Updated by: johan...@php.net Reported by: r at rcrowley dot org Summary: PHP built from source on Solaris gets SIGSEGV with libiconv Status: Feedback Type: Bug Package: ICONV related Operating System: Solaris PHP Version: 5.3.5 Block user comment: N Private report: N New Comment: I meant to write --disable-all, sorry for the mistake. Could you try ./configure --disable-all --with-iconv && make && ./sapi/cli/php -r 'echo iconv("UTF-8", "UTF-8", "Hello, world.\n");' Previous Comments: ------------------------------------------------------------------------ [2011-02-09 01:15:59] phil at quizlet dot com No luck... With the original configuration, I tried: # LD_LIBRARY_PATH=/opt/local/lib ; export LD_LIBRARY_PATH ; php -r 'echo iconv("UTF-8", "UTF-8", "Hello, world.\n");' as well as: # LD_LIBRARY_PATH=/opt/local/lib php -r 'echo iconv("UTF-8", "UTF-8", "Hello, world.\n");' as well as reconfiguring with: # ./configure --disable-iconv --with-iconv and also tried: # ./configure LDFLAGS=/opt/local/lib --with-iconv and: # ./configure LDFLAGS=/opt/local/lib --disable-iconv --with-iconv Note: I did get a "Notice: Following unknown configure options were used: -- disable-iconv" when trying to follow johannes advice, and --disable-iconv isn't listed in ./configure --help. In ALL of the above cases when testing PHP's iconv() I got a segfault and checked the backtrace with gdb after each and they were all identical: (gdb) bt #0 0xec835356 in ?? () #1 0xfe8d68ab in iconv () from /lib/libc.so.1 #2 0x0815a2b1 in php_iconv_string (in_p=0x8653484 "Hello, world.\n", in_len=14, out=0x8047580, out_len=0x8047584, out_charset=0x8653458 "UTF-8", in_charset=0x8654900 "UTF-8") at /tmp/tmp..Aa4sh/php-5.3.5/ext/iconv/iconv.c:501 #3 0x0815d274 in php_if_iconv (ht=3, return_value=0x865349c, return_value_ptr=0x0, this_ptr=0x0, return_value_used=1) at /tmp/tmp..Aa4sh/php- 5.3.5/ext/iconv/iconv.c:2327 #4 0x083147de in zend_do_fcall_common_helper_SPEC (execute_data=0x8793f70) at zend_vm_execute.h:316 #5 0x0831385d in execute (op_array=0x8653384) at zend_vm_execute.h:107 #6 0x082e6e29 in zend_eval_stringl (str=0x8047ccb "echo iconv(\"UTF-8\", \"UTF- 8\", \"Hello, world.\\n\");", str_len=48, retval_ptr=0x0, string_name=0x85c30ae "Command line code") at /tmp/tmp..Aa4sh/php-5.3.5/Zend/zend_execute_API.c:1193 #7 0x082e6fe2 in zend_eval_stringl_ex (str=0x8047ccb "echo iconv(\"UTF-8\", \"UTF-8\", \"Hello, world.\\n\");", str_len=48, retval_ptr=0x0, string_name=0x85c30ae "Command line code", handle_exceptions=1) at /tmp/tmp..Aa4sh/php- 5.3.5/Zend/zend_execute_API.c:1235 #8 0x082e705a in zend_eval_string_ex (str=0x8047540 "\016", retval_ptr=0x0, string_name=0x85c30ae "Command line code", handle_exceptions=1) at /tmp/tmp..Aa4sh/php-5.3.5/Zend/zend_execute_API.c:1246 #9 0x08376724 in main (argc=3, argv=0x8047bdc) at /tmp/tmp..Aa4sh/php- 5.3.5/sapi/cli/php_cli.c:1282 Any other ideas? ------------------------------------------------------------------------ [2011-02-08 03:23:32] srina...@php.net what happens when you do some thing like LD_LIBRARY_PATH=/opt/local/lib ; export LD_LIBRARY_PATH ; php -r 'echo iconv("UTF-8", "UTF-8", "Hello, world.\n");' ------------------------------------------------------------------------ [2011-02-07 20:55:49] phil at quizlet dot com (I'm working with Richard on this...) [root@gnp2b7ak ~]# showrev Hostname: ... Hostid: c54426 Release: 5.11 Kernel architecture: i86pc Application architecture: i386 Hardware provider: Domain: Kernel version: SunOS 5.11 snv_121 Joyent (the hosting provider) has kindly offered a free Joyent Solaris instance for you to test against, if you'd like. Just email me and I'll get it set up. ------------------------------------------------------------------------ [2011-02-07 19:46:23] johan...@php.net Which version of solaris are you using? My Solaris 11 express works fine. Could you also try doing a ./configure --disable-iconv --with-iconv build? Yor stacktrace shows #1 0xfe8d68ab in iconv () from /lib/libc.so.1 so the libc's iconv is being used. My assumption is that another library is using iconv from /opt/local and so the linker pulls the libs in the wrong order so one version is used for compiling PHP the other for running ... ------------------------------------------------------------------------ [2011-02-07 17:16:45] r at rcrowley dot org # iconv --version iconv (GNU libiconv 1.11) Copyright (C) 2000-2007 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Bruno Haible. # pkgin list | grep iconv libiconv-1.12nb1 Character set conversion library # ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/bug.php?id=53844 -- Edit this bug report at http://bugs.php.net/bug.php?id=53844&edit=1