summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2018-12-02 12:50:43 -0500
committermidipix <writeonce@midipix.org>2018-12-02 19:49:00 -0500
commit3300f9c246fa627a62c7d6eecaaadc8f805c74ee (patch)
tree31f9c0335b015359904a875c1258d9b4a1a3c133
parent3d0b33e464a87705d880a55991f4562a0a16eef9 (diff)
downloadsbpython2-3300f9c246fa627a62c7d6eecaaadc8f805c74ee.tar.bz2
sbpython2-3300f9c246fa627a62c7d6eecaaadc8f805c74ee.tar.xz
config: x86_64-linux-musl: properly support an all-static python executable.
-rw-r--r--config/x86_64-linux-musl/config.c76
-rw-r--r--config/x86_64-linux-musl/config.mk70
-rw-r--r--config/x86_64-linux-musl/pyconfig.h3
3 files changed, 148 insertions, 1 deletions
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