Skip to content

Commit

Permalink
pythongh-129388: Don't mangle gdbm header dependency detection output
Browse files Browse the repository at this point in the history
Replace AC_CACHE_VAL/AC_CHECK_HEADER with a cleaner variant using
AC_CACHE_CHECK/AC_PREPROC_IFELSE.

The former would produce garbled output when config.cache was reused. It
also required directly manipulating GNU Autoconf cache variables.
  • Loading branch information
erlend-aasland committed Jan 28, 2025
1 parent 8e57877 commit ca7ef81
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 35 deletions.
41 changes: 22 additions & 19 deletions configure

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 8 additions & 16 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -4429,29 +4429,21 @@ AS_CASE([$ac_cv_search_dbm_open],
AC_MSG_RESULT([$have_ndbm ($dbm_ndbm)])

dnl "gdbm-ndbm.h" and "gdbm/ndbm.h" are both normalized to "gdbm_ndbm_h"
dnl unset ac_cv_header_gdbm_ndbm_h to prevent false positive cache hits.
AS_UNSET([ac_cv_header_gdbm_ndbm_h])
AC_CACHE_VAL([ac_cv_header_gdbm_slash_ndbm_h], [
AC_CHECK_HEADER(
[gdbm/ndbm.h],
[ac_cv_header_gdbm_slash_ndbm_h=yes], [ac_cv_header_gdbm_slash_ndbm_h=no]
)
])
AC_CACHE_CHECK([for gdbm/ndbm.h], [ac_cv_header_gdbm_slash_ndbm_h],
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([@%:@include <gdbm/ndbm.h>])],
[ac_cv_header_gdbm_slash_ndbm_h=yes],
[ac_cv_header_gdbm_slash_ndbm_h=no])])
AS_VAR_IF([ac_cv_header_gdbm_slash_ndbm_h], [yes], [
AC_DEFINE([HAVE_GDBM_NDBM_H], [1], [Define to 1 if you have the <gdbm/ndbm.h> header file.])
])

AS_UNSET([ac_cv_header_gdbm_ndbm_h])
AC_CACHE_VAL([ac_cv_header_gdbm_dash_ndbm_h], [
AC_CHECK_HEADER(
[gdbm-ndbm.h],
[ac_cv_header_gdbm_dash_ndbm_h=yes], [ac_cv_header_gdbm_dash_ndbm_h=no]
)
])
AC_CACHE_CHECK([for gdbm-ndbm.h], [ac_cv_header_gdbm_dash_ndbm_h],
[AC_PREPROC_IFELSE([AC_LANG_SOURCE([@%:@include <gdbm-ndbm.h>])],
[ac_cv_header_gdbm_dash_ndbm_h=yes],
[ac_cv_header_gdbm_dash_ndbm_h=no])])
AS_VAR_IF([ac_cv_header_gdbm_dash_ndbm_h], [yes], [
AC_DEFINE([HAVE_GDBM_DASH_NDBM_H], [1], [Define to 1 if you have the <gdbm-ndbm.h> header file.])
])
AS_UNSET([ac_cv_header_gdbm_ndbm_h])

if test "$ac_cv_header_gdbm_slash_ndbm_h" = yes -o "$ac_cv_header_gdbm_dash_ndbm_h" = yes; then
AS_UNSET([ac_cv_search_dbm_open])
Expand Down

0 comments on commit ca7ef81

Please sign in to comment.