Hi

thanks for taking a look, some comments below.

On Mon, 2016-12-05 at 17:53 +0100, Anatol Belski wrote:
> Thanks for the ping. I've just checked the build locally, some question arise.
> 
> I had to add the following three lines to config.w32
> 
>               ADD_FLAG("CFLAGS_BD_EXT_MYSQL_XDEVAPI_MESSAGES", "/D 
> ZEND_WIN32_KEEP_INLINE=1 /U ZEND_WIN32_FORCE_INLINE");
>               ADD_FLAG("CFLAGS_BD_EXT_MYSQL_XDEVAPI_XMYSQLND_CRUD_PARSERS", 
> "/D ZEND_WIN32_KEEP_INLINE=1 /U ZEND_WIN32_FORCE_INLINE");
>               ADD_FLAG("CFLAGS_BD_EXT_MYSQL_XDEVAPI_XMYSQLND", "/D 
> ZEND_WIN32_KEEP_INLINE=1 /U ZEND_WIN32_FORCE_INLINE");
> 
> The issue here with vc14 is, that otherwise the default option in PHP
> is ZEND_WIN32_FORCE_INLINE which replaces "inline" with
> "__forceinline". While it is ok for C oriented code, it generates
> wrong code for "inline namespace" in C++. Please add these three lines
> to the config.w32. It's probably only an issue with C++11, but the
> extension is only 7.1 compatible and we use vc14 for that. AFM, while
> this issue is seldom, the solution looks more than suboptimal, I'll
> look to fix it in master, if not in 7.1 already.

Darek, can you test on your system and add those to config.w32 in our
repo? Thanks!

> It otherwise turned out, that some parts unconditionally depend on
> Boost. It was OK, when I've pointed to headers from 1.61.0, but
> strangely that was it. Is it, that no actual Boost libs are required
> for linking? Otherwise, which Boost version should be used? I could
> try first to use bins
> https://sourceforge.net/projects/boost/files/boost-binaries/ , or
> prepare own compatible builds otherwise.

We only need header-only libs from boost. 1.61.0 is fine, no boost
binaries required.

> It otherwise succeeded with protobuf 3.0.2, while seems there are some
> symbol issues with 3.0.0. And the latest 3.1.0 is broken on Windows
> 64-bit, so couldn't tell how it would be. Any version known to fit
> best here?

We had some issues with protobuf 3, I myself mostly use 2.6 but 3.0.2
should be fine, too.

> With this mentioned, the local build is ok.

Great!

> A question to the testing - is the following the only required step?
> 
> INSTALL PLUGIN mysqlx SONAME 'mysqlx.dll';
> 
> As described here 
> https://dev.mysql.com/doc/refman/5.7/en/document-store-setting-up.html

Yes, that loads the server plugin which adds support for the new protbuf
based protocol.

> Locally I've these only tests failing, default insecure server setup
> 
> ========DIFF========
> 001+ '[HY000] php_network_getaddresses: getaddrinfo failed: No such host is 
> known. ' != '[HY000] php_network_getaddresses: getaddrinfo failed: Name or 
> service not known'
> 002+ Some expectation were not meet!
> 003+ Expected: 1111111111, result: 0111111111
> ========DONE========
> FAIL mysqlx connection (success/fail) 
> [C:\php-sdk\php71\vc14\x64\php-src\ext\mysql_xdevapi\tests\001.phpt]
> 
> ========DIFF========
> 001+ Warning: mysql_xdevapi\NodeTableSelect::execute(): [1365] Division by 0 
> in C:\php-sdk\php71\vc14\x64\php-src\ext\mysql_xdevapi\tests\011.php on line 
> 16
> 002+
> 003+ Warning: mysql_xdevapi\NodeTableSelect::execute(): [1365] Division by 0 
> in C:\php-sdk\php71\vc14\x64\php-src\ext\mysql_xdevapi\tests\011.php on line 
> 16
> 004+
> 005+ Warning: mysql_xdevapi\NodeTableSelect::execute(): [1365] Division by 0 
> in C:\php-sdk\php71\vc14\x64\php-src\ext\mysql_xdevapi\tests\011.php on line 
> 16
> 006+ '' != '3'
> 007+ Some expectation were not meet!
> 008+ Expected: 1, result: 0
> ========DONE========
> FAIL mysqlx warnings 
> [C:\php-sdk\php71\vc14\x64\php-src\ext\mysql_xdevapi\tests\011.phpt]

Darek/Filip could you take a look at those tests?

> Could you please clear out the protobuf and boost usage, mentioned earlier? 
> I'd go setup it on the buildhost then.
> 
> Thanks.

Thank you for testing!

johannes



-- 
PECL development discussion Mailing List (http://pecl.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to