-
Type: Task
-
Resolution: Fixed
-
Priority: Critical - P2
-
Affects Version/s: 1.16.0
-
Component/s: None
-
None
In 6a7a2ba (PR: mongodb/mongo-php-driver#1388), we added C99 as a build requirement. This was done in tandem with mongodb/mongo-c-driver#1067 for CDRIVER-4136 and libmongoc 1.24.0; however, we missed defining other necessary definitions from that PR.
Previously, mongodb/mongo-c-driver#920 for CDRIVER-4249 in libmongoc 1.21.0 warranted defining _DEFAULT_SOURCE for compiling our bundled sources. This was done in ab44b0c for PHPC-1647 (unrelated issue that coincidentally bumped to libmongoc 1.24-dev).
Most recently, the strerror_r changes in CDRIVER-4679 for libmongoc 1.25.0 and 1.24.3 will introduce a build failure if _XOPEN_SOURCE is not >= 700 and _GNU_SOURCE is not defined. Without changes to PHPC, this means the driver will no longer compile with libmongoc 1.24.3 on PHP 8.1 and earlier. PHP 8.2+ defines _GNU_SOURCE by default (see: php/php-src#8807).
To properly address this, PHPC should define explicitly opt into the various extensions mentioned in mongodb/mongo-c-driver#1067 and ensure those definitions are also used in our existing Autotools detection logic (e.g. strnlen in FindDependencies.m4).
- has to be finished together with
-
PHPC-2271 Upgrade libmongoc to 1.24.3
- Closed
- is depended on by
-
PHPC-2263 Detect XSI or GNU strerror_r() implementation during build process
- Closed
- is related to
-
CDRIVER-467 Impossible to connect with ssl=true without specifying mongoc_ssl_opt_t
- Closed
-
CDRIVER-4249 Undeclared DNS constants and symbols when building with POSIX 2008
- Closed
-
CDRIVER-4679 Prefer strerror_l instead of dealing with buggy XSI-compliant strerror_r detection
- Closed
-
PHPC-2263 Detect XSI or GNU strerror_r() implementation during build process
- Closed
-
CDRIVER-4136 Bump the minimum compilation standard from C89 to C99
- Closed