From a69471ff6d53e727974ff07d35ac147b4e870392 Mon Sep 17 00:00:00 2001 From: Vlad Badoiu Date: Sat, 15 Jan 2022 16:45:13 +0200 Subject: [PATCH] python3: Fix sqlite3 module This patch fixes several problems that would cause compilation errors when the sqlite3 module is selected. This patch fixes the name of the module to sqlite3 as it defined in the oficial documentation, adds missing export in module_config.c and defines passes two symbols MODULE_NAME and SQLITE_OMIT_LOAD_EXTENSION. Signed-off-by: Vlad Badoiu Reviewed-by: Cezar Craciunoiu Approved-by: Razvan Deaconescu Tested-by: Unikraft CI GitHub-Pull-Request: #4 --- Makefile.uk | 11 +++++++++-- modules_config.c | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile.uk b/Makefile.uk index d0bde0b..3cca776 100644 --- a/Makefile.uk +++ b/Makefile.uk @@ -417,15 +417,22 @@ LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/sha512module.c LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/socketmodule.c # TODO enable LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/spwdmodule.c ifeq ($(CONFIG_LIBPYTHON3_EXTENSION_SQLITE),y) +LIBPYTHON3_EXTENSIONS_CACHE_FLAGS-$(CONFIG_LIBPYTHON3_EXTENSION_SQLITE) += -DMODULE_NAME='"sqlite3"' -DSQLITE_OMIT_LOAD_EXTENSION LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/cache.c +LIBPYTHON3_EXTENSIONS_CONNECTION_FLAGS-$(CONFIG_LIBPYTHON3_EXTENSION_SQLITE) += -DMODULE_NAME='"sqlite3"' -DSQLITE_OMIT_LOAD_EXTENSION LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/connection.c +LIBPYTHON3_EXTENSIONS_CURSOR_FLAGS-$(CONFIG_LIBPYTHON3_EXTENSION_SQLITE) += -DMODULE_NAME='"sqlite3"' -DSQLITE_OMIT_LOAD_EXTENSION LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/cursor.c LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/microprotocols.c -LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/module.c +LIBPYTHON3_EXTENSIONS_MODULE_SQLITE_FLAGS-$(CONFIG_LIBPYTHON3_EXTENSION_SQLITE) += -DMODULE_NAME='"sqlite3"' -DSQLITE_OMIT_LOAD_EXTENSION +LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/module.c|sqlite +LIBPYTHON3_EXTENSIONS_PREPARE_PROTOCOL_FLAGS-$(CONFIG_LIBPYTHON3_EXTENSION_SQLITE) += -DMODULE_NAME='"sqlite3"' -DSQLITE_OMIT_LOAD_EXTENSION LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/prepare_protocol.c +LIBPYTHON3_EXTENSIONS_ROW_FLAGS-$(CONFIG_LIBPYTHON3_EXTENSION_SQLITE) += -DMODULE_NAME='"sqlite3"' -DSQLITE_OMIT_LOAD_EXTENSION LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/row.c +LIBPYTHON3_EXTENSIONS_STATEMENT_FLAGS-$(CONFIG_LIBPYTHON3_EXTENSION_SQLITE) += -DMODULE_NAME='"sqlite3"' -DSQLITE_OMIT_LOAD_EXTENSION LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/statement.c -LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/util.c +LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_sqlite/util.c|sqlite endif LIBPYTHON3_EXTENSIONS_SRCS-$(CONFIG_LIBPYTHON3_EXTENSION_SSL) += $(LIBPYTHON3_SRC)/Modules/_ssl.c LIBPYTHON3_EXTENSIONS_SRCS-y += $(LIBPYTHON3_SRC)/Modules/_struct.c diff --git a/modules_config.c b/modules_config.c index 7772d00..cfa2b42 100644 --- a/modules_config.c +++ b/modules_config.c @@ -46,6 +46,7 @@ extern PyObject* PyInit_zipimport(void); extern PyObject* PyInit_faulthandler(void); extern PyObject* PyInit__tracemalloc(void); extern PyObject* PyInit__symtable(void); +extern PyObject* PyInit__sqlite3(void); extern PyObject* PyInit_xxsubtype(void); /* Unikraft Marker start */ @@ -290,7 +291,7 @@ struct _inittab _PyImport_Inittab[] = { {"_socket", PyInit__socket}, //TODO enable {"spwd", PyInit_spwd}, #if CONFIG_LIBPYTHON3_EXTENSION_SQLITE - {"sqlite", PyInit__sqlite3}, + {"sqlite3", PyInit__sqlite3}, #endif #if CONFIG_LIBPYTHON3_EXTENSION_SSL {"_ssl", PyInit__ssl}, -- 2.39.5