From:             [EMAIL PROTECTED]
Operating system: Solaris 2.6
PHP version:      4.0.4pl1
PHP Bug Type:     Compile Failure
Bug description:  Apache fails linking due to incorrect PHP lib ordering

PHP is configured thusly:

./configure \
  --enable-versioning \
  --with-apache=../apache_1.3.19 \
  --with-config-file-path=/etc \
  --with-ftp \
  --with-gd=/shared \
  --with-tiff-dir=/shared/lib \
  --with-jpeg-dir \
  --with-mysql=/local \
  --with-xml \
  --with-zlib=/shared \
  --with-pdflib=/shared/lib \
  --enable-safe-mode \
  --enable-track-vars \
  --enable-force-cgi-redirect \
  --enable-memory-limit \
  --enable-sysvsem \
  --enable-sysvshm \
  --with-gdbm=/shared \
  --with-db2=/shared \
  --with-cdb=/shared

PHP compiles and installs successfully.

Apache is configured thusly:

./configure \
--prefix=/shared/apache \
--exec-prefix=/shared/apache \
--bindir=/shared/apache/bin \
--sbindir=/shared/apache/sbin \
--mandir=/shared/apache/man \
--sysconfdir=/shared/apache/conf \
--logfiledir=/shared/apache/logs \
--runtimedir=/shared/apache/logs \
--libexecdir=/shared/apache/libexec \
--localstatedir=/shared/apache/logs \
--activate-module=src/modules/perl/libperl.a \
--activate-module=src/modules/php4/libphp4.a \
--enable-module=access \
--disable-module=actions \
--enable-module=alias \
--enable-module=asis \
--enable-module=auth \
--enable-module=auth_anon \
--enable-module=auth_db \
--enable-module=auth_dbm \
--enable-module=autoindex \
--enable-module=cern_meta \
--enable-module=cgi \
--enable-module=dir \
--enable-module=env \
--enable-module=expires \
--enable-module=headers \
--disable-module=imap \
--enable-module=include \
--disable-module=info \
--enable-module=log_config \
--enable-module=mime \
--disable-module=mime_magic \
--disable-module=mmap_static \
--enable-module=negotiation \
--enable-module=rewrite \
--enable-module=setenvif \
--disable-module=so \
--enable-module=speling \
--enable-module=status \
--disable-module=userdir \
--enable-module=unique_id \
--enable-module=usertrack \
--enable-suexec \
--suexec-caller=apache \
--suexec-docroot=/htdocs \
--suexec-logfile=/logs/suexec_log \
--suexec-safepath=/bin:/usr/bin:/usr/local/bin \
--suexec-uidmin=1000 \
--suexec-gidmin=1000


When compiing apache, the following error appears:

Undefined                       first referenced
 symbol                             in file
png_set_strip_16                    /shared/lib/libgd.a(gd_png.o)
png_set_read_fn                     /shared/lib/libgd.a(gd_png.o)
png_create_write_struct             /shared/lib/libgd.a(gd_png.o)
png_create_read_struct              /shared/lib/libgd.a(gd_png.o)
png_set_tRNS                        /shared/lib/libgd.a(gd_png.o)
png_write_end                       /shared/lib/libgd.a(gd_png.o)
png_get_PLTE                        /shared/lib/libgd.a(gd_png.o)
png_read_end                        /shared/lib/libgd.a(gd_png.o)
png_set_packing                     /shared/lib/libgd.a(gd_png.o)
png_read_info                       /shared/lib/libgd.a(gd_png.o)
png_write_image                     /shared/lib/libgd.a(gd_png.o)
png_destroy_write_struct            /shared/lib/libgd.a(gd_png.o)
png_check_sig                       /shared/lib/libgd.a(gd_png.o)
png_set_dither                      /shared/lib/libgd.a(gd_png.o)
png_get_IHDR                        /shared/lib/libgd.a(gd_png.o)
png_get_rowbytes                    /shared/lib/libgd.a(gd_png.o)
png_set_strip_alpha                 /shared/lib/libgd.a(gd_png.o)
png_read_update_info                /shared/lib/libgd.a(gd_png.o)
png_create_info_struct              /shared/lib/libgd.a(gd_png.o)
png_set_IHDR                        /shared/lib/libgd.a(gd_png.o)
png_write_info                      /shared/lib/libgd.a(gd_png.o)
png_set_write_fn                    /shared/lib/libgd.a(gd_png.o)
png_get_io_ptr                      /shared/lib/libgd.a(gd_png.o)
png_read_image                      /shared/lib/libgd.a(gd_png.o)
png_destroy_read_struct             /shared/lib/libgd.a(gd_png.o)
png_get_error_ptr                   /shared/lib/libgd.a(gd_png.o)
png_set_sig_bytes                   /shared/lib/libgd.a(gd_png.o)
png_get_valid                       /shared/lib/libgd.a(gd_png.o)
png_get_tRNS                        /shared/lib/libgd.a(gd_png.o)
png_set_PLTE                        /shared/lib/libgd.a(gd_png.o)
ld: fatal: Symbol referencing errors. No output written to httpd

The problem lies in the order of the libs passed to the linker. This is a partial 
snippet of what is passed:

-lmodphp4  -lpam  -ldl -lz -lmysqlclient -lpng -lz -lgd -ljpeg

The solaris linker (/usr/ccs/bin/ld) needs -lpng to be to the right of -lgd in order 
to complete the linking. If I change the above to:

-lmodphp4  -lpam  -ldl -lz -lmysqlclient -lgz -lpng -lz -ljpeg

Linking succeeds with no issues.


-- 
Edit Bug report at: http://bugs.php.net/?id=9512&edit=1



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to