From 0034a272819fa56faedf8e6e7d04d1ee08738a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 4 Apr 2019 02:07:30 +0200 Subject: [PATCH] csound: fix build for musl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Andreas Müller --- recipes-musicians/csound/csound_git.bb | 3 + .../files/0009-Fix-build-for-linux-musl.patch | 60 +++++++++++++++++++ ...e.c-Fix-unused-valable-warning-error.patch | 43 +++++++++++++ ...e-POSIX-conform-location-for-errno.h.patch | 46 ++++++++++++++ 4 files changed, 152 insertions(+) create mode 100644 recipes-musicians/csound/files/0009-Fix-build-for-linux-musl.patch create mode 100644 recipes-musicians/csound/files/0010-threadsafe.c-Fix-unused-valable-warning-error.patch create mode 100644 recipes-musicians/csound/files/0011-Use-POSIX-conform-location-for-errno.h.patch diff --git a/recipes-musicians/csound/csound_git.bb b/recipes-musicians/csound/csound_git.bb index a8baa49..c4a05b4 100644 --- a/recipes-musicians/csound/csound_git.bb +++ b/recipes-musicians/csound/csound_git.bb @@ -34,6 +34,9 @@ SRC_URI = " \ file://0006-fixed-unsafe-use-of-strncpy.patch \ file://0007-util1-csd_util-cs.c-Fix-build-with-gcc8.patch \ file://0008-Fix-build-with-fluidsynth-version-2.0.0.patch \ + file://0009-Fix-build-for-linux-musl.patch \ + file://0010-threadsafe.c-Fix-unused-valable-warning-error.patch \ + file://0011-Use-POSIX-conform-location-for-errno.h.patch \ " SRCREV = "2905724262b516983e779ed8c589602da4bf3f7d" S = "${WORKDIR}/git" diff --git a/recipes-musicians/csound/files/0009-Fix-build-for-linux-musl.patch b/recipes-musicians/csound/files/0009-Fix-build-for-linux-musl.patch new file mode 100644 index 0000000..0ca6e72 --- /dev/null +++ b/recipes-musicians/csound/files/0009-Fix-build-for-linux-musl.patch @@ -0,0 +1,60 @@ +From cdcad764c01084d435c17e6a57450ca4a066705c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 3 Apr 2019 20:50:18 +0200 +Subject: [PATCH] Fix build for linux/musl +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Musl (and myabe other libc libraries) does not have execinfo.h. So instead +of assuming the header existant for all linux environments check for the file. + +Upstream-Status: Applied [1] + +[1] https://github.com/csound/csound/commit/7f93585037a41fbff22ce49d3bbde0d66eb7530b + +Signed-off-by: Andreas Müller +--- + CMakeLists.txt | 5 ++++- + Top/csound.c | 2 +- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d5a8e1bed..90bca5950 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -603,7 +603,7 @@ set(HEADERS_TO_CHECK + unistd.h io.h fcntl.h stdint.h + sys/time.h sys/types.h termios.h + values.h winsock.h sys/socket.h +- dirent.h inttypes.h) ++ dirent.h inttypes.h execinfo.h) + + foreach(header ${HEADERS_TO_CHECK}) + # Convert to uppercase and replace [./] with _ +@@ -617,6 +617,9 @@ if (NOT HAVE_INTTYPES_H) + message(FATAL_ERROR "Csound requires inttypes.h") + endif() + ++if (HAVE_EXECINFO_H) ++ add_definitions("-DHAVE_EXECINFO") ++endif() + + check_deps(USE_LRINT HAVE_LRINT) + if(USE_LRINT) +diff --git a/Top/csound.c b/Top/csound.c +index 9b95674df..48a53717a 100644 +--- a/Top/csound.c ++++ b/Top/csound.c +@@ -1157,7 +1157,7 @@ static void psignal_(int sig, char *str) + + static void signal_handler(int sig) + { +-#if defined(LINUX) && !defined(ANDROID) && !defined(NACL) ++#if defined(HAVE_EXECINFO) && !defined(ANDROID) && !defined(NACL) + #include + + { +-- +2.20.1 + diff --git a/recipes-musicians/csound/files/0010-threadsafe.c-Fix-unused-valable-warning-error.patch b/recipes-musicians/csound/files/0010-threadsafe.c-Fix-unused-valable-warning-error.patch new file mode 100644 index 0000000..c69cb2d --- /dev/null +++ b/recipes-musicians/csound/files/0010-threadsafe.c-Fix-unused-valable-warning-error.patch @@ -0,0 +1,43 @@ +From d91048c4943e81dafcdb2db701fe04c0a9d6e0b1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 3 Apr 2019 21:01:24 +0200 +Subject: [PATCH] threadsafe.c: Fix unused valable warning/error +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| Top/threadsafe.c:537:5: error: variable 'x' set but not used [-Werror=unused-but-set-variable] +| } x; +| ^ +| cc1: all warnings being treated as errors + +Upstream-Status: Applied [1] + +[1] https://github.com/csound/csound/commit/0c7fee69278933a3eb108d17a641ab4ecabde7c6 + +Signed-off-by: Andreas Müller +--- + Top/threadsafe.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Top/threadsafe.c b/Top/threadsafe.c +index 3a7278459..6214a1b5e 100644 +--- a/Top/threadsafe.c ++++ b/Top/threadsafe.c +@@ -531,11 +531,13 @@ MYFLT csoundGetControlChannel(CSOUND *csound, const char *name, int *err) + + void csoundSetControlChannel(CSOUND *csound, const char *name, MYFLT val){ + MYFLT *pval; ++#if defined(MSVC) || defined(HAVE_ATOMIC_BUILTIN) + union { + MYFLT d; + MYFLT_INT_TYPE i; + } x; + x.d = val; ++#endif + if (csoundGetChannelPtr(csound, &pval, name, + CSOUND_CONTROL_CHANNEL | CSOUND_INPUT_CHANNEL) + == CSOUND_SUCCESS) +-- +2.20.1 + diff --git a/recipes-musicians/csound/files/0011-Use-POSIX-conform-location-for-errno.h.patch b/recipes-musicians/csound/files/0011-Use-POSIX-conform-location-for-errno.h.patch new file mode 100644 index 0000000..029ac31 --- /dev/null +++ b/recipes-musicians/csound/files/0011-Use-POSIX-conform-location-for-errno.h.patch @@ -0,0 +1,46 @@ +From 6d86d9c96c01eb74591c83e3f09bfaf46bca445f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 3 Apr 2019 21:17:30 +0200 +Subject: [PATCH] Use POSIX conform location for errno.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On its POSIX-correctness crusade musl spits out a warning which ends as error: + +| In file included from /home/superandy/tmp/oe-core-musl/work/cortexa7t2hf-neon-vfpv4-mortsgna-linux-musleabi/csound/6.12-r0/git/Opcodes/linuxjoystick.c:39: +| /home/superandy/tmp/oe-core-musl/work/cortexa7t2hf-neon-vfpv4-mortsgna-linux-musleabi/csound/6.12-r0/recipe-sysroot/usr/include/sys/errno.h:1:2: error: #warning redirecting incorrect #include to [-Werror=cpp] +| #warning redirecting incorrect #include to +| ^~~~~~~ +| cc1: all warnings being treated as errors + +Yes that is 'correct' [1] as musl claims itself [2] but... + +[1] http://pubs.opengroup.org/onlinepubs/000095399/basedefs/errno.h.html +[2] https://www.musl-libc.org/ + +Upstream-Status: Applied [3] + +[3] https://github.com/csound/csound/commit/38da4f1c1d93377d3ff90e15be8998f9408faf34 + +Signed-off-by: Andreas Müller +--- + Opcodes/linuxjoystick.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Opcodes/linuxjoystick.c b/Opcodes/linuxjoystick.c +index 348f49168..a56ad18e3 100644 +--- a/Opcodes/linuxjoystick.c ++++ b/Opcodes/linuxjoystick.c +@@ -36,7 +36,7 @@ + */ + + #include "linuxjoystick.h" +-#include ++#include + + static int32_t linuxjoystick (CSOUND *csound, LINUXJOYSTICK *stick) + { +-- +2.20.1 +