Skip to content

make prof-use broken for hash_xxhash.c and session.c #18807

Closed as not planned
Closed as not planned
@nisbet-hubbard

Description

@nisbet-hubbard

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions