Edit report at https://bugs.php.net/bug.php?id=80876&edit=1
ID: 80876
Comment by: sergiopaternoster73 at gmail dot com
Reported by: sergiopaternoster73 at gmail dot com
Summary: Compile errors/warnings with unixODBC
Status: Open
Type: Bug
Package: PDO ODBC
Operating System: Ubuntu 18.04 Server
PHP Version: 8.0.3
Block user comment: N
Private report: N
New Comment:
I cloned the whole 8.1.0-dev and the warnings disappeared. Thank you! Please, close this bug.
Previous Comments:
------------------------------------------------------------------------
[2021-03-17 13:41:23] sergiopaternoster73 at gmail dot com
Unfortunately not. Now I also see a problem with pdo_odbc.c, is there any patch for that as well?
/bin/bash /home/edsradmin/software/php/php-8.0.3/libtool --silent --preserve-dup-deps --mode=compile
cc -Iext/pdo_odbc/ -I/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/
-I/home/edsradmin/software/php/php-8.0.3/include -I/home/edsradmin/software/php/php-8.0.3/main
-I/home/edsradmin/software/php/php-8.0.3 -I/home/edsradmin/software/php/php-8.0.3/ext/date/lib
-I/usr/include/libxml2 -I/home/edsradmin/software/php/php-8.0.3/ext/mbstring/libmbfl
-I/home/edsradmin/software/php/php-8.0.3/ext/mbstring/libmbfl/mbfl
-I/home/edsradmin/software/php/php-8.0.3/TSRM -I/home/edsradmin/software/php/php-8.0.3/Zend
-Wno-clobbered -Wall -Wextra -Wno-strict-aliasing -Wno-implicit-fallthrough -Wno-unused-parameter
-Wno-sign-compare -g -fvisibility=hidden -O0 -DZEND_SIGNALS
-I/home/edsradmin/software/php/php-8.0.3/ext -I/usr/local/include
-DPDO_ODBC_TYPE=\"unixODBC\" -c
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/pdo_odbc.c -o ext/pdo_odbc/pdo_odbc.lo
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/pdo_odbc.c:391:2: warning: excess elements in
struct initializer
NULL /* get_gc */
^~~~
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/pdo_odbc.c:391:2: note: (near initialization for
âodbc_methodsâ)
/bin/bash /home/edsradmin/software/php/php-8.0.3/libtool --silent --preserve-dup-deps --mode=compile
cc -Iext/pdo_odbc/ -I/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/
-I/home/edsradmin/software/php/php-8.0.3/include -I/home/edsradmin/software/php/php-8.0.3/main
-I/home/edsradmin/software/php/php-8.0.3 -I/home/edsradmin/software/php/php-8.0.3/ext/date/lib
-I/usr/include/libxml2 -I/home/edsradmin/software/php/php-8.0.3/ext/mbstring/libmbfl
-I/home/edsradmin/software/php/php-8.0.3/ext/mbstring/libmbfl/mbfl
-I/home/edsradmin/software/php/php-8.0.3/TSRM -I/home/edsradmin/software/php/php-8.0.3/Zend
-Wno-clobbered -Wall -Wextra -Wno-strict-aliasing -Wno-implicit-fallthrough -Wno-unused-parameter
-Wno-sign-compare -g -fvisibility=hidden -O0 -DZEND_SIGNALS
-I/home/edsradmin/software/php/php-8.0.3/ext -I/usr/local/include
-DPDO_ODBC_TYPE=\"unixODBC\" -c
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c -o ext/pdo_odbc/odbc_driver.lo
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c: In function
âpdo_odbc_fetch_error_funcâ:
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:42:36: warning: format
â%ldâ expects argument of type âlong intâ, but argument 5 has type âSDWORD
{aka int}â [-Wformat=]
message = strpprintf(0, "%s (%s[%ld] at %s:%d)",
~~^
%d
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:44:18:
einfo->what, einfo->last_error,
~~~~~~~~~~~~~~~~~
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c: In function
âpdo_odbc_errorâ:
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:88:41: warning: pointer targets in
passing argument 4 of âSQLGetDiagRecâ differ in signedness [-Wpointer-sign]
rc = SQLGetDiagRec(htype, eh, recno++, einfo->last_state, &einfo->last_error,
^~~~~
In file included from /usr/local/include/sqlext.h:43:0,
from /usr/local/include/sqlucode.h:784,
from /home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/php_pdo_odbc_int.h:51,
from /home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:27:
/usr/local/include/sql.h:726:24: note: expected âSQLCHAR * {aka unsigned char *}â but
argument is of type âchar *â
SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle,
^~~~~~~~~~~~~
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:89:4: warning: pointer targets in
passing argument 6 of âSQLGetDiagRecâ differ in signedness [-Wpointer-sign]
einfo->last_err_msg, sizeof(einfo->last_err_msg)-1, &errmsgsize);
^~~~~
------------------------------------------------------------------------
[2021-03-17 12:58:54] nikic@php.net
Does cherry-picking https://github.com/php/php-src/commit/aa58db723221ec891d4432621003bfa55dc15edf
fix the warnings?
------------------------------------------------------------------------
[2021-03-17 12:05:22] sergiopaternoster73 at gmail dot com
Description:
------------
Simple configure (and unixODBC 2.3.9 previously compiled in /usr/local).
The compile ends eventually but I have some instability in using ODBC.
sudo ./configure --prefix=/usr/local/php/8.0.3 \
--disable-cgi \
--enable-debug \
--disable-opcache \
--enable-mbstring \
--with-pdo_odbc=unixODBC,/usr/local \
--with-unixODBC=/usr/local \
--with-iconv \
--without-pdo-sqlite \
--disable-phar
It generates a list of warnings (which I think are related to my ODBC/Unicode issues on php8):
/bin/bash /home/edsradmin/software/php/php-8.0.3/libtool --silent --preserve-dup-deps --mode=compile
cc -Iext/pdo_odbc/ -I/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/
-I/home/edsradmin/software/php/php-8.0.3/include -I/home/edsradmin/software/php/php-8.0.3/main
-I/home/edsradmin/software/php/php-8.0.3 -I/home/edsradmin/software/php/php-8.0.3/ext/date/lib
-I/usr/include/libxml2 -I/home/edsradmin/software/php/php-8.0.3/ext/mbstring/libmbfl
-I/home/edsradmin/software/php/php-8.0.3/ext/mbstring/libmbfl/mbfl
-I/home/edsradmin/software/php/php-8.0.3/TSRM -I/home/edsradmin/software/php/php-8.0.3/Zend
-Wno-clobbered -Wall -Wextra -Wno-strict-aliasing -Wno-implicit-fallthrough -Wno-unused-parameter
-Wno-sign-compare -g -fvisibility=hidden -O0 -DZEND_SIGNALS
-I/home/edsradmin/software/php/php-8.0.3/ext -I/usr/local/include
-DPDO_ODBC_TYPE=\"unixODBC\" -c
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c -o ext/pdo_odbc/odbc_driver.lo
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c: In function
âpdo_odbc_fetch_error_funcâ:
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:42:36: warning: format
â%ldâ expects argument of type âlong intâ, but argument 5 has type âSDWORD
{aka int}â [-Wformat=]
message = strpprintf(0, "%s (%s[%ld] at %s:%d)",
~~^
%d
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:44:18:
einfo->what, einfo->last_error,
~~~~~~~~~~~~~~~~~
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c: In function
âpdo_odbc_errorâ:
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:88:41: warning: pointer targets in
passing argument 4 of âSQLGetDiagRecâ differ in signedness [-Wpointer-sign]
rc = SQLGetDiagRec(htype, eh, recno++, einfo->last_state, &einfo->last_error,
^~~~~
In file included from /usr/local/include/sqlext.h:43:0,
from /usr/local/include/sqlucode.h:784,
from /home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/php_pdo_odbc_int.h:51,
from /home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:27:
/usr/local/include/sql.h:726:24: note: expected âSQLCHAR * {aka unsigned char *}â but
argument is of type âchar *â
SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle,
^~~~~~~~~~~~~
/home/edsradmin/software/php/php-8.0.3/ext/pdo_odbc/odbc_driver.c:89:4: warning: pointer targets in
passing argument 6 of âSQLGetDiagRecâ differ in signedness [-Wpointer-sign]
einfo->last_err_msg, sizeof(einfo->last_err_msg)-1, &errmsgsize);
^~~~~
Expected result:
----------------
No errors
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80876&edit=1