PHP 4.0 Bug #2822: Compilation fails in libzend/ files - conflicting "dlerror" declarations
| From: | dswhite42 at yahoo dot com | Date: | Wed, 24 Nov 1999 17:31:37 +0000 |
| Subject: | PHP 4.0 Bug #2822: Compilation fails in libzend/ files - conflicting "dlerror" declarations | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-13065@lists.php.net to get a copy of this message | ||
From: dswhite42@yahoo.com
Operating system: AIX 4
PHP version: 4.0 Beta 3
PHP Bug Type: Compile Failure
Bug description: Compilation fails in libzend/ files - conflicting "dlerror" declarations
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.