php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #13695 Compilation fails when trying to compile with DB2 Support
Submitted: 2001-10-16 13:41 UTC Modified: 2002-07-30 01:00 UTC
Votes:2
Avg. Score:4.0 ± 1.0
Reproduced:2 of 2 (100.0%)
Same Version:0 (0.0%)
Same OS:1 (50.0%)
From: pilyad at yahoo dot com Assigned:
Status: No Feedback Package: Compile Failure
PHP Version: 4.0.6 OS: AIX 4.3.3
Private report: No CVE-ID: None
 [2001-10-16 13:41 UTC] pilyad at yahoo dot com
  Have PHP-4.0.6 compiled and installed without MySql support and without IBM-DB2 Support. 
  When I tried to compile the same with IBM-DB2 Support compilation fails.
Server Built : Apache 1.3.19
DB2 Version : DB2 7.1
OS : AIX 4.3.3
Compiler : xlC_r -ma IBM Compiler

Configuring PHP-4.0.6 as follows........

"./configure" \
"--prefix=/mds/work/dd4cx8t/Web/php4.0.6" \
"--with-apxs=/mds/work/dd4cx8t/Web/apache/bin/apxs" \
"--without-mysql" \
"--with-ibm-db2=/usr/lpp/db2_07_01" \
"--enable-versioning" \
"--enable-track-vars" \
"--enable-trans-sid" \

Compilation fails with following errors
Making all in main
/mds/work/dd4cx8t/Web/php-4.0.6/main
        /bin/sh /mds/work/dd4cx8t/Web/php-4.0.6/libtool --silent --mode=compile xlC_r -ma  -I. -I/mds/work/dd4cx8t/Web/php-4.0.6/main -I/mds/work/dd4cx8t/Web/php-4.0.6/main -I/mds/work/dd4cx8t/Web/php-4.0.6 -I/mds/work/dd4cx8t/Web/apache/include -I/mds/work/dd4cx8t/Web/php-4.0.6/Zend -I/usr/lpp/db2_07_01/include -I/mds/work/dd4cx8t/Web/php-4.0.6/ext/xml/expat/xmltok -I/mds/work/dd4cx8t/Web/php-4.0.6/ext/xml/expat/xmlparse -I/mds/work/dd4cx8t/Web/php-4.0.6/TSRM  -DAIX=43 -DUSE_PTHREAD_SERIALIZED_ACCEPT -DAIX_BIND_PROCESSOR -DUSE_HSREGEX -DUSE_EXPAT -DSUPPORT_UTF8 -DXML_BYTE_ORDER=21 -g  -c internal_functions.c
"/usr/lpp/db2_07_01/include/sqlcli.h", line 718.9: 1506-213 (S) Macro name ODBCVER cannot be redefined.
"/usr/lpp/db2_07_01/include/sqlcli.h", line 718.9: 1506-358 (I) "ODBCVER" is defined on line 27 of /mds/work/dd4cx8t/Web/php-4.0.6/ext/odbc/php_odbc.h.
"/usr/lpp/db2_07_01/include/sqlcli1.h", line 126.10: 1506-213 (S) Macro name SQL_EXT_API_LAST cannot be redefined.
"/usr/lpp/db2_07_01/include/sqlcli1.h", line 126.10: 1506-358 (I) "SQL_EXT_API_LAST" is defined on line 621 of /usr/lpp/db2_07_01/include/sqlext.h.
"/usr/lpp/db2_07_01/include/sqlcli1.h", line 207.10: 1506-213 (S) Macro name SQL_OJ_CAPABILITIES cannot be redefined.
"/usr/lpp/db2_07_01/include/sqlcli1.h", line 207.10: 1506-358 (I) "SQL_OJ_CAPABILITIES" is defined on line 764 of /usr/lpp/db2_07_01/include/sqlext.h.
"/usr/lpp/db2_07_01/include/sqlcli1.h", line 219.9: 1506-213 (S) Macro name SQL_INFO_LAST cannot be redefined.
"/usr/lpp/db2_07_01/include/sqlcli1.h", line 219.9: 1506-358 (I) "SQL_INFO_LAST" is defined on line 776 of /usr/lpp/db2_07_01/include/sqlext.h.
make: 1254-004 The error code from the last command is 1.
Stop.
make: 1254-004 The error code from the last command is 1.
Stop.
make: 1254-004 The error code from the last command is 1.
Stop.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-06-29 23:31 UTC] sniper@php.net
Please try this snapshot:

http://snaps.php.net/php4-latest.tar.gz

 [2002-07-30 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2002-11-14 12:42 UTC] dougnak at hotmail dot com
