php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #2822 Compilation fails in libzend/ files - conflicting "dlerror" declarations
Submitted: 1999-11-24 18:31 UTC Modified: 2000-06-08 22:03 UTC
From: dswhite42 at yahoo dot com Assigned:
Status: Closed Package: Compile Failure
PHP Version: 4.0 Beta 3 OS: AIX 4
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: dswhite42 at yahoo dot com
New email:
PHP Version: OS:

 

 [1999-11-24 18:31 UTC] dswhite42 at yahoo dot com
I'm sorry if this report doesn't contain enough information - I'm not a C programmer.  But I'll try to describe the problem as best I can.  

My configure command:
./configure --with-mysql=/usr/local/
mysql --with-apache=../apache_1.3.9 --with-config-file-path=/http/bcbsnc/php

The compilation (using either AIX cc or gcc) both halt at the same place.  AIX' cc' error message seems more useful:

        /bin/sh ../../libtool --silent --mode=compile cc -DHAVE_CONFIG_H -I. -I.
 -I../.. -I../../libzend -I../.. -I../../libzend -I/http/bcbsnc/src/apache_1.3.9
/src/include -I/http/bcbsnc/src/apache_1.3.9/src/os/unix  -I/usr/local/mysql/inc
lude      -g -g -c -o apache.lo apache.c

"/http/bcbsnc/src/apache_1.3.9/src/os/unix/os.h", line 119.12: 1506-343 (S) Redeclaration of dlerror differs from previous declaration on line 35 of "/usr/include/dlfcn.h".

"/http/bcbsnc/src/apache_1.3.9/src/os/unix/os.h", line 119.12: 1506-050 (I) Return type "const unsigned char*" in redeclaration is not compatible with the previous return type "unsigned char*".

Though I'm not a C programmer, it looks like there is a conflicting declaration of dlfcn.h .  I was able to fix this problem and complete the compilation by going to my "apache_1.3.9" directory and modifying line 119 of /s
rc/os/unix/os.h to be "char *dlerror(void);" instead of "const char *dlerror(void);"

I wonder, does this have anything to do with the fact that php.h has definitions like this:

#if HAVE_DLFCN_H && !((defined(_AIX) || defined(AIX)) && APACHE)
#  include <dlfcn.h>
#endif
# endif
#endif

but files like libzend/zend_config.h have less-restrictive definitions like this?

#ifdef HAVE_DLFCN_H
# include <dlfcn.h>
#endif

Anyway, I apologize if this is not enough information, but I hope this report will help.


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2000-06-08 22:03 UTC] andi at cvs dot php dot net
A lot has changed since November. Can you please try and build PHP 4 again and reopen the bug report if you still encounter this problem.
Thanks,

Andi
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Sat Jul 12 13:01:33 2025 UTC