mongo-php-driver icon indicating copy to clipboard operation
mongo-php-driver copied to clipboard

Compilation issues with PHP master (8,6-dev)

Open derickr opened this issue 1 week ago • 1 comments

Bug Report

Compilation with php-master failes with:

Error Output:
================
mkdir: cannot create directory 'src/libmongocrypt/src/crypto/.libs': File exists
mkdir: cannot create directory 'src/libmongocrypt/src/os_win/.libs': File exists
mkdir: cannot create directory 'src/MongoDB/Monitoring/.libs': File exists
mkdir: cannot create directory 'src/MongoDB/Monitoring/.libs': File exists
/home/derick/.config/pie/php8.6_b3a3bdfe9f58cd5449048cea5d2d231b/vendor/mongodb/mongodb-extension/mongodb-2.1.4/src/MongoDB/Cursor.c: In function ‘zim_MongoDB_Driver_Cursor_toArray’:
/home/derick/.config/pie/php8.6_b3a3bdfe9f58cd5449048cea5d2d231b/vendor/mongodb/mongodb-extension/mongodb-2.1.4/src/MongoDB/Cursor.c:126:17: error: implicit declaration of function ‘zval_dtor’ [-Wimplicit-function-declaration]
  126 |                 zval_dtor(return_value);
      |                 ^~~~~~~~~
/home/derick/.config/pie/php8.6_b3a3bdfe9f58cd5449048cea5d2d231b/vendor/mongodb/mongodb-extension/mongodb-2.1.4/src/MongoDB/ServerApi.c: In function ‘php_phongo_serverapi_init_from_hash’:
/home/derick/.config/pie/php8.6_b3a3bdfe9f58cd5449048cea5d2d231b/vendor/mongodb/mongodb-extension/mongodb-2.1.4/src/MongoDB/ServerApi.c:70:75: error: implicit declaration of function ‘ZVAL_IS_NULL’; did you mean ‘ZVAL_NULL’? [-Wimplicit-function-declaration]
   70 |         if ((strict = zend_hash_str_find(props, ZEND_STRL("strict"))) && !ZVAL_IS_NULL(strict)) {
      |                                                                           ^~~~~~~~~~~~
      |                                                                           ZVAL_NULL
/home/derick/.config/pie/php8.6_b3a3bdfe9f58cd5449048cea5d2d231b/vendor/mongodb/mongodb-extension/mongodb-2.1.4/src/MongoDB/ServerApi.c:88:27: error: implicit declaration of function ‘zval_is_true’; did you mean ‘zend_is_true’? [-Wimplicit-function-declaration]
   88 |                 strict && zval_is_true(strict),
      |                           ^~~~~~~~~~~~
      |                           zend_is_true
make: *** [Makefile:1152: src/MongoDB/Cursor.lo] Error 1
make: *** Waiting for unfinished jobs....
make: *** [Makefile:1173: src/MongoDB/ServerApi.lo] Error 1
  • zval_dtor() needs to be replaces by zval_ptr_dtor_nogc()
  • ZVAL_IS_NULL needs to be replaced with Z_ISNULL()
  • zval_is_true() needs to be replaced wutg zend_is_true()

See: https://github.com/php/php-src/blob/master/UPGRADING.INTERNALS#L17

derickr avatar Dec 10 '25 16:12 derickr