Building on any unix variant will fail with the same error. The file php is looking for is sqlcli1.h, included from file ext/odbc/php_odbc_includes.h on line 287.
This file resides in the /usr/IBMdb2/V7.1/lib directory, which needs to be added to /etc/ld.so.conf and rerun ldconfig.
 [2002-11-14 13:01 UTC] dougnak at hotmail dot com
I spoke too soon. The ld.so.conf isn't what fixed it, you need to have the includes installed in /usr/IBMdb2/V7.1/includes, although I did add that line to my ld.so.conf and left it there. System is Gentoo Linux 1.4_rc1 and RedHat 7.3 with kernel 2.4.19. AFAIK these are installed with the install development applications option or something in the DB2 install. (which, along with RPM's I've stopped using)
 [2003-11-14 09:40 UTC] ibellinfantie at yahoo dot co dot uk
The DB2 include file will be found in /usr/include for AIX by way of a symbolic link with the DB2 install directory lib. If you have n't got the symbolic link, then something got broke. You can add these back using ln -s ( see man page ) . However, the problem in question which I get when building on AIXv5.1, is in the make output extraction below . It looks like the header sqlcli1.h has a definition which make thinks the php build is trying to overide. i.e. in the  /etc/odbc/php_odbc.c file is a line checking the value of ODBCVER 

#if defined(ODBCVER) && (ODBCVER >= 0x0300)

This should n't be a problem but it creates the error ,

"/usr/include/sqlcli.h", line 718.9: 1506-213 (S) Macro name ODBCVER cannot be redefined.

I'm trying to figure out, what needs to be changed in the build to alow this to work.

If anyone has any idea, please let me know.

There are other define errors include in the extract below.

I/usr/sys/inst.images/php-4.3.4/php-4.3.4/include -I/usr/sys/inst.images/php-4.3.4/php-4.3.4/main -I/usr/sys/inst.images/php-
4.3.4/php-4.3.4 -I/usr/sys/inst.images/php-4.3.4/php-4.3.4/Zend -I/usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/xml/expat  -qf
lag=e:e -I/usr/sys/inst.images/php-4.3.4/php-4.3.4/TSRM  -ma -DPASE  -c /usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/odbc/php
_odbc.c -o ext/odbc/php_odbc.o  && echo > ext/odbc/php_odbc.lo
"/usr/include/sqlcli.h", line 718.9: 1506-213 (S) Macro name ODBCVER cannot be redefined.
"/usr/include/sqlcli1.h", line 126.10: 1506-213 (S) Macro name SQL_EXT_API_LAST cannot be redefined.
"/usr/include/sqlcli1.h", line 207.10: 1506-213 (S) Macro name SQL_OJ_CAPABILITIES cannot be redefined.
"/usr/include/sqlcli1.h", line 219.9: 1506-213 (S) Macro name SQL_INFO_LAST cannot be redefined.
"/usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/odbc/php_odbc.c", line 201.30: 1506-280 (S) Function argument assignment betwee
n types "long" and "void*" is not allowed.
"/usr/sys/inst.images/php-4.3.4/php-4.3.4/e
 [2003-11-14 10:41 UTC] ibellinfantie at yahoo dot co dot uk
I've got past this error by just commenting out the defintions of the ODBCVER in the PHP header files. Its still defined in the DB2 includes. 
However, now have other errors to resolve as below

d char*" and "char*" is not allowed.
"/usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/odbc/php_odbc.c", line 3293.25: 1506-280 (E) Function argument assignment between types "unsig
ned char*" and "char*" is not allowed.
"/usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/odbc/php_odbc.c", line 3368.25: 1506-280 (E) Function argument assignment between types "unsig
ned char*" and "char*" is not allowed.
"/usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/odbc/php_odbc.c", line 3369.25: 1506-280 (E) Function argument assignment between types "unsig
ned char*" and "char*" is not allowed.
"/usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/odbc/php_odbc.c", line 3370.25: 1506-280 (E) Function argument assignment between types "unsig
ned char*" and "char*" is not allowed.
"/usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/odbc/php_odbc.c", line 3451.25: 1506-280 (E) Function argument assignment between types "unsig
ned char*" and "char*" is not allowed.
"/usr/sys/inst.images/php-4.3.4/php-4.3.4/ext/odbc/php_odbc.c", line 3452.25: 1506-280 (E) Function argument assignment between types "unsig
 [2003-11-14 11:32 UTC] ibellinfantie at yahoo dot co dot uk
OK, the solution was NOT to use the xlc compiler as stated by IBM in the RedBook on installing PHP for pseries etc. but to change the makefile variable , CC = xlc to CC = cc .
With the removal of the duplicate definitions as stated previously and this compiler change, it all worked a treat.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Oct 04 08:01:28 2024 UTC