-
-
Notifications
You must be signed in to change notification settings - Fork 30.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Detect dbm and gdbm dependencies in configure.ac #89910
Comments
setup.py jumps through hoops to detect gdbm, gdbm_compat, ndbm, and bdb (libdb) build dependencies. I propose to simplify our support matrix and detect all dependencies in configure.ac. gdbmmodule.c uses gdbm_open() API, which is provided by gdbm.h and libgdbm dbmmodule.c uses the dbm_open() API, which can be provided by a combination of headers and shared libraries.
setup.py makes some wrong assumption in regards of libgdbm. The shared library libgdbm does not provide the dbm_open() API on any system I tested. libgdbm_compat is always required. Linking with libgdbm is not needed. libgdbm_compat depends on and wraps libgdbm. setup.py also performs additional steps to locate old versions of libdb-3.x and libdb-4.x. libdb-5.3 has been around for a decade. Even CentOS 7 and Debian oldoldstable ship with libdb version 5.3 and don't offer libdb version 4. I propose to remove support for libdb 4 and libdb 3. |
Pablo's macOS ARM64 buildbot does not find libdb-5.3 although it has db.h: https://buildbot.python.org/all/#/builders/721/builds/97/steps/2/logs/stdio macOS X86-64 buildbot has libdb-5.3: https://buildbot.python.org/all/#/builders/311/builds/332/steps/2/logs/stdio |
dbm_open is in libc on macOS. likely due to being in SUSv2. The implementation in libc appears to be suboptimal (for example: bpo-33074), although I wouldn't teach configure.ac to ignore the system version of the library. |
Thanks Ronald. I was not aware that macOS has dbm_open in libc. AC_CHECK_LIB() always tries to link with an external library. The macro should skip the symbol from libc. Could you please run the PR locally and upload your config.log? |
AC_SEARCH_LIBS() will search libc before checking external libraries, FWIW. |
Contributed ... in bpo-bpo-45847
typo #32299Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: