mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
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.
This commit is contained in:
parent
a6bcad4a9e
commit
9b5f96e465
2 changed files with 10 additions and 2 deletions
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue