php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #9009 build problem with informix esql 9.30 and iODBC 2.50.3
Submitted: 2001-01-30 15:37 UTC Modified: 2001-06-01 02:25 UTC
From: mg at gutjahr dot de Assigned:
Status: Closed Package: Compile Failure
PHP Version: 4.0.5 OS: Linux 2.2.16 (SuSE 7.0)
Private report: No CVE-ID: None
 [2001-01-30 15:37 UTC] mg at gutjahr dot de
make fails with Informix-ESQL and iODBC configured both.
when only one of both modules is configured, make works.

there seem's to be a conflict with libtool and two included sql.h-files

error-message:
/bin/sh /tmp/php-4.0.4/libtool --silent --mode=compile gcc  -I. -I/tmp/php-4.0.4/main
-I/tmp/php-4.0.4/main -I/tmp/php-4.0.4 -I/opt/apache/include -I/tmp/php-4.0.4/Zend 
-I/opt/informix/incl/esql -I/opt/iodbc/include -I/tmp/php-4.0.4/TSRM  -DLINUX=2 -DUSE_HSREGEX 
-DUSE_EXPAT -g -O2 -I/opt/informix/incl/esql  -c internal_functions.c
In file included from /tmp/php-4.0.4/ext/odbc/php_odbc.h:95,
                 from internal_functions.c:37:
/opt/iodbc/include/sql.h:197: parse error before `SQL_API'
/opt/iodbc/include/sql.h:198: parse error before `henv'
/opt/iodbc/include/sql.h:199: warning: data definition has no type or storage class
...

in iodbc/include/sql.h: 197:
SQLRETURN SQL_API SQLAllocConnect (
  SQLHENV henv
  SQLHDBC FAR * phdbc);

SQLRETURN seems to be defined in informix/sql.h, that is included
before iodbc/sql.h

a workaround is to change the includes in php_odbc.h:95,96
to full pathnames. 
#include "/opt/iodbc/include/sql.h"
#include "/opt/iodbc/include/sqlext.h"

I know that's not the solution, but I'm not a C-Programmer...


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-05-11 15:21 UTC] kalowsky@php.net
1) Do try to do this with the most recent version of PHP
2) please add a copy of your configure line
 [2001-05-16 06:28 UTC] mg at gutjahr dot de
tried to compile php-4.0.5 with config:

export INFORMIXDIR=/opt/informix
export PATH=$PATH:/opt/informix/bin:/opt/informix/lib/esql

./configure --with-apxs=/opt/apache/bin/apxs
--with-config-file-path=/opt/apache/conf --enable-debug=yes
--with-xml --with-dbase --enable-bcmath --with-bz2
--enable-wddx --without-mysql --with-iodbc=/opt/iodbc
--with-informix=/opt/informix

...

make:

zend_language_scanner.c:5546: warning: `yy_fatal_error'
defined but not used
zend_language_scanner.c:5531: warning: `yy_top_state'
defined but not used
zend_ini_scanner.c: In function `ini_lex':
zend_ini_scanner.c:818: warning: label `find_rule' defined
but not used
zend_ini_scanner.c: At top level:
zend_ini_scanner.c:1840: warning: `yy_flex_realloc' defined
but not used
zend_ini_scanner.c:1323: warning: `yyunput' defined but not used
zend_hash.c: In function `zend_hash_compare':
zend_hash.c:1145: warning: `p2' might be used uninitialized
in this function
zend_builtin_functions.c:704: warning:
`copy_import_use_file' defined but not used
zend_ini.c:311: warning: `zend_ini_displayer_cb' defined but
not used
main.c: In function `php_hash_environment':
main.c:984: warning: `dummy_track_vars_array' might be used
uninitialized in this function
In file included from /opt/iodbc/include/sql.h:38,
                 from /opt/iodbc/include/isql.h:32,
                 from /tmp/php-4.0.5/ext/odbc/php_odbc.h:95,
                 from internal_functions.c:36:
/opt/iodbc/include/sqltypes.h:83: parse error before `0'
In file included from /opt/iodbc/include/isql.h:32,
                 from /tmp/php-4.0.5/ext/odbc/php_odbc.h:95,
                 from internal_functions.c:36:
/opt/iodbc/include/sql.h:230: parse error before `0'
/opt/iodbc/include/sql.h:240: parse error before `0'
/opt/iodbc/include/sql.h:255: parse error before `0'
/opt/iodbc/include/sql.h:263: parse error before `0'
/opt/iodbc/include/sql.h:284: parse error before `0'
/opt/iodbc/include/sql.h:294: parse error before `0'
/opt/iodbc/include/sql.h:303: parse error before `0'
In file included from /opt/iodbc/include/isqlext.h:32,
                 from /tmp/php-4.0.5/ext/odbc/php_odbc.h:96,
                 from internal_functions.c:36:
/opt/iodbc/include/sqlext.h:1131: parse error before `0'
/opt/iodbc/include/sqlext.h:1196: parse error before `0'
/opt/iodbc/include/sqlext.h:1207: parse error before `0'
/opt/iodbc/include/sqlext.h:1218: parse error before `0'
/opt/iodbc/include/sqlext.h:1231: parse error before `0'
/opt/iodbc/include/sqlext.h:1243: parse error before `0'
/opt/iodbc/include/sqlext.h:1251: parse error before `0'
/opt/iodbc/include/sqlext.h:1263: parse error before `0'
/opt/iodbc/include/sqlext.h:1287: parse error before `0'
/opt/iodbc/include/sqlext.h:1305: parse error before `0'
/opt/iodbc/include/sqlext.h:1322: parse error before `0'
/opt/iodbc/include/sqlext.h:1331: parse error before `0'
/opt/iodbc/include/sqlext.h:1342: parse error before `0'
/opt/iodbc/include/sqlext.h:1357: parse error before `0'
/opt/iodbc/include/sqlext.h:1371: parse error before `0'
make[2]: *** [internal_functions.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

----

Hope that helps,
Martin 

 [2001-06-01 02:25 UTC] sniper@php.net
Fixed in CVS. Fix will be in PHP 4.0.6.

--Jani

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Apr 23 19:01:31 2024 UTC