You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Cannot build CPython3.6 with module “testcapimodule” statically #74552
Is this issue only in Python 3.6? I believe Python 3.6 is only receiving security fixes at the moment, so this could only be fixed in 3.7, 3.8 and 3.9.
It seems like this issue has been fixed in 3.8 and master branches (I didn't test Python 3.7): see below.
I close the issue. Reopen/comment the issue if you consider that Python 3.7 should be fixed as well.
I made this change:
$ git diff
diff --git a/Modules/Setup b/Modules/Setup
index 983fa014ec..ff2fd14857 100644
--- a/Modules/Setup+++ b/Modules/Setup@@ -151,6 +151,10 @@ _symtable symtablemodule.c
# modules are to be built as shared libraries (see above for more
# detail; also note that *static* or *disabled* cancels this effect):
+*static*++_datetime _datetimemodule.c # datetime accelerator+
#*shared*
# GNU readline. Unlike previous Python incarnations, GNU readline is
@@ -177,7 +181,6 @@ _symtable symtablemodule.c
#_random _randommodule.c # Random number generator
#_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
#_pickle _pickle.c # pickle accelerator
-#_datetime _datetimemodule.c # datetime accelerator
#_bisect _bisectmodule.c # Bisection algorithms
#_heapq _heapqmodule.c # Heap queue algorithm
#_asyncio _asynciomodule.c # Fast asyncio Future
I built Python: it works as expected, _datetime is a built-in module:
$ ./python
Python 3.9.0a0 (heads/master-dirty:46b0b81220, Sep 17 2019, 22:42:19)
[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import _datetime
>>> _datetime
<module '_datetime' (built-in)>
Note:
$ make
...
The following modules found by detect_modules() in setup.py, have been
built by the Makefile instead, as configured by the Setup files:
_abc _datetime atexit
pwdtime
...
Activity
Nan-Zhang commentedon May 15, 2017
up vote
0
down vote
favorite
I am trying to build CPython3.6 from GitHub statically with the Documentation below:
https://wiki.python.org/moin/BuildStatically
Changed *shared* to *static*
And only uncommented the module "testcapimodule" in Modules/Setup file:
_testcapi _testcapimodule.c # Python C API test module
And ran with 'make LINKFORSHARED=" "'
However I got errors that:
But when I build Cpython3.6 with *shared*, it can succeed.
pganssle commentedon Sep 17, 2019
Is this issue only in Python 3.6? I believe Python 3.6 is only receiving security fixes at the moment, so this could only be fixed in 3.7, 3.8 and 3.9.
vstinner commentedon Sep 17, 2019
It seems like this issue has been fixed in 3.8 and master branches (I didn't test Python 3.7): see below.
I close the issue. Reopen/comment the issue if you consider that Python 3.7 should be fixed as well.
I made this change:
I built Python: it works as expected, _datetime is a built-in module:
$ ./python Python 3.9.0a0 (heads/master-dirty:46b0b81220, Sep 17 2019, 22:42:19) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import _datetime >>> _datetime <module '_datetime' (built-in)>Note: