- 1. 概要
- 2. 現象
- 3. 対処
- 4. 参考サイト
1. 概要
発生は、2026年10月28日、「FreeBSD 14.5-RELEASE」でのことです。
2. 現象
「PHP 8.4」をインストールしようとして。
make NO_DIALOG=yes
すると。
・・・ 略 ・・・
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1
Stop.
make: stopped making "all" in /usr/ports/lang/php84/work/php-8.4.27
*** Error code 1
Stop.
make[1]: stopped making "/usr/ports/lang/php84/work/.stage_done.php84._usr_local" in /usr/ports/lang/php84
*** Error code 1
Stop.
make: stopped making "all" in /usr/ports/lang/php84
3. 対処
「Gemini」伍長に相談してみました。
回答は。
原因
エラーの原因は、PHPのビルド時に DTrace(DTRACEオプション) が有効になっていることです。
DTraceが生成するオブジェクトファイル(Zend/zend_dtrace.d.o)が実行可能スタック(executable stack)を要求するため、最近のFreeBSDにおける厳格化されたLLDリンカー(ld.lld)のセキュリティチェックに引っかかり、ビルドが停止してしまっています。
対処方法
以下のいずれかの方法で解決できます。通常、DTraceを特に使用していない場合は 方法1(DTraceを無効化する) が最も手軽で確実です。
これって、「PHPの脆弱性」の影響なのかしら?
とりあえず。
cd /usr/ports/lang/php84
make config
「DTRACE」のチェックをはずします。
make clean
make NO_DIALOG=yes
make reinstall clean
これで、インストールできました。
4.
本ページは、「Gemini」伍長を参考にさせていただきました。
|
|