From 3300f9c246fa627a62c7d6eecaaadc8f805c74ee Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 2 Dec 2018 12:50:43 -0500 Subject: config: x86_64-linux-musl: properly support an all-static python executable. --- config/x86_64-linux-musl/config.c | 76 +++++++++++++++++++++++++++++++++++++ config/x86_64-linux-musl/config.mk | 70 ++++++++++++++++++++++++++++++++++ config/x86_64-linux-musl/pyconfig.h | 3 +- 3 files changed, 148 insertions(+), 1 deletion(-) (limited to 'config') diff --git a/config/x86_64-linux-musl/config.c b/config/x86_64-linux-musl/config.c index baad021..25bbc11 100644 --- a/config/x86_64-linux-musl/config.c +++ b/config/x86_64-linux-musl/config.c @@ -19,6 +19,80 @@ PY_INIT_FUNC(initgc); PY_INIT_FUNC(init_ast); PY_INIT_FUNC(_PyWarnings_Init); +#ifdef PY_ALL_STATIC + +#include "static.h" + +#define PY_IMPORT_INITTAB_STATIC \ + {"_bisect", init_bisect}, \ + {"_codecs_cn", init_codecs_cn}, \ + {"_codecs_hk", init_codecs_hk}, \ + {"_codecs_iso2022", init_codecs_iso2022}, \ + {"_codecs_jp", init_codecs_jp}, \ + {"_codecs_kr", init_codecs_kr}, \ + {"_codecs_tw", init_codecs_tw}, \ + {"_collections", init_collections}, \ + {"_csv", init_csv}, \ + {"_ctypes", init_ctypes}, \ + {"_ctypes_test", init_ctypes_test}, \ + {"_curses", init_curses}, \ + {"_curses_panel", init_curses_panel}, \ + {"_elementtree", init_elementtree}, \ + {"_functools", init_functools}, \ + {"_hashlib", init_hashlib}, \ + {"_heapq", init_heapq}, \ + {"_hotshot", init_hotshot}, \ + {"_io", init_io}, \ + {"_json", init_json}, \ + {"_locale", init_locale}, \ + {"_lsprof", init_lsprof}, \ + {"_multibytecodec", init_multibytecodec}, \ + {"_multiprocessing", init_multiprocessing}, \ + {"_random", init_random}, \ + {"_socket", init_socket}, \ + {"_sqlite3", init_sqlite3}, \ + {"_ssl", init_ssl}, \ + {"_struct", init_struct}, \ + {"_testcapi", init_testcapi}, \ + {"array", initarray}, \ + {"audioop", initaudioop}, \ + {"binascii", initbinascii}, \ + {"bz2", initbz2}, \ + {"cPickle", initcPickle}, \ + {"cStringIO", initcStringIO}, \ + {"cmath", initcmath}, \ + {"crypt", initcrypt}, \ + {"datetime", initdatetime}, \ + {"dbm", initdbm}, \ + {"fcntl", initfcntl}, \ + {"future_builtins", initfuture_builtins}, \ + {"gdbm", initgdbm}, \ + {"grp", initgrp}, \ + {"itertools", inititertools}, \ + {"linuxaudiodev", initlinuxaudiodev}, \ + {"math", initmath}, \ + {"mmap", initmmap}, \ + {"operator", initoperator}, \ + {"ossaudiodev", initossaudiodev}, \ + {"parser", initparser}, \ + {"pyexpat", initpyexpat}, \ + {"readline", initreadline}, \ + {"resource", initresource}, \ + {"select", initselect}, \ + {"spwd", initspwd}, \ + {"strop", initstrop}, \ + {"syslog", initsyslog}, \ + {"termios", inittermios}, \ + {"time", inittime}, \ + {"unicodedata", initunicodedata}, \ + {"zlib", initzlib}, \ + +#else + +#define PY_IMPORT_INITTAB_STATIC + +#endif + struct _inittab { char * name; PY_INIT_PTR(initfunc); @@ -37,6 +111,8 @@ struct _inittab _PyImport_Inittab[] = { {"_symtable", init_symtable}, {"xxsubtype", initxxsubtype}, + PY_IMPORT_INITTAB_STATIC + {"marshal", PyMarshal_Init}, {"imp", initimp}, {"_ast", init_ast}, diff --git a/config/x86_64-linux-musl/config.mk b/config/x86_64-linux-musl/config.mk index 35e6785..1008d8b 100644 --- a/config/x86_64-linux-musl/config.mk +++ b/config/x86_64-linux-musl/config.mk @@ -15,6 +15,12 @@ LDFLAGS_EXPAT = -lexpat CFLAGS_DBM = -DHAVE_NDBM_H LDFLAGS_DBM = -lgdbm_compat +LDFLAGS_PYEXT_STATIC = -lssl -lcrypto -lreadline -lbz2 -lgdbm -lffi -lintl -lz +LDFLAGS_NCURSES_STATIC = $(LDFLAGS_NCURSES) +LDFLAGS_SQLITE_STATIC = $(LDFLAGS_SQLITE) +LDFLAGS_EXPAT_STATIC = $(LDFLAGS_EXPAT) +LDFLAGS_DBM_STATIC = $(LDFLAGS_DBM) + DYNLOAD_SRCS = \ Python/dynload_shlib.c \ @@ -96,3 +102,67 @@ PYEXT_SUBSET_SHARED = \ $(PYEXT_TIME_SHARED) \ $(PYEXT_UNICODEDATA_SHARED) \ $(PYEXT_ZLIB_SHARED) \ + +PYEXT_SUBSET_STATIC = \ + $(PYEXT_ARRAY_STATIC) \ + $(PYEXT_AUDIOOP_STATIC) \ + $(PYEXT_BINASCII_STATIC) \ + $(PYEXT_BISECT_STATIC) \ + $(PYEXT_BZ2_STATIC) \ + $(PYEXT_CMATH_STATIC) \ + $(PYEXT_CODECS_CN_STATIC) \ + $(PYEXT_CODECS_HK_STATIC) \ + $(PYEXT_CODECS_ISO2022_STATIC) \ + $(PYEXT_CODECS_JP_STATIC) \ + $(PYEXT_CODECS_KR_STATIC) \ + $(PYEXT_CODECS_TW_STATIC) \ + $(PYEXT_COLLECTIONS_STATIC) \ + $(PYEXT_CPICKLE_STATIC) \ + $(PYEXT_CRYPT_STATIC) \ + $(PYEXT_CSTRINGIO_STATIC) \ + $(PYEXT_CSV_STATIC) \ + $(PYEXT_CTYPES_STATIC) \ + $(PYEXT_CTYPES_TEST_STATIC) \ + $(PYEXT_CURSES_PANEL_STATIC) \ + $(PYEXT_CURSES_STATIC) \ + $(PYEXT_DATETIME_STATIC) \ + $(PYEXT_DBM_STATIC) \ + $(PYEXT_ELEMENTTREE_STATIC) \ + $(PYEXT_FCNTL_STATIC) \ + $(PYEXT_FUNCTOOLS_STATIC) \ + $(PYEXT_FUTURE_BUILTINS_STATIC) \ + $(PYEXT_GDBM_STATIC) \ + $(PYEXT_GRP_STATIC) \ + $(PYEXT_HASHLIB_STATIC) \ + $(PYEXT_HEAPQ_STATIC) \ + $(PYEXT_HOTSHOT_STATIC) \ + $(PYEXT_IO_STATIC) \ + $(PYEXT_ITERTOOLS_STATIC) \ + $(PYEXT_JSON_STATIC) \ + $(PYEXT_LINUXAUDIODEV_STATIC) \ + $(PYEXT_LOCALE_STATIC) \ + $(PYEXT_LSPROF_STATIC) \ + $(PYEXT_MATH_STATIC) \ + $(PYEXT_MMAP_STATIC) \ + $(PYEXT_MULTIBYTECODEC_STATIC) \ + $(PYEXT_MULTIPROCESSING_STATIC) \ + $(PYEXT_OPERATOR_STATIC) \ + $(PYEXT_OSSAUDIODEV_STATIC) \ + $(PYEXT_PARSER_STATIC) \ + $(PYEXT_PYEXPAT_STATIC) \ + $(PYEXT_RANDOM_STATIC) \ + $(PYEXT_READLINE_STATIC) \ + $(PYEXT_RESOURCE_STATIC) \ + $(PYEXT_SELECT_STATIC) \ + $(PYEXT_SOCKET_STATIC) \ + $(PYEXT_SPWD_STATIC) \ + $(PYEXT_SQLITE3_STATIC) \ + $(PYEXT_SSL_STATIC) \ + $(PYEXT_STROP_STATIC) \ + $(PYEXT_STRUCT_STATIC) \ + $(PYEXT_SYSLOG_STATIC) \ + $(PYEXT_TERMIOS_STATIC) \ + $(PYEXT_TESTCAPI_STATIC) \ + $(PYEXT_TIME_STATIC) \ + $(PYEXT_UNICODEDATA_STATIC) \ + $(PYEXT_ZLIB_STATIC) \ diff --git a/config/x86_64-linux-musl/pyconfig.h b/config/x86_64-linux-musl/pyconfig.h index 92e7112..964af71 100644 --- a/config/x86_64-linux-musl/pyconfig.h +++ b/config/x86_64-linux-musl/pyconfig.h @@ -1,6 +1,8 @@ #ifndef Py_PYCONFIG_H #define Py_PYCONFIG_H +#define HAVE_LIBINTL_H 1 + #define ENABLE_IPV6 1 #define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1 @@ -37,7 +39,6 @@ #define HAVE_DLFCN_H 1 #define HAVE_DLOPEN 1 #define HAVE_DUP2 1 -#define HAVE_DYNAMIC_LOADING 1 #define HAVE_EPOLL 1 #define HAVE_ERF 1 #define HAVE_ERFC 1 -- cgit v1.2.3