Closed as not planned
Description
Description
With GCC 14, the step make prof-use
in PGO has been broken for hash_xxhash.c under PHP 8.3 (#14551) and for both hash_xxhash.c and session.c under PHP 8.4.
make prof-gen
# run workload
make prof-clean
make prof-use
Resulted in this output:
/bin/sh /tmp/php-8.4.8/libtool --silent --preserve-dup-deps --tag=CC --mode=compile cc -Iext/hash/ -I/tmp/php-8.4.8/ext/hash/ -I/tmp/php-8.4.8/main -I/tmp/php-8.4.8 -I/tmp/php-8.4.8/ext/date/lib -I/usr/include/libxml2 -I/usr/include/libpng16 -I/tmp/php-8.4.8/ext/mbstring/libmbfl -I/tmp/php-8.4.8/ext/mbstring/libmbfl/mbfl -I/tmp/php-8.4.8/TSRM -I/tmp/php-8.4.8/Zend -D_GNU_SOURCE -fno-common -Wstrict-prototypes -Wformat-truncation -Wlogical-op -Wduplicated-cond -Wno-clobbered -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -O2 -march=native -ffp-contract=off -fvisibility=hidden -Wimplicit-fallthrough=1 -DZEND_SIGNALS -fprofile-use -I/tmp/php-8.4.8/ext/hash/sha3/generic64lc -DKeccakP200_excluded -DKeccakP400_excluded -DKeccakP800_excluded -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -c /tmp/php-8.4.8/ext/hash/hash_xxhash.c -o ext/hash/hash_xxhash.lo -MMD -MF ext/hash/hash_xxhash.dep -MT ext/hash/hash_xxhash.lo/tmp/php-8.4.8/ext/hash/hash_xxhash.c: In function ‘PHP_XXH3_128_Copy’:
/tmp/php-8.4.8/ext/hash/hash_xxhash.c:282:1: warning: ‘/tmp/php-8.4.8/ext/hash/.libs/hash_xxhash.gcda’ profile count data file not found [-Wmissing-profile]
282 | }
| ^
make[1]: *** [Makefile:1927: ext/hash/hash_xxhash.lo] Error 1
make[1]: Leaving directory '/tmp/php-8.4.8'
make: *** [Makefile:267: prof-use] Error 2
Note that the ‘profile count data file not found’ part is a mere warning, not error. It results from c4a9d1e.
/bin/sh /tmp/php-8.4.8/libtool --silent --preserve-dup-deps --tag=CC --mode=compile cc -Iext/session/ -I/tmp/php-8.4.8/ext/session/ -I/tmp/php-8.4.8/main -I/tmp/php-8.4.8 -I/tmp/php-8.4.8/ext/date/lib -I/usr/include/libxml2 -I/usr/include/libpng16 -I/tmp/php-8.4.8/ext/mbstring/libmbfl -I/tmp/php-8.4.8/ext/mbstring/libmbfl/mbfl -I/tmp/php-8.4.8/TSRM -I/tmp/php-8.4.8/Zend -D_GNU_SOURCE -fno-common -Wstrict-prototypes -Wformat-truncation -Wlogical-op -Wduplicated-cond -Wno-clobbered -Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -O2 -march=native -ffp-contract=off -fvisibility=hidden -Wimplicit-fallthrough=1 -DZEND_SIGNALS -fprofile-use -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -c /tmp/php-8.4.8/ext/session/session.c -o ext/session/session.lo -MMD -MF ext/session/session.dep -MT ext/session/session.lo
/tmp/php-8.4.8/ext/session/session.c: In function ‘php_session_rfc1867_callback’:
/tmp/php-8.4.8/ext/session/session.c:3407:1: warning: ‘/tmp/php-8.4.8/ext/session/.libs/session.gcda’ profile count data file not found [-Wmissing-profile]
3407 | };
| ^
Unable to coalesce ssa_names 3 and 4 which are marked as MUST COALESCE.
__orig_bailout_3(ab) and __orig_bailout_4(ab)
during RTL pass: expand
In file included from /tmp/php-8.4.8/main/php.h:35,
from /tmp/php-8.4.8/ext/session/session.c:22:
/tmp/php-8.4.8/ext/session/session.c: In function ‘zm_deactivate_session’:
/tmp/php-8.4.8/Zend/zend_API.h:225:49: internal compiler error: SSA corruption
225 | #define ZEND_MODULE_DEACTIVATE_N(module) zm_deactivate_##module
| ^~~~~~~~~~~~~~
/tmp/php-8.4.8/Zend/zend_API.h:235:61: note: in expansion of macro ‘ZEND_MODULE_DEACTIVATE_N’
235 | #define ZEND_MODULE_DEACTIVATE_D(module) zend_result ZEND_MODULE_DEACTIVATE_N(module)(SHUTDOWN_FUNC_ARGS)
| ^~~~~~~~~~~~~~~~~~~~~~~~
/tmp/php-8.4.8/main/php.h:403:33: note: in expansion of macro ‘ZEND_MODULE_DEACTIVATE_D’
403 | #define PHP_RSHUTDOWN_FUNCTION ZEND_MODULE_DEACTIVATE_D
| ^~~~~~~~~~~~~~~~~~~~~~~~
/tmp/php-8.4.8/ext/session/session.c:2925:8: note: in expansion of macro ‘PHP_RSHUTDOWN_FUNCTION’
2925 | static PHP_RSHUTDOWN_FUNCTION(session) /* {{{ */
| ^~~~~~~~~~~~~~~~~~~~~~
Please submit a full bug report, with preprocessed source.
See <http://bugs.almalinux.org/> for instructions.
Preprocessed source stored into /tmp/ccJtjIIy.out file, please attach this to your bugreport.
make[1]: *** [Makefile:2500: ext/session/session.lo] Error 1
make[1]: Leaving directory '/tmp/php-8.4.8'
make: *** [Makefile:267: prof-use] Error 2
The same build succeeds with bare make
or -fprofile-exclude-files=ext/hash/hash_xxhash.c -fprofile-exclude-files=ext/session/session.c
. I can attach /tmp/ccJtjIIy.out
if that’s helpful.
PHP Version
PHP 8.4.8 (cli) (built: Jun 9 2025 XX:XX:XX) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.8, Copyright (c) Zend Technologies
Operating System
Almalinux 10