php-master-changes 2019-03-12

今日は sqlite3 の defensive モード対応、Win32 版での configure の必須プログラムチェックの修正、弱参照の実装、ドキュメントの更新、拡張ロード時の RTLD_NOW への対応、ビルトイン HTTP サーバの `$_SERVER['REMOTE_ADDR']` の IP アドレスが誤っていた問題の修正、ZTS キャッシュの扱い修正があった！

# 2019-03-12
## bohwaz: SQLite3: add DEFENSIVE config for SQLite >= 3.26.0 as a mitigation strategy against potential security flaws
- https://github.com/php/php-src/commit/e93259bb23500e26a7b0317cde9ad5398eec074e
- [7.2~]
- ext/sqlite3 で、SQLite 3.26.0 以上用に [defensive モード](https://www.sqlite.org/c3ref/c_dbconfig_defensive.html#sqlitedbconfigdefensive)のサポートを追加
- INI の sqlite3.defensive で設定
- DB ファイルをわざとぶっ壊せる機能が無効になる

## weltling: Die hard if mc.exe or mt.exe not found
- https://github.com/php/php-src/commit/6814ba11bc8c2638b7345aaea176fc7c678aa07f
- [7.2~]
- Win32 版のビルドで、mc.exe か mt.exe がなかったら configure の段階でエラーにして止めるよう修正

## krakjoe: zend_weakrefs
- https://github.com/php/php-src/commit/6529d7acd9912a609924633a43e6562799566225
- [7.4~]
- [PHP RFC: Weak References](https://wiki.php.net/rfc/weakrefs) の実装

## krakjoe: weakrefs upgrading note
- https://github.com/php/php-src/commit/b003e0a0f58a690854ebb99e3205b78f22abb567
- [7.4~]
- ↑ の UPGRADING への追記

## remicollet: add --enable-rtld-now build option to change dlopen behavior
- https://github.com/php/php-src/commit/d633cbac1c1d957ae07994b2e20ea4d86ad8dc3c
- ビルドオプションに --enable-rtld-now を追加
- 拡張ロード時の dlopen() で [RTLD_LAZY と RTLD_NOW](http://archive.linux.or.jp/JF/JFdocs/Program-Library-HOWTO/dl-libraries.html) のどちらを使うかの設定
- これまでは常時 RTLD_LAZY だった

## remicollet: use DL_LOAD in litespeed
- https://github.com/php/php-src/commit/233888e36a6fb510214414a7ddb5fe18637b4182
- sapi/litespeed で、共有オブジェクトのロードに dlopen() を直接使わず DL_LOAD() を使うよう修正

## remicollet: add --enable-rtld-now in upgrade info
- https://github.com/php/php-src/commit/99ee5db5e0318b486f408fcdc2abe5de43519c46
- [7.4~]
- --enable-rtld-now について UPGRADING.INTERNALS へ追記

## nikic: Fixed bug [#77722](https://bugs.php.net/bug.php?id=77722)
- https://github.com/php/php-src/commit/a7739be22f8b376c58d666caa4479005e14bc2fa
- [7.3~]
- sapi/cli で、ビルトイン HTTP サーバの `$_SERVER['REMOTE_ADDR']` の IP アドレスが誤っていた問題の修正

## dstogov: Fixed ZTS cache usage
- https://github.com/php/php-src/commit/c48f5fe841987f9c43111565e9a259698539b9ec
- [7.4~]
- ext/ffi で、ZEND_ENABLE_STATIC_TSRMLS_CACHE=1 でビルドするよう修正

## dstogov: Cleanup unused module globals
- https://github.com/php/php-src/commit/5aa1176238f41097ea7295ba6911aa19ae7c1021
- [7.4~]
- 幾つかの拡張の使われていないグローバル変数の削除

## dstogov: Switch to use ZTS cache
- https://github.com/php/php-src/commit/f1b306fe117cfbbe69ab4ef9713d39ea068e74c0
- [7.4~]
- 幾つかの拡張で ZEND_ENABLE_STATIC_TSRMLS_CACHE=1 でビルドするよう修正

## dstogov: Fixed ZTS cache usage
- https://github.com/php/php-src/commit/b0d76ed4adce1099d6dd101e6757af6c1d0f6646
- [7.4~]
- sapi/phpdbg で、TSRMG を ZEND_TSRMG に修正

## dstogov: Fixed ZTS cache usage
- https://github.com/php/php-src/commit/25d4af9413b478393b9bc92fdb585495d56d8e25
- [7.4~]
- sapi/phpdbg で、TSRMG_BULK を TSRMG_BULK_STATIC に修正

## dstogov: Fixed ZTS cache usage
- https://github.com/php/php-src/commit/cf4ee57dc9024362aaf009ac82013cb86f9aa350
- [7.4~]
- sapi/fpm で、ZEND_ENABLE_STATIC_TSRMLS_CACHE=1 でビルドするよう修正し、TSRMG を ZEND_TSRMG に修正

## dstogov: Fixed ZTS cache usage
- https://github.com/php/php-src/commit/7139c381f133eff38e1fcebfa29f35119c8648f4
- [7.4~]
- ext/mbstring で、拡張ビルド時に使われるソースコードを変更しているっぽいがいまいち分からず

## dstogov: Avoid reinitailization of ZTS cache pointer. Initialize it once in TSRM.c
- https://github.com/php/php-src/commit/04b67bac32e5fbc0942a1e15405fa1ca7f0438fe
- [7.4~]
- ZTS キャッシュポインタの最初期化を避け、TSRM.c で一度だけ初期化するよう修正