buildroot/package/python/0013-sqlite3-fix-build-when-threads-are-not-used-availabl.patch
Thomas Petazzoni 6520762932 python: move to Git formatted patches
Now that the cpython project has a nice Github repository, with tags,
it's much nicer to handle the stack of Python patches with Git. The
python3 package patches had already been converted, but not the python
package patches. Therefore, this commit does the move.

There is no functional change, only reformatting of the patches.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-09 22:35:21 +01:00

59 lines
1.6 KiB
Diff

From 0f0be88526ece7d2f6ee21c1f59b1546ec6dc7c0 Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Tue, 7 Mar 2017 22:25:14 +0100
Subject: [PATCH] sqlite3: fix build when threads are not used/available
When threads are not used/available, a function in the sqlite3 extension
ends up with a label at the end:
void _pysqlite_final_callback(sqlite3_context* context)
{
PyObject* function_result;
PyObject** aggregate_instance;
int ok;
#ifdef WITH_THREAD
PyGILState_STATE threadstate;
threadstate = PyGILState_Ensure();
#endif
aggregate_instance = (PyObject**)sqlite3_aggregate_context(context, sizeof(PyObject*));
if (!*aggregate_instance) {
goto error;
}
[......]
error:
#ifdef WITH_THREAD
PyGILState_Release(threadstate);
#endif
}
This is not valid, and gcc complains.
Fix that by adding a dummy statement after the label, so that the label
is never the last statement of the function.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
Modules/_sqlite/connection.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 237d6e4..cdf69ab 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -794,6 +794,7 @@ error:
#ifdef WITH_THREAD
PyGILState_Release(threadstate);
#endif
+ ; /* Make gcc happy: a label can't be at the end of a function */
}
static void _pysqlite_drop_unused_statement_references(pysqlite_Connection* self)
--
2.7.4