PHP 4.0 Bug #9044 Updated: Compiling with latest Openlink ODBC fails with PHP4
| From: | antiphobo at paradise dot net dot nz | Date: | Thu, 01 Feb 2001 21:16:49 +0000 |
| Subject: | PHP 4.0 Bug #9044 Updated: Compiling with latest Openlink ODBC fails with PHP4 | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-45557@lists.php.net to get a copy of this message | ||
ID: 9044
User Update by: antiphobo@paradise.net.nz
Status: Open
Bug Type: Compile Failure
Description: Compiling with latest Openlink ODBC fails with PHP4
Modified Openlink3.2 iodbc.h so that it could be used with openlink4:
contents of /usr/local/openlink/odbcsdk/include/iodbc.h now:
##########################################
#ifndef _CONFIG_H
#define _CONFIG_H
# if !defined(WINDOWS) && !defined(WIN32_SYSTEM)
# define _UNIX_
# include <stdlib.h>
# include <sys/types.h>
# define MEM_ALLOC(size) (malloc((size_t)(size)))
# define MEM_FREE(ptr) {if(ptr) free(ptr);}
# define STRCPY(t, s) (strcpy((char*)(t), (char*)(s)))
# define STRNCPY(t,s,n) (strncpy((char*)(t), (char*)(s), (size_t)(n)))
# define STRCAT(t, s) (strcat((char*)(t), (char*)(s)))
# define STRNCAT(t,s,n) (strncat((char*)(t), (char*)(s), (size_t)(n)))
# define STREQ(a, b) (strcmp((char*)(a), (char*)(b)) == 0)
# define STRLEN(str) ((str)? strlen((char*)(str)):0)
# define EXPORT
# define CALLBACK
# define FAR
# endif /* _UNIX_ */
# if defined(WINDOWS) || defined(WIN32_SYSTEM)
# include <windows.h>
# include <windowsx.h>
# ifdef _MSVC_
# define MEM_ALLOC(size) (fmalloc((size_t)(size)))
# define MEM_FREE(ptr) ((ptr)? ffree((PTR)(ptr)):0))
# define STRCPY(t, s) (fstrcpy((char FAR*)(t), (char FAR*)(s)))
# define STRNCPY(t,s,n) (fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n)))
# define STRLEN(str) ((str)? fstrlen((char FAR*)(str)):0)
# define STREQ(a, b) (fstrcmp((char FAR*)(a), (char FAR*)(b) == 0)
# endif
# ifdef _BORLAND_
# define MEM_ALLOC(size) (farmalloc((unsigned long)(size))
# define MEM_FREE(ptr) ((ptr)? farfree((void far*)(ptr)):0)
# define STRCPY(t, s) (_fstrcpy((char FAR*)(t), (char FAR*)(s)))
# define STRNCPY(t,s,n) (_fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n)))
# define STRLEN(str) ((str)? _fstrlen((char FAR*)(str)):0)
# define STREQ(a, b) (_fstrcmp((char FAR*)(a), (char FAR*)(b) == 0)
# endif
# endif /* WINDOWS */
# define SYSERR (-1)
# ifndef NULL
# define NULL ((void FAR*)0UL)
# endif
#endif
##########################################
Compiled OK(version 404sp1); './configure' '--with-openlink=/usr/local/openlink'
'--with-mysql' '--with-apache=../apache_1.3.17' '--enable-track-vars'
Caused This WARNING when make-ing:
make[3]: Entering directory `/tmp/php-4.0.4pl1/ext/odbc'
gcc -I. -I/tmp/php-4.0.4pl1/ext/odbc -I/tmp/php-4.0.4pl1/main -I/tmp/php-4.0.4pl1
-I/tmp/apache_1.3.17/src/include -I/tmp/apache_1.3.17/src/os/unix -I/tmp/php-4.0.4pl1/Zend
-I/tmp/php-4.0.4pl1/ext/mysql/libmysql -I/usr/local/openlink/odbcsdk/include
-I/tmp/php-4.0.4pl1/ext/xml/expat/xmltok -I/tmp/php-4.0.4pl1/ext/xml/expat/xmlparse
-I/tmp/php-4.0.4pl1/TSRM -DXML_BYTE_ORDER=12 -g -O2 -c php_odbc.c && touch php_odbc.lo
In file included from php_odbc.h:128,
from php_odbc.c:31:
/usr/local/openlink/odbcsdk/include/udbcext.h:47: warning: `SQL_LEN_DATA_AT_EXEC' redefined
/usr/local/openlink/odbcsdk/include/sqlext.h:250: warning: this is the location of the previous
definition
***
Now Apache won't run; NOTHING reported in /etc/httpd/logs - where can i find failure reason?
Trying again with older versions of PHP and Apache.
Previous Comments:
---------------------------------------------------------------------------
[2001-02-01 03:09:06] antiphobo@paradise.net.nz
Well using the old (ver3.2) iodbc.h doesn't work with ver 4 :(
gcc -I. -I/tmp/php-4.0.2/main -I/tmp/php-4.0.2 -I/tmp/php-4.0.2/main
-I/tmp/apache_1.3.17/src/include -I/tmp/apache_1.3.17/src/os/unix -I/tmp/php-4.0.2/Zend
-I/tmp/php-4.0.2 -I/tmp/php-4.0.2/ext/mysql/libmysql -I/usr/local/openlink/odbcsdk/include
-I/tmp/php-4.0.2/ext/xml/expat/xmltok -I/tmp/php-4.0.2/ext/xml/expat/xmlparse -DXML_BYTE_ORDER=12
-g -O2 -c internal_functions.c && touch internal_functions.lo
In file included from /tmp/php-4.0.2/ext/odbc/php_odbc.h:115,
from internal_functions.c:38:
/usr/local/openlink/odbcsdk/include/udbcext.h:47: warning: `SQL_LEN_DATA_AT_EXEC' redefined
/usr/local/openlink/odbcsdk/include/sqlext.h:250: warning: this is the location of the previous
definition
In file included from /usr/local/openlink/odbcsdk/include/sql.h:37,
from /usr/local/openlink/odbcsdk/include/isql.h:32,
from /tmp/php-4.0.2/ext/odbc/php_odbc.h:113,
from internal_functions.c:38:
/usr/local/openlink/odbcsdk/include/sqltypes.h:68: conflicting types for `WORD'
/usr/local/openlink/odbcsdk/include/iodbc.h:25: previous declaration of `WORD'
/usr/local/openlink/odbcsdk/include/sqltypes.h:69: conflicting types for `DWORD'
/usr/local/openlink/odbcsdk/include/iodbc.h:26: previous declaration of `DWORD'
/usr/local/openlink/odbcsdk/include/sqltypes.h:75: redefinition of `BOOL'
/usr/local/openlink/odbcsdk/include/iodbc.h:31: `BOOL' previously declared here
/usr/local/openlink/odbcsdk/include/sqltypes.h:150: redefinition of `HWND'
/usr/local/openlink/odbcsdk/include/iodbc.h:30: `HWND' previously declared here
make[2]: *** [internal_functions.lo] Error 1
make[2]: Leaving directory `/tmp/php-4.0.2/main'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/php-4.0.2/main'
make: *** [all-recursive] Error 1
---------------------------------------------------------------------------
[2001-02-01 02:40:11] antiphobo@paradise.net.nz
Ok, well obviously PHP isn't make'ing because of the missing iodbc.h:
My openlink4 dir (/usr/local/openlink/odbcsdk/include)
contains:
isql.h isqltypes.h sqlext.h udbcext.h
isqlext.h sql.h sqltypes.h
I just unzipped the Openlink 3.2, and the dir contained:
iodbc.h isql.h isqlext.h udbcext.h
^^^^^^
^^^^^^
In both instances, only lmbrzzzz.taz and lmkozzzz.taz were used to install openlink. I'll try
using the v3.2 iodbc.h (and a few other things if that doesn't work).
---------------------------------------------------------------------------
[2001-02-01 02:04:52] antiphobo@paradise.net.nz
Tested with PHP402, 404Sp1 and Openlink version 4 :
php configured as:
/configure --with-openlink=/usr/local/openlink --with-mysql --with-apache=../apache_1.3.17
--enable-track-vars
then make fails with :
gcc -I. -I/tmp/php-4.0.2/main -I/tmp/php-4.0.2 -I/tmp/php-4.0.2/main
-I/tmp/apache_1.3.17/src/include -I/tmp/apache_1.3.17/src/os/unix -I/tmp/php-4.0.2/Zend
-I/tmp/php-4.0.2 -I/tmp/php-4.0.2/ext/mysql/libmysql -I/usr/local/openlink/odbcsdk/include
-I/tmp/php-4.0.2/ext/xml/expat/xmltok -I/tmp/php-4.0.2/ext/xml/expat/xmlparse -DXML_BYTE_ORDER=12
-g -O2 -c internal_functions.c && touch internal_functions.lo
In file included from internal_functions.c:38:
/tmp/php-4.0.2/ext/odbc/php_odbc.h:112: iodbc.h: No such file or directory
In file included from /tmp/php-4.0.2/ext/odbc/php_odbc.h:115,
from internal_functions.c:38:
/usr/local/openlink/odbcsdk/include/udbcext.h:47: warning: `SQL_LEN_DATA_AT_EXEC' redefined
/usr/local/openlink/odbcsdk/include/sqlext.h:250: warning: this is the location of the previous
definition
make[2]: *** [internal_functions.lo] Error 1
make[2]: Leaving directory `/tmp/php-4.0.2/main'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/php-4.0.2/main'
make: *** [all-recursive] Error 1
---------------------------------------------------------------------------
Full Bug description available at: http://bugs.php.net/?id=9044