Commit c5cadc5c8cf for php

commit c5cadc5c8cf084a7aa3dc23230509e45d623466c
Author: Shivam Mathur <shivam_jpr@hotmail.com>
Date:   Tue Sep 29 03:34:36 2026 +0000

    Fix C11 builds for intl (#23977)

diff --git a/ext/intl/config.w32 b/ext/intl/config.w32
index 5f689214c1b..7369619404b 100644
--- a/ext/intl/config.w32
+++ b/ext/intl/config.w32
@@ -9,7 +9,7 @@ if (PHP_INTL != "no") {
 					CHECK_HEADER("unicode/utf.h", "CFLAGS_INTL")) {
 		// always build as shared - zend_strtod.c/ICU type conflict
 		EXTENSION("intl", "php_intl.c intl_convert.c intl_icu_compat.c intl_convertcpp.cpp intl_error.c ", true,
-								"/I \"" + configure_module_dirname + "\" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1", null, undefined, true);
+								"/I \"" + configure_module_dirname + "\" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
 		ADD_EXTENSION_DEP('intl', 'date');
 		ADD_SOURCES(configure_module_dirname + "/collator", "\
 				collator_attr.cpp \
@@ -125,7 +125,8 @@ if (PHP_INTL != "no") {
 		/* Compat for ICU before 58.1.*/
 		CHECK_LIB("icule.lib", "intl", PHP_INTL);
 		CHECK_LIB("iculx.lib", "intl", PHP_INTL);
-		ADD_FLAG("CFLAGS_INTL", "/std:c++17 /EHsc /DUNISTR_FROM_CHAR_EXPLICIT=explicit /DUNISTR_FROM_STRING_EXPLICIT=explicit /DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 /DU_HIDE_OBSOLETE_UTF_OLD_H=1");
+		ADD_FLAG("CXXFLAGS_INTL", "/std:c++17");
+		ADD_FLAG("CFLAGS_INTL", "/EHsc /DUNISTR_FROM_CHAR_EXPLICIT=explicit /DUNISTR_FROM_STRING_EXPLICIT=explicit /DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 /DU_HIDE_OBSOLETE_UTF_OLD_H=1");
 	} else {
 		WARNING("intl not enabled; libraries and/or headers not found");
 	}
diff --git a/win32/build/confutils.js b/win32/build/confutils.js
index c5128f70498..6b6fbe96b52 100644
--- a/win32/build/confutils.js
+++ b/win32/build/confutils.js
@@ -1625,6 +1625,8 @@ function ADD_SOURCES(dir, file_list, target, obj_dir, duplicate_sources)

 	sym = target.toUpperCase() + "_GLOBAL_OBJS";
 	flags = "CFLAGS_" + target.toUpperCase() + '_OBJ';
+	var c_flags = VS_TOOLSET ? " /std:c11" : "";
+	var cxx_flags = " $(CXXFLAGS_" + target.toUpperCase() + ")";

 	var bd = get_define('BUILD_DIR');
 	var respd = bd + '\\resp';
@@ -1790,7 +1792,7 @@ function ADD_SOURCES(dir, file_list, target, obj_dir, duplicate_sources)
 						"--library=win32\\build\\cppcheck.cfg " +
 						"--library=" + cppcheck_lib + " " +
 						/* "--rule-file=win32\build\cppcheck_rules.xml " + */
-						" --std=c89 --std=c++11 " +
+						" --std=c11 --std=c++11 " +
 						"--quiet --inconclusive --template=vs -j 4 " +
 						"--suppress=unmatchedSuppression " +
 						"--suppressions-list=win32\\build\\cppcheck_suppress.txt ";
@@ -1809,16 +1811,17 @@ function ADD_SOURCES(dir, file_list, target, obj_dir, duplicate_sources)
 					var _tmp = src.split("\\");
 					var filename = _tmp.pop();
 					obj = filename.replace(re, ".obj");
-					var c11_flag = VS_TOOLSET && !cxx_mode_targets[target] && /\.c$/i.test(src) ? " /std:c11" : "";
+					var lang_flags = cxx_mode_targets[target] || !/\.c$/i.test(src) ? cxx_flags : c_flags;
+					var analyzer_lang_flags = lang_flags.replace(")", "_ANALYZER)");

-					MFO.WriteLine("\t" + CMD_MOD1 + "$(CC)" + c11_flag + " $(" + flags + ") $(CFLAGS) $(" + bd_flags_name + ") /c " + dir + "\\" + src + " /Fo" + sub_build + d + obj);
+					MFO.WriteLine("\t" + CMD_MOD1 + "$(CC)" + lang_flags + " $(" + flags + ") $(CFLAGS) $(" + bd_flags_name + ") /c " + dir + "\\" + src + " /Fo" + sub_build + d + obj);

 					if ("clang" == PHP_ANALYZER) {
-						MFO.WriteLine("\t" + CMD_MOD1 + "\"$(CLANG_CL)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + dir + "\\" + src);
+						MFO.WriteLine("\t" + CMD_MOD1 + "\"$(CLANG_CL)\"" + analyzer_lang_flags + " " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + dir + "\\" + src);
 					} else if ("cppcheck" == PHP_ANALYZER) {
 						MFO.WriteLine("\t\"" + CMD_MOD1 + "$(CPPCHECK)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + analyzer_base_flags + " " + dir + "\\" + src);
 					}else if (PHP_ANALYZER == "pvs") {
-						MFO.WriteLine("\t" + CMD_MOD1 + "\"$(PVS_STUDIO)\" --cl-params $(" + flags + ") $(CFLAGS) $(" + bd_flags_name + ") /c " + dir + "\\" + src + " --source-file "  + dir + "\\" + src
+						MFO.WriteLine("\t" + CMD_MOD1 + "\"$(PVS_STUDIO)\" --cl-params" + lang_flags + " $(" + flags + ") $(CFLAGS) $(" + bd_flags_name + ") /c " + dir + "\\" + src + " --source-file "  + dir + "\\" + src
 							+ " --cfg PVS-Studio.conf --errors-off \"V122 V117 V111\" ");
 					}
 				}
@@ -1830,19 +1833,21 @@ function ADD_SOURCES(dir, file_list, target, obj_dir, duplicate_sources)
 					var source = file_list[srcs_by_dir[k][j]];
 					var source_path = dir + "\\" + source + " ";
 					src_line += source_path;
-					src_lines[VS_TOOLSET && /\.c$/i.test(source) ? 0 : 1] += source_path;
+					src_lines[!cxx_mode_targets[target] && /\.c$/i.test(source) ? 0 : 1] += source_path;
 				}

 				for (var language = 0; language < src_lines.length; language++) {
 					if (src_lines[language]) {
-						var c11_flag = language == 0 && !cxx_mode_targets[target] ? " /std:c11" : "";
-						MFO.WriteLine("\t" + CMD_MOD1 + "$(CC)" + c11_flag + " $(" + flags + ") $(CFLAGS) /Fo" + sub_build + d + " $(" + bd_flags_name + ") /c " + src_lines[language]);
+						var lang_flags = language == 0 ? c_flags : cxx_flags;
+						MFO.WriteLine("\t" + CMD_MOD1 + "$(CC)" + lang_flags + " $(" + flags + ") $(CFLAGS) /Fo" + sub_build + d + " $(" + bd_flags_name + ") /c " + src_lines[language]);
+						if ("clang" == PHP_ANALYZER) {
+							var analyzer_lang_flags = lang_flags.replace(")", "_ANALYZER)");
+							MFO.WriteLine("\t\"$(CLANG_CL)\"" + analyzer_lang_flags + " " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER) $(" + bd_flags_name + "_ANALYZER) " + src_lines[language]);
+						}
 					}
 				}

-				if ("clang" == PHP_ANALYZER) {
-					MFO.WriteLine("\t\"$(CLANG_CL)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER)  $(" + bd_flags_name + "_ANALYZER) " + src_line);
-				} else if ("cppcheck" == PHP_ANALYZER) {
+				if ("cppcheck" == PHP_ANALYZER) {
 					MFO.WriteLine("\t\"$(CPPCHECK)\" " + analyzer_base_args + " $(" + flags + "_ANALYZER) $(CFLAGS_ANALYZER)  $(" + bd_flags_name + "_ANALYZER) " + analyzer_base_flags + " " + src_line);
 				}
 			}
@@ -2539,7 +2544,7 @@ function handle_analyzer_makefile_flags(fd, key, val)
 		return;
 	}

-	if (key.match("CFLAGS")) {
+	if (key.match(/C(?:XX)?FLAGS/)) {
 		var new_val = val;
 		var reg = /\$\(([^\)]+)\)/g;
 		var r;