[PHP-CVS] [php-src] master: sapi/fuzzer: depend on PHP_BINARY_OBJS instead of PHP_SAPI_OBJS (#23394)

[email protected] (Mrmaxmeier via Weilin Du)
Newsgroups php.cvs
Message-ID <[email protected]>
Author: Mrmaxmeier (Mrmaxmeier)
Committer: Weilin Du (LamentXU123)
Date: 2026-08-23T04:50:06+08:00

Commit: https://github.com/php/php-src/commit/5284278d97913e8c521043e8b34367131b49dd49
Raw diff: https://github.com/php/php-src/commit/5284278d97913e8c521043e8b34367131b49dd49.diff

sapi/fuzzer: depend on PHP_BINARY_OBJS instead of PHP_SAPI_OBJS (#23394)

FUZZER_BUILD links $(PHP_BINARY_OBJS), including
main/internal_functions_cli.lo, but the php-fuzz-* rules list
$(PHP_SAPI_OBJS), including main/internal_functions.lo, as prerequisites.
Building a fuzzer target in isolation from a clean tree therefore fails
because internal_functions_cli.lo has not been built.

Use $(PHP_BINARY_OBJS) for these prerequisites to match the objects linked by
FUZZER_BUILD. This aligns the fuzzer build rules with the CLI, CGI, phpdbg,
and litespeed fragments.

Assisted-By: Claude Opus 5

Closes #23394

Changed paths:
  M  NEWS
  M  sapi/fuzzer/Makefile.frag


Diff:

diff --git a/NEWS b/NEWS
index 86b6bd3e2e0c..d25d441ca8b5 100644
--- a/NEWS
+++ b/NEWS
@@ -47,6 +47,7 @@ PHP                                                                        NEWS
     on corrupted entries. (David Carlier)
 
 - SAPI:
+  . Fixed fuzzer targets failing to build in isolation. (Mrmaxmeier)
   . Fixed returns uninitialized value on LiteSpeed lsapi SAPI (Go Kudo)
 
 27 Aug 2026, PHP 8.4.25
diff --git a/sapi/fuzzer/Makefile.frag b/sapi/fuzzer/Makefile.frag
index 9608e29d4891..c1fa75896912 100644
--- a/sapi/fuzzer/Makefile.frag
+++ b/sapi/fuzzer/Makefile.frag
@@ -2,32 +2,32 @@ fuzzer: $(PHP_FUZZER_BINARIES)
 
 FUZZER_BUILD = $(LIBTOOL) --tag=CC --mode=link $(FUZZING_CC) -export-dynamic $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS_PROGRAM) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) $(FUZZING_LIB)
 
-$(SAPI_FUZZER_PATH)/php-fuzz-parser: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_PARSER_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-parser: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_PARSER_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_PARSER_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-execute: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_EXECUTE_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-execute: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_EXECUTE_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_EXECUTE_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-function-jit: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_FUNCTION_JIT_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-function-jit: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_FUNCTION_JIT_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_FUNCTION_JIT_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-tracing-jit: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_TRACING_JIT_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-tracing-jit: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_TRACING_JIT_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_TRACING_JIT_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-unserialize: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_UNSERIALIZE_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-unserialize: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_UNSERIALIZE_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_UNSERIALIZE_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-unserializehash: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_UNSERIALIZEHASH_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-unserializehash: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_UNSERIALIZEHASH_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_UNSERIALIZEHASH_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-json: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_JSON_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-json: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_JSON_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_JSON_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-exif: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_EXIF_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-exif: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_EXIF_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_EXIF_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-mbstring: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_MBSTRING_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-mbstring: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_MBSTRING_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_MBSTRING_OBJS) -o $@
 
-$(SAPI_FUZZER_PATH)/php-fuzz-mbregex: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(PHP_FUZZER_MBREGEX_OBJS)
+$(SAPI_FUZZER_PATH)/php-fuzz-mbregex: $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_FUZZER_MBREGEX_OBJS)
 	$(FUZZER_BUILD) $(PHP_FUZZER_MBREGEX_OBJS) -o $@
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.