From: Xiang Zhang Date: Wed, 20 Jun 2018 13:23:30 +0000 (+0800) Subject: Fix compiling error when missing gdbm version macros (GH-7823) X-Git-Tag: v3.8.0a1~1520 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b248e957a818e268cfb221f3b94b37bc5672456a;p=python Fix compiling error when missing gdbm version macros (GH-7823) --- diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py index 3958764a6a..f058185c2f 100644 --- a/Lib/test/pythoninfo.py +++ b/Lib/test/pythoninfo.py @@ -527,11 +527,11 @@ def collect_cc(info_add): def collect_gdbm(info_add): try: - import _gdbm + from _gdbm import _GDBM_VERSION except ImportError: return - info_add('gdbm.GDBM_VERSION', '.'.join(map(str, _gdbm._GDBM_VERSION))) + info_add('gdbm.GDBM_VERSION', '.'.join(map(str, _GDBM_VERSION))) def collect_info(info): diff --git a/Lib/test/test_dbm_gnu.py b/Lib/test/test_dbm_gnu.py index 49f91705b5..c96eff5a31 100644 --- a/Lib/test/test_dbm_gnu.py +++ b/Lib/test/test_dbm_gnu.py @@ -12,9 +12,8 @@ class TestGdbm(unittest.TestCase): def setUpClass(): if support.verbose: try: - import _gdbm - version = _gdbm._GDBM_VERSION - except (ImportError, AttributeError): + from _gdbm import _GDBM_VERSION as version + except ImportError: pass else: print(f"gdbm version: {version}") diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c index a68cf02942..10560040e4 100644 --- a/Modules/_gdbmmodule.c +++ b/Modules/_gdbmmodule.c @@ -678,6 +678,8 @@ PyInit__gdbm(void) { goto error; } +#if defined(GDBM_VERSION_MAJOR) && defined(GDBM_VERSION_MINOR) && \ + defined(GDBM_VERSION_PATCH) PyObject *obj = Py_BuildValue("iii", GDBM_VERSION_MAJOR, GDBM_VERSION_MINOR, GDBM_VERSION_PATCH); if (obj == NULL) { @@ -687,6 +689,7 @@ PyInit__gdbm(void) { Py_DECREF(obj); goto error; } +#endif return m;