Edit report at https://bugs.php.net/bug.php?id=53844&edit=1

 ID:                 53844
 Comment by:         katsuhiko dot tanno at gmail dot com
 Reported by:        r at rcrowley dot org
 Summary:            PHP built from source on Solaris gets SIGSEGV with
                     libiconv
 Status:             No Feedback
 Type:               Bug
 Package:            ICONV related
 Operating System:   Solaris
 PHP Version:        5.3.5
 Block user comment: N
 Private report:     N

 New Comment:

# setenv LD_PRELOAD_32 /your/libiconv/path/preloadable_libiconv.so

And just invoke command.

# php -r 'echo iconv("UTF-8", "UTF-8", "Hello, world.\n");'
Hello, world.
#

About what LD_PRELOAD_32 is, please go GNU libiconv web page or ld.so.1(1) man 
page.
http://www.gnu.org/software/libiconv/


Previous Comments:
------------------------------------------------------------------------
[2013-02-18 00:34:40] php-bugs at lists dot php dot net

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.

------------------------------------------------------------------------
[2011-02-11 19:06:54] phil at quizlet dot com

Thanks for the help.

We got it working with:
./configure --with-iconv=/opt/local

It seems like it could be really helpful for people if there was anyway for the 
compiler to test for this case so that if people just specify "--with-iconv" 
they 
don't get hard-to-debug seg faults.

------------------------------------------------------------------------
[2011-02-10 01:59:33] srina...@php.net

As Johannes and the core dump output show this has nothing to do with php core. 
this is a compilation issue mainly due to the way your environment is set up. 

this is what i did

- unset LD_LIBRARY_PATH
- installed libiconv in /opt/local
- compiled php as ./configure --disable-all --with-iconv=/opt/local
- ldd sapi/cli/php | grep iconv and verify that PHP is depending on 
/opt/local/lib
- ./sapi/cli/php -r 'echo iconv("UTF-8", "UTF-8", "Hello, world.\n");'

and got the expected results..

note: i did use the OS provided gcc for my compilation needs. 

pl. note that i see that you have compiled and installed other dependent 
libraries at /opt/local as well. you might want to ensure that when you 
compiled those - they all depend on /opt/local/lib as well. it is not a good 
idea to mix between OS provided iconv libraries vs what you compiled.

i would like to close this bug as not a valid bug if others don't have any 
issue.

------------------------------------------------------------------------
[2011-02-09 19:00:50] phil at quizlet dot com

I ran it exactly as you wrote, still got a "Segmentation Fault (core dumped)"

[root@gnp2b7ap /opt/sourceinstall/php-5.3.5]# /root/gdb/bin/gdb ./sapi/cli/php 
core
GNU gdb 6.2.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-sun-solaris2"...
Core was generated by `./sapi/cli/php -r echo iconv("UTF-8", "UTF-8", "Hello, 
world.\n");'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /opt/local/lib/libiconv.so.2...done.
Loaded symbols for /opt/local/lib/libiconv.so.2
Reading symbols from /lib/librt.so.1...
warning: Lowest section in /lib/librt.so.1 is .dynamic at 00000074
done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libm.so.2...done.
Loaded symbols for /lib/libm.so.2
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libsocket.so.1...done.
Loaded symbols for /lib/libsocket.so.1
Reading symbols from /lib/libc.so.1...done.
Loaded symbols for /lib/libc.so.1
Reading symbols from /opt/gcc/lib/libgcc_s.so.1...done.
Loaded symbols for /opt/gcc/lib/libgcc_s.so.1
Reading symbols from /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-
1.so.3...done.
Loaded symbols for /usr/lib/locale/en_US.ISO8859-1/en_US.ISO8859-1.so.3
#0  0xec835356 in ?? ()
(gdb) bt
#0  0xec835356 in ?? ()
#1  0xfebc68ab in iconv () from /lib/libc.so.1
#2  0x080d9141 in php_iconv_string (in_p=0x8308488 "Hello, world.\n", 
in_len=14, 
out=0x8047624, out_len=0x8047628, out_charset=0x830845c "UTF-8", 
in_charset=0x8309904 "UTF-8")
    at /opt/sourceinstall/php-5.3.5/ext/iconv/iconv.c:501
#3  0x080dbb0c in php_if_iconv (ht=3, return_value=0x83084a0, 
return_value_ptr=0x0, this_ptr=0x0, return_value_used=1) at 
/opt/sourceinstall/php-
5.3.5/ext/iconv/iconv.c:2327
#4  0x081caac5 in zend_do_fcall_common_helper_SPEC (execute_data=0x83ec520) at 
zend_vm_execute.h:316
#5  0x081c9ec2 in execute (op_array=0x8308388) at zend_vm_execute.h:107
#6  0x081a1e3f in zend_eval_stringl (str=0x8047ce6 "echo iconv(\"UTF-8\", \"UTF-
8\", \"Hello, world.\\n\");", str_len=0, retval_ptr=0x0, string_name=0x82b9ec9 
"Command line code")
    at /opt/sourceinstall/php-5.3.5/Zend/zend_execute_API.c:1193
#7  0x081a1fdb in zend_eval_stringl_ex (str=0x8047ce6 "echo iconv(\"UTF-8\", 
\"UTF-8\", \"Hello, world.\\n\");", str_len=48, retval_ptr=0x0, 
string_name=0x82b9ec9 "Command line code", 
    handle_exceptions=1) at /opt/sourceinstall/php-
5.3.5/Zend/zend_execute_API.c:1235
#8  0x081a2035 in zend_eval_string_ex (str=0x80475e0 "\016", retval_ptr=0x0, 
string_name=0x82b9ec9 "Command line code", handle_exceptions=1)
    at /opt/sourceinstall/php-5.3.5/Zend/zend_execute_API.c:1246
#9  0x08223584 in main (argc=3, argv=0x8047bf0) at /opt/sourceinstall/php-
5.3.5/sapi/cli/php_cli.c:1282

------------------------------------------------------------------------
[2011-02-09 11:34:09] johan...@php.net

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");'

------------------------------------------------------------------------


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

    https://bugs.php.net/bug.php?id=53844


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=53844&edit=1

Reply via email to