Skip to content

Commit 8b2fcab

Browse files
committed
Fix pyconf_check_member() to match Python version.
The AWK version of the pyconf_check_member() function was including headers differently than the Python version.
1 parent cb7bf18 commit 8b2fcab

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

Tools/configure/transpiler/pyconf.awk

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -902,12 +902,15 @@ function pyconf_check_member(member, headers, define, struct_name, field, source
902902
return (CACHE[cv] == "yes")
903903

904904
pyconf_checking("for " member)
905-
inc = _pyconf_ac_includes_default()
905+
# Match Python version: use custom headers if provided, else use default headers
906906
if (headers != "") {
907907
n = split(headers, arr, " ")
908+
inc = ""
908909
for (i = 1; i <= n; i++)
909910
if (arr[i] != "")
910911
inc = inc "#include <" arr[i] ">\n"
912+
} else {
913+
inc = _pyconf_ac_includes_default()
911914
}
912915

913916
source = inc "\nint main(void) { " struct_name " s; (void)s." field "; return 0; }"

configure-new

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -937,12 +937,15 @@ function pyconf_check_member(member, headers, define, struct_name, field, source
937937
return (CACHE[cv] == "yes")
938938

939939
pyconf_checking("for " member)
940-
inc = _pyconf_ac_includes_default()
940+
# Match Python version: use custom headers if provided, else use default headers
941941
if (headers != "") {
942942
n = split(headers, arr, " ")
943+
inc = ""
943944
for (i = 1; i <= n; i++)
944945
if (arr[i] != "")
945946
inc = inc "#include <" arr[i] ">\n"
947+
} else {
948+
inc = _pyconf_ac_includes_default()
946949
}
947950

948951
source = inc "\nint main(void) { " struct_name " s; (void)s." field "; return 0; }"
@@ -6085,7 +6088,7 @@ function u_check_misc_runtime( ac_cv_broken_nice, ac_cv_broken_poll, ac_cv_wo
60856088
pyconf_define("HAVE_BROKEN_POLL", 1, 0, "Define if poll() sets errno on invalid file descriptors.")
60866089
}
60876090
pyconf_checking("for working tzset()")
6088-
ac_cv_working_tzset = (pyconf_run_check("", "\n #include <stdlib.h>\n #include <time.h>\n #include <string.h>\n\n #if HAVE_TZNAME\n extern char *tzname[];\n #endif\n\n int main(void)\n {\n time_t groundhogday = 1044144000; /* GMT-based */\n time_t midyear = groundhogday + (365 * 24 * 3600 / 2);\n\n putenv(\"TZ=UTC+0\");\n tzset();\n if (localtime(&groundhogday)->tm_hour != 0)\n exit(1);\n #if HAVE_TZNAME\n if (strcmp(tzname[0], \"UTC\") ||\n (tzname[1][0] != 0 && tzname[1][0] != ' '))\n exit(1);\n #endif\n\n putenv(\"TZ=EST+5EDT,M4.1.0,M10.5.0\");\n tzset();\n if (localtime(&groundhogday)->tm_hour != 19)\n exit(1);\n #if HAVE_TZNAME\n if (strcmp(tzname[0], \"EST\") || strcmp(tzname[1], \"EDT\"))\n exit(1);\n #endif\n\n putenv(\"TZ=AEST-10AEDT-11,M10.5.0,M3.5.0\");\n tzset();\n if (localtime(&groundhogday)->tm_hour != 11)\n exit(1);\n #if HAVE_TZNAME\n if (strcmp(tzname[0], \"AEST\") || strcmp(tzname[1], \"AEDT\"))\n exit(1);\n #endif\n\n #if HAVE_STRUCT_TM_TM_ZONE\n if (strcmp(localtime(&groundhogday)->tm_zone, \"AEDT\"))\n exit(1);\n if (strcmp(localtime(&midyear)->tm_zone, \"AEST\"))\n exit(1);\n #endif\n\n exit(0);\n }\n ") ? "yes" : "no")
6091+
ac_cv_working_tzset = (pyconf_run_check("", "\n #include <stdlib.h>\n #include <time.h>\n #include <string.h>\n\n #if HAVE_TZNAME\n extern char *tzname[];\n #endif\n\n int main(void)\n {\n time_t groundhogday = 1044144000; /* GMT-based */\n time_t midyear = groundhogday + (365 * 24 * 3600 / 2);\n\n putenv(\"TZ=UTC+0\");\n tzset();\n if (localtime(&groundhogday)->tm_hour != 0)\n exit(1);\n #if HAVE_TZNAME\n /* For UTC, tzname[1] is sometimes \"\", sometimes \" \" */\n if (strcmp(tzname[0], \"UTC\") ||\n (tzname[1][0] != 0 && tzname[1][0] != ' '))\n exit(1);\n #endif\n\n putenv(\"TZ=EST+5EDT,M4.1.0,M10.5.0\");\n tzset();\n if (localtime(&groundhogday)->tm_hour != 19)\n exit(1);\n #if HAVE_TZNAME\n if (strcmp(tzname[0], \"EST\") || strcmp(tzname[1], \"EDT\"))\n exit(1);\n #endif\n\n putenv(\"TZ=AEST-10AEDT-11,M10.5.0,M3.5.0\");\n tzset();\n if (localtime(&groundhogday)->tm_hour != 11)\n exit(1);\n #if HAVE_TZNAME\n if (strcmp(tzname[0], \"AEST\") || strcmp(tzname[1], \"AEDT\"))\n exit(1);\n #endif\n\n #if HAVE_STRUCT_TM_TM_ZONE\n if (strcmp(localtime(&groundhogday)->tm_zone, \"AEDT\"))\n exit(1);\n if (strcmp(localtime(&midyear)->tm_zone, \"AEST\"))\n exit(1);\n #endif\n\n exit(0);\n }\n ") ? "yes" : "no")
60896092
pyconf_result(ac_cv_working_tzset)
60906093
if (((ac_cv_working_tzset != "") && (ac_cv_working_tzset != "no"))) {
60916094
pyconf_define("HAVE_WORKING_TZSET", 1, 0, "Define if tzset() actually switches the local timezone in a meaningful way.")

0 commit comments

Comments
 (0)