Bug #80876 [Opn->Csd]: Compile errors/warnings with unixODBC

From: Date: Wed, 17 Mar 2021 15:37:33 +0000
Subject: Bug #80876 [Opn->Csd]: Compile errors/warnings with unixODBC
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-232823@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80876&edit=1 ID: 80876 Updated by: nikic@php.net Reported by: sergiopaternoster73 at gmail dot com Summary: Compile errors/warnings with unixODBC -Status: Open +Status: Closed Type: Bug Package: PDO ODBC Operating System: Ubuntu 18.04 Server PHP Version: 8.0.3 -Assigned To: +Assigned To: nikic Block user comment: N Private report: N New Comment: I've cherry-picked our warning fixes from master to the PHP-8.0 branch. I think all of those warnings are harmless though, I don't think any of them indicated any actual functional problems. Previous Comments: ------------------------------------------------------------------------ [2021-03-17 14:22:59] sergiopaternoster73 at gmail dot com I cloned the whole 8.1.0-dev and the warnings disappeared. Thank you! Please, close this bug. ------------------------------------------------------------------------ [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

« previous php.bugs (#232823) next »