diff mbox

[v2,2/2] package/mjpg-streamer: Fix musl build

Message ID 1453644779-7961-2-git-send-email-bernd.kuhls@t-online.de
State Rejected
Headers show

Commit Message

Bernd Kuhls Jan. 24, 2016, 2:12 p.m. UTC
Fixes
http://autobuild.buildroot.net/results/74c/74c6006c4d7a97fa69c6feee204631861daffea9/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
v2: no changes

 package/mjpg-streamer/0001-musl_compatibility.patch | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 package/mjpg-streamer/0001-musl_compatibility.patch

Comments

Thomas Petazzoni Jan. 25, 2016, 10:48 p.m. UTC | #1
Dear Bernd Kuhls,

On Sun, 24 Jan 2016 15:12:59 +0100, Bernd Kuhls wrote:

> diff --git a/package/mjpg-streamer/0001-musl_compatibility.patch b/package/mjpg-streamer/0001-musl_compatibility.patch
> new file mode 100644
> index 0000000..faebd58
> --- /dev/null
> +++ b/package/mjpg-streamer/0001-musl_compatibility.patch
> @@ -0,0 +1,20 @@
> +Fix musl build
> +
> +Patch downloaded from
> +https://github.com/openwrt/packages/blob/master/multimedia/mjpg-streamer/patches/005-musl_compatibility.patch
> +
> +Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> +
> +--- a/mjpg_streamer.h
> ++++ b/mjpg_streamer.h
> +@@ -29,6 +29,10 @@
> + #define MAX_OUTPUT_PLUGINS 10
> + #define MAX_PLUGIN_ARGUMENTS 32
> + 
> ++#define __NEED_pthread_t
> ++#define __NEED_pthread_mutex_t
> ++#define __NEED_pthread_cond_t

This is not the proper fix. This is an ugly hack. Instead, just add:

#include <pthread.h> in plugins/input.h

and things will magically build fine.

One suggestion: do *not* take the patches found in OpenWRT for granted.
No offense for the OpenWRT developers, but I have already found
numerous horrible hacks in OpenWRT patches, and dubious solutions to
build issues.

So whenever you take a patch from OpenWRT, take a step back, and always
check if it's the right solution, and whether the solution is
upstreamable.

What prompted me to check more precisely here is that the OpenWRT
solution is clearly not upstreamable, while including <pthread.h> when
the file uses pthread_* types definitely is.

Best regards,

Thomas
diff mbox

Patch

diff --git a/package/mjpg-streamer/0001-musl_compatibility.patch b/package/mjpg-streamer/0001-musl_compatibility.patch
new file mode 100644
index 0000000..faebd58
--- /dev/null
+++ b/package/mjpg-streamer/0001-musl_compatibility.patch
@@ -0,0 +1,20 @@ 
+Fix musl build
+
+Patch downloaded from
+https://github.com/openwrt/packages/blob/master/multimedia/mjpg-streamer/patches/005-musl_compatibility.patch
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+--- a/mjpg_streamer.h
++++ b/mjpg_streamer.h
+@@ -29,6 +29,10 @@
+ #define MAX_OUTPUT_PLUGINS 10
+ #define MAX_PLUGIN_ARGUMENTS 32
+ 
++#define __NEED_pthread_t
++#define __NEED_pthread_mutex_t
++#define __NEED_pthread_cond_t
++
+ #include <linux/types.h>          /* for videodev2.h */
+ #include <linux/videodev2.h>
+