summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2020-10-04 12:50:58 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2020-11-18 12:50:26 +0100
commit9b5f96e465bc77baf36ab3deaf4a1f2e65884fed (patch)
tree2a7077a9e4a6882a4fd1e11e28f24fe5cac9c32a /win32
parenta6bcad4a9e397fbddbfb00637b757c3ed2b250ce (diff)
downloadphp-git-9b5f96e465bc77baf36ab3deaf4a1f2e65884fed.tar.gz
Fix inclusion order for phpize builds on Windows
`configure` for `phpize` builds on Windows creates Makefile and config.pickle.h and includes the latter via the command line option `/FI`. That implies that config.pickle.h is always included before config.w32.h, which means that standard definitions always override extension specific definitions, while it should be the other way round. Therefore, we change the inclusion order by including config.pickle.h at the end of config.w32.h if the former is available, and also make sure to avoid any potential C4005 warnings by `#undef`ining the macros before defining them. Closes GH-6269.
Diffstat (limited to 'win32')
-rw-r--r--win32/build/confutils.js9
1 files changed, 7 insertions, 2 deletions
diff --git a/win32/build/confutils.js b/win32/build/confutils.js
index d080140d03..1871e582ab 100644
--- a/win32/build/confutils.js
+++ b/win32/build/confutils.js
@@ -1542,7 +1542,6 @@ function EXTENSION(extname, file_list, shared, cflags, dllname, obj_dir)
var _tmp = FSO.CreateTextFile(PHP_DIR + "/include/main/config.pickle.h", true);
_tmp.Close();
}
- cflags = "/FI main/config.pickle.h " + cflags;
}
ADD_FLAG("CFLAGS_" + EXT, cflags);
@@ -2207,7 +2206,7 @@ function generate_config_pickle_h()
var ln = outfile.ReadLine();
for (var i in keys) {
- var reg = new RegExp("#define[\s ]+" + keys[i] + "[\s ]*.*", "g");
+ var reg = new RegExp("#define[\s ]+" + keys[i] + "[\s ]*.*|#undef[\s ]+" + keys[i], "g");
if (ln.match(reg)) {
found = true;
@@ -2233,6 +2232,7 @@ function generate_config_pickle_h()
continue;
}*/
+ lines.push("#undef " + keys[i]);
lines.push("#define " + keys[i] + " " + item[0]);
}
@@ -2309,6 +2309,11 @@ function generate_config_h()
outfile.WriteLine("#define " + keys[i] + " " + pieces);
}
+ outfile.WriteBlankLines(1);
+ outfile.WriteLine("#if __has_include(\"main/config.pickle.h\")");
+ outfile.WriteLine("#include \"main/config.pickle.h\"");
+ outfile.WriteLine("#endif");
+
outfile.Close();
}