Skip to content

configure: --with-dbmliborder=gdbm no longer satisfies _dbm #98636

Description

@mgorny

Bug report

It seems that the configure script is no longer able to build _dbm module from gdbm_compat.

Excerpts from configure log (full log: configure.txt):

$ ./configure -C --with-dbmliborder=gdbm
[...]
checking gdbm.h usability... yes
checking gdbm.h presence... yes
checking for gdbm.h... yes
checking for gdbm_open in -lgdbm... yes
checking ndbm.h usability... no
checking ndbm.h presence... no
checking for ndbm.h... no
checking for ndbm presence and linker args... ()
checking gdbm/ndbm.h usability... yes
checking gdbm/ndbm.h presence... yes
checking for gdbm/ndbm.h... yes
checking gdbm-ndbm.h usability... no
checking gdbm-ndbm.h presence... no
checking for gdbm-ndbm.h... no
checking for library containing dbm_open... -lgdbm_compat
checking db.h usability... no
checking db.h presence... no
checking for db.h... no
checking for --with-dbmliborder... gdbm
checking for _dbm module CFLAGS and LIBS... [...]
checking for stdlib extension module _dbm... missing
checking for stdlib extension module _gdbm... yes
[...]

It seems that the problem is in the following snippet:

fordbin$with_dbmliborder;docase"$db"in
ndbm)
iftest"$have_ndbm" = yes;then
DBM_CFLAGS="-DUSE_NDBM"
DBM_LIBS="$dbm_ndbm"
have_dbm=yes
breakfi
;;
gdbm)
iftest"$have_gdbm_compat" = yes;then
DBM_CFLAGS="-DUSE_GDBM_COMPAT"
DBM_LIBS="-lgdbm_compat"
have_dbm=yes
breakfi
;;

However, have_gdbm_compat is not declared anymore, probably because of:

AC_MSG_CHECKING([for ndbm presence and linker args])
AS_CASE([$ac_cv_search_dbm_open],
[*ndbm*|*gdbm_compat*], [
dbm_ndbm="$ac_cv_search_dbm_open"
have_ndbm=yes
],

declaring have_ndbm=yes in this case.

Seems to have been introduced in ec5e253 by @tiran.

Your environment

  • CPython versions tested on: 3.12.0a1
  • Operating system and architecture: Gentoo/amd64

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or error

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions