package/musepack: fix musl build
authorBernd Kuhls <bernd.kuhls@t-online.de>
Sat, 30 Jan 2016 08:31:40 +0000 (09:31 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 7 Feb 2016 21:40:55 +0000 (22:40 +0100)
This commit adds two patches needed to fix musl related build issues
in musepack: a missing <sys/select.h> inclusion, and an inclusion of
<fpu_control.h> that should be made conditional on __GLIBC__.

Fixes:

  http://autobuild.buildroot.net/results/6eb/6ebc9cbee3fc48f4f5b658d11b040ad62fb6607f/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[Thomas: split the patch in two patches, add proper patch
description.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/musepack/0003-include-fpu-control-with-glibc-only.patch [new file with mode: 0644]
package/musepack/0004-missing-sys-select.patch [new file with mode: 0644]

diff --git a/package/musepack/0003-include-fpu-control-with-glibc-only.patch b/package/musepack/0003-include-fpu-control-with-glibc-only.patch
new file mode 100644 (file)
index 0000000..6f50155
--- /dev/null
@@ -0,0 +1,26 @@
+Include <fpu_control.h> only on glibc systems
+
+The <fpu_control.h> header provides _FPU_*() macros, which the
+Init_FPU() function uses only on i386, and only when they are
+defined. Since <fpu_control.h> is not available, this causes a build
+failure with C libraries such as musl. By simply including
+<fpu_control.h> explicitly on glibc systems, we avoid the build
+failure, since mpcenc.c already conditionally uses the <fpu_control.h>
+macros only if they are defined.
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+[Thomas: better commit log.]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+diff -uNr musepack_src_r475.org/mpcenc/mpcenc.h musepack_src_r475/mpcenc/mpcenc.h
+--- musepack_src_r475.org/mpcenc/mpcenc.h      2009-02-23 19:15:46.000000000 +0100
++++ musepack_src_r475/mpcenc/mpcenc.h  2016-01-30 09:29:08.000000000 +0100
+@@ -50,7 +51,7 @@
+ # include <unistd.h>
+ #endif
+-#if   defined __linux__
++#if   defined __GLIBC__
+ #  include <fpu_control.h>
+ #elif defined __FreeBSD__
+ # include <machine/floatingpoint.h>
diff --git a/package/musepack/0004-missing-sys-select.patch b/package/musepack/0004-missing-sys-select.patch
new file mode 100644 (file)
index 0000000..1e3a4b1
--- /dev/null
@@ -0,0 +1,21 @@
+Add missing <sys/select.h> include
+
+This header is needed when types like fd_set are used. This fixes a
+build issue occuring on the musl C library.
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+[Thomas: better commit log.]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/mpcenc/mpcenc.h
+===================================================================
+--- a/mpcenc/mpcenc.h
++++ b/mpcenc/mpcenc.h
+@@ -34,6 +34,7 @@
+ //// portable system includes //////////////////////////////////////
+ #include <stddef.h>
+ #include <math.h>
++#include <sys/select.h>
+ //// system dependent system includes //////////////////////////////
+ // low level I/O, where are prototypes and constants?