diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2020-10-04 12:50:58 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2020-11-18 12:50:26 +0100 |
commit | 9b5f96e465bc77baf36ab3deaf4a1f2e65884fed (patch) | |
tree | 2a7077a9e4a6882a4fd1e11e28f24fe5cac9c32a /win32 | |
parent | a6bcad4a9e397fbddbfb00637b757c3ed2b250ce (diff) | |
download | php-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.js | 9 |
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(); } |