From 9ee932e4bf092685b61eb8204d52808b188f9c0b Mon Sep 17 00:00:00 2001 From: David CARLIER Date: Fri, 10 Sep 2021 12:28:15 +0000 Subject: [PATCH 1/3] haiku build fix proposal. linkage issues mainly for shared libs and missing system library, also little nit into the signal extension as strsignal returns a constant in this platform. --- Modules/signalmodule.c | 6 +++++- configure.ac | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index 243c8c82cdc647..82ad3ef5a34b56 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -611,7 +611,11 @@ static PyObject * signal_strsignal_impl(PyObject *module, int signalnum) /*[clinic end generated code: output=44e12e1e3b666261 input=b77914b03f856c74]*/ { +#ifdef __HAIKU__ + const char * res; +#else char *res; +#endif if (signalnum < 1 || signalnum >= NSIG) { PyErr_SetString(PyExc_ValueError, @@ -663,7 +667,7 @@ signal_strsignal_impl(PyObject *module, int signalnum) } #else errno = 0; - res = strsignal(signalnum); + res = (const char *)strsignal(signalnum); if (errno || res == NULL || strstr(res, "Unknown signal") != NULL) Py_RETURN_NONE; diff --git a/configure.ac b/configure.ac index e01e0c13fba19c..242d93d0646a20 100644 --- a/configure.ac +++ b/configure.ac @@ -2736,7 +2736,7 @@ then BLDSHARED="$LDSHARED" fi ;; - Linux*|GNU*|QNX*|VxWorks*) + Linux*|GNU*|QNX*|VxWorks*|Haiku*) LDSHARED='$(CC) -shared' LDCXXSHARED='$(CXX) -shared';; FreeBSD*) @@ -2805,6 +2805,7 @@ then Linux-android*) ;; Linux*|GNU*) CCSHARED="-fPIC";; FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";; + Haiku*) CCSHARED="-fPIC";; OpenUNIX*|UnixWare*) if test "$GCC" = "yes" then CCSHARED="-fPIC" @@ -3098,6 +3099,9 @@ AC_SUBST(TZPATH) AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets +# Haiku system library +AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [] $LIBS) + AC_MSG_CHECKING(for --with-libs) AC_ARG_WITH(libs, AS_HELP_STRING([--with-libs='lib1 ...'], [link against additional libs (default is no)]), From 6fd91d8c9d0c74da68ca6e16ae2c41689d924263 Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Fri, 10 Sep 2021 14:59:31 +0300 Subject: [PATCH 2/3] Apply suggestions from code review --- Modules/signalmodule.c | 8 ++------ configure.ac | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index 82ad3ef5a34b56..fc58cfd2084c73 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -611,11 +611,7 @@ static PyObject * signal_strsignal_impl(PyObject *module, int signalnum) /*[clinic end generated code: output=44e12e1e3b666261 input=b77914b03f856c74]*/ { -#ifdef __HAIKU__ - const char * res; -#else - char *res; -#endif + const char *res; if (signalnum < 1 || signalnum >= NSIG) { PyErr_SetString(PyExc_ValueError, @@ -667,7 +663,7 @@ signal_strsignal_impl(PyObject *module, int signalnum) } #else errno = 0; - res = (const char *)strsignal(signalnum); + res = strsignal(signalnum); if (errno || res == NULL || strstr(res, "Unknown signal") != NULL) Py_RETURN_NONE; diff --git a/configure.ac b/configure.ac index 242d93d0646a20..bcb205497c1eab 100644 --- a/configure.ac +++ b/configure.ac @@ -3100,7 +3100,7 @@ AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets # Haiku system library -AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [] $LIBS) +AC_CHECK_LIB(network, socket, [LIBS="-lnetwork $LIBS"], [], $LIBS) AC_MSG_CHECKING(for --with-libs) AC_ARG_WITH(libs, From 40249b092ce83ae899fc8744c2c2721081b526c3 Mon Sep 17 00:00:00 2001 From: "blurb-it[bot]" <43283697+blurb-it[bot]@users.noreply.github.com> Date: Sat, 11 Sep 2021 06:05:24 +0000 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=93=9C=F0=9F=A4=96=20Added=20by=20blu?= =?UTF-8?q?rb=5Fit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Misc/NEWS.d/next/Build/2021-09-11-06-05-23.bpo-45163.q7xT93.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Build/2021-09-11-06-05-23.bpo-45163.q7xT93.rst diff --git a/Misc/NEWS.d/next/Build/2021-09-11-06-05-23.bpo-45163.q7xT93.rst b/Misc/NEWS.d/next/Build/2021-09-11-06-05-23.bpo-45163.q7xT93.rst new file mode 100644 index 00000000000000..2b656bcbc230bc --- /dev/null +++ b/Misc/NEWS.d/next/Build/2021-09-11-06-05-23.bpo-45163.q7xT93.rst @@ -0,0 +1 @@ +Fixes Haiku platform build. \ No newline at end of file