ID:               23758
 User updated by:  pbriggs at clinitech dot net
 Reported By:      pbriggs at clinitech dot net
 Status:           Open
 Bug Type:         Compile Failure
 Operating System: HPUX 11.00
 PHP Version:      4CVS, 5CVS
 New Comment:

Same issue exists in version 4.3.5RC1.  This time I did ./configure
process, edited the Makefile and changed -lgcc to -lgcc_s.  That
produced the corrected module that I could load into Apache2.


Previous Comments:
------------------------------------------------------------------------

[2003-05-22 18:45:51] pbriggs at clinitech dot net

Ok, tried as you suggested.  Same error.

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

[2003-05-22 18:07:16] [EMAIL PROTECTED]

Try this:

CFLAGS=-shared-libgcc ./configure --disable-cli ..plus your options..

(and leave the --enable-libgcc part out)


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

[2003-05-22 17:37:55] pbriggs at clinitech dot net

The version of GCC is 3.3.  I have had previous versions of PHP
installed, but in each case, I had to link libgcc_s.1 when its being
used as an Apache module.

I just attempted to leave out --enable-libgcc, and what I get is this
error from Apache 2.0.45:

Cannot load /opt/apache/modules/libphp4.so into server: Unresolved
external: __umoddi3

The function its looking for is apparently in libgcc, so I have to
compile with --enable-libgcc to take care of the problem.  This appears
to be documented in bugs 16808, 15189, 12222, 12232.

Using --enable-libgcc fixes the issue, but in the case of an Apache as
a module, it needs to be the shared version lgcc_s to avoid libtool
creating a static, rather than shared object for Apache.

The only thing I haven't tried is maybe making a symbolic link of
libgcc.sl -> libgcc_s.1, but I'm not sure if that is really the best
solution.

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

[2003-05-22 17:02:18] [EMAIL PROTECTED]

Did you try without --enable-libgcc ??
What gcc version are you using? Did you have some older
version installed before you installed the new one?


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

[2003-05-22 12:04:55] pbriggs at clinitech dot net

PHP-4.3.2RC4 on HP-UX 11.00

./configure --prefix=/opt/php --with apxs2=/opt/apache/bin/apxs
--with-mysql=/opt/mysql4 -enable libgcc --enable-sockets

In order to avoid "unresolved symbol: __umoddi3" error when attempting
to start Apache 2 with PHP as a module, I must use the configure option
--enable-libgcc.  Because -lgcc is not a shared library, PHP does not
compile a shared object that Apache can use as a module.  A static
libphp4.a object is created in .libs directory.

What I have done is rerun the linker step manually by copying and
pasting the long linker command on my telnet terminal.  I then
substitute -lgcc with -lgcc_s and that make libtool happy which then
creates the correct shared object libphp4.sl in .libs which Apache can
then load as a module.



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


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

Reply via email to