forked from Lainports/freebsd-ports
Backport fix [1] for upstream Python Issue #21704 [2]: Fix build error for _multiprocessing when semaphores are not available. The symptom was originally reported by RedPorts 8.4-QAT/i386, ultimately resulting in a packaging error: ... checking for sem_open... yes checking for sem_timedwait... yes checking for sem_getvalue... yes checking for sem_unlink... yes ... checking whether POSIX semaphores are enabled... no checking for broken sem_getvalue... yes ... *** WARNING: renaming "_multiprocessing" since importing it failed: build/lib.freebsd-8.4-RELEASE-i386-3.4/_multiprocessing.so: Undefined symbol "_PyMp_sem_unlink" ... pkg-static: lstat(/work/a/ports/lang/python34/work/stage/usr/local/lib/ python3.4/lib-dynload/_multiprocessing.so): No such file or directory Something is funny for Jail-based systems when it comes to host/jail semaphore detection. A config.log would be handy to help determine why. [1] http://hg.python.org/cpython/rev/f618f6739200 [2] http://bugs.python.org/issue21704
22 lines
820 B
Text
22 lines
820 B
Text
# HG changeset patch
|
|
# User Richard Oudkerk <shibturn@gmail.com>
|
|
# Date 1406584862 -3600
|
|
# Node ID f618f673920043e31d8dee20b35c3e6f3e271178
|
|
# Parent a1e01081e731a1214793cd4b5b4fc89fe6202357
|
|
Issue #21704: Fix build error for _multiprocessing when semaphores
|
|
are not available. Patch by Arfrever Frehtes Taifersar Arahesis.
|
|
|
|
diff --git a/Modules/_multiprocessing/multiprocessing.c b/Modules/_multiprocessing/multiprocessing.c
|
|
--- Modules/_multiprocessing/multiprocessing.c
|
|
+++ Modules/_multiprocessing/multiprocessing.c
|
|
@@ -128,7 +128,9 @@ static PyMethodDef module_methods[] = {
|
|
{"recv", multiprocessing_recv, METH_VARARGS, ""},
|
|
{"send", multiprocessing_send, METH_VARARGS, ""},
|
|
#endif
|
|
+#ifndef POSIX_SEMAPHORES_NOT_ENABLED
|
|
{"sem_unlink", _PyMp_sem_unlink, METH_VARARGS, ""},
|
|
+#endif
|
|
{NULL}
|
|
};
|
|
|
|
|