1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-24 09:25:01 +00:00

lang/python34: Fix build when semaphores are not enabled

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
This commit is contained in:
Kubilay Kocak 2014-08-25 07:59:45 +00:00
parent 210682ad68
commit c0cd7bc6cc
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=366040
2 changed files with 23 additions and 1 deletions

View File

@ -3,7 +3,7 @@
PORTNAME= python34
PORTVERSION= 3.4.1
PORTREVISION= 4
PORTREVISION= 5
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON
MASTER_SITE_SUBDIR= ftp/python/${PORTVERSION}

View File

@ -0,0 +1,22 @@
# 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}
};