I'm not able to install Zend Optimizer on:

Apache 1.3.22
PHP 4.0.6
Zend Optimizer(TM), version 1.1.0
Solaris 8
Gcc 3.0.1

Php was compiled with this configure settings:
./configure --without-mysql --enable-track-vars --disable-debug --with-apache=../apache_1.3.22/ --enable-debug=no --disable-versioning

I know disable-versioning doesn't exists.
I've included it because I don't know how to load that library, only a try. Also configured without specifing --enable-versioning.

When I start apache I see and error similar to:
Failed loading /<some dir>/ZendOptimizer.so: ld.so.1: /<some dir>/apache/bin/httpd: fatal: relocation error: fi
le /<some dir>/ZendOptimizer.so: symbol _efree: referenced symbol not found

Doing ldd ZendOptimizer.so seems everything ok.
Doing a:
[root@trac lib]# file ZendOptimizer.so
ZendOptimizer.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, stripped

I see the library is stripped.
I know strip works on executable files and not on library.

I can't compile that library from scratch because from zend.com you can't download the source code.

Now I'm tring a workaround: I'm looking for some library to preload doing:
nm *.so |grep _efree
When found I set that library into LD_PRELOAD variable in apachectl script.
Do you think this can be useful ? Any better solutions ?
Thanks 🙂

Riccardo TfM Merlini

    Installed findutils and then

    for i in locate *.so; do nm $i 2> /dev/null | grep -il _efree; done

    without results.
    Please help me 🙂

    Riccardo TfM Merlini

      Try using GCC 2.96 - I've had problems with V 3 before.

        The library is provided by zend.com without source code so I can't compile it, or you
        mean re-compile apache and php ?

        Riccardo TfM Merlini

          Write a Reply...