Bug #67186 [Com]: PHP 5.6.0beta2 fails to compile when compiling mysqli extension with libmysql
| From: | andy at webtatic dot com | Date: | Mon, 05 May 2014 19:10:20 +0000 |
| Subject: | Bug #67186 [Com]: PHP 5.6.0beta2 fails to compile when compiling mysqli extension with libmysql | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-185647@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=67186&edit=1
ID: 67186
Comment by: andy at webtatic dot com
Reported by: andy at webtatic dot com
Summary: PHP 5.6.0beta2 fails to compile when compiling
mysqli extension with libmysql
Status: Assigned
Type: Bug
Package: MySQLi related
Operating System: all
PHP Version: 5.6.0beta2
Assigned To: mysql
Block user comment: N
Private report: N
New Comment:
Sorry I mean Adam not Alex :)
Previous Comments:
------------------------------------------------------------------------
[2014-05-05 19:07:46] andy at webtatic dot com
I think in the very least one of the following is done
1) Removing the MYSQLI_STORE_RESULT_OFS constant (which it being a typo, isn't used), and
implementing the ALIAS constant the same way Alex changed the COPY_DATA one
or
2) Replacing the change with my solution
Otherwise, having two competing implementations of both constants may be confusing.
------------------------------------------------------------------------
[2014-05-05 17:55:53] aharvey@php.net
In theory, my commit (linked above) should fix this, but as Andy says, there may be a simpler
solution.
Friendly people of the MySQL team, what would you prefer? I was aiming to match the other places
MYSQLI_STORE_RESULT_COPY_DATA was used, but if #define 0 is an option, that might be cleaner.
------------------------------------------------------------------------
[2014-05-03 07:31:22] andy at webtatic dot com
I see someone has already implemented a fix (although more complex solution that doesn't match
the way MYSQLI_ASYNC is done)
https://github.com/php/php-src/commit/06a03bbfa60bedb3f30bb2908449fc30d54f848e
------------------------------------------------------------------------
[2014-05-03 07:13:20] andy at webtatic dot com
Description:
------------
Due to the way the new fetching mode for mysqlnd was added, it fails to compile the extension with
libmysql.
The reason is because of a typo in the non-mysqlnd constant definition
#define MYSQLI_STORE_RESULT_OFS 0
This should be
#define MYSQLI_STORE_RESULT_COPY_DATA 0
The constant is used outside of a #ifdef MYSQLI_USE_MYSQLN, and setting it to 0 appears to be the
correct way to use it from looking at how MYSQLI_ASYNC works
Test script:
---------------
./configure --with-mysqli=shared,/usr/lib64/mysql/mysql_config
make
Expected result:
----------------
Successful compilation
Actual result:
--------------
ext/mysqli/mysqli_nonapi.c: In function 'zif_mysqli_query':
ext/mysqli/mysqli_nonapi.c:578: error: 'MYSQLI_STORE_RESULT_COPY_DATA' undeclared (first
use in this function)
ext/mysqli/mysqli_nonapi.c:578: error: (Each undeclared identifier is reported only once
ext/mysqli/mysqli_nonapi.c:578: error: for each function it appears in.)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=67186&edit=1