From 70dbd3227db8b6856cc95b3afbecd36e9a1847a6 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sun, 16 Oct 2016 23:01:26 +0200 Subject: [PATCH] package/vlc: backport upstream patches to fix compat function for static_assert Fixes http://autobuild.buildroot.net/results/3b9/3b9d15f226057706c185270788050dace7b7b535/ Signed-off-by: Bernd Kuhls Signed-off-by: Thomas Petazzoni --- package/vlc/0010-static-assert.patch | 25 +++++++++++++++++++++++++ package/vlc/0011-static-assert.patch | 28 ++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 package/vlc/0010-static-assert.patch create mode 100644 package/vlc/0011-static-assert.patch diff --git a/package/vlc/0010-static-assert.patch b/package/vlc/0010-static-assert.patch new file mode 100644 index 0000000000..87fd56bda2 --- /dev/null +++ b/package/vlc/0010-static-assert.patch @@ -0,0 +1,25 @@ +From: Thomas Guillem +Date: Thu, 30 Apr 2015 13:29:50 +0000 (+0200) +Subject: Fix build when using C99 and C++11 +X-Git-Url: http://git.videolan.org/?p=vlc.git;a=commitdiff_plain;h=51ce6cdaf598754e617900994c1943c6cba6d604 + +Fix build when using C99 and C++11 + +Indeed, C99 doesn't have static_assert and C++11 has it. + +Signed-off-by: Bernd Kuhls +--- + +diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h +index b949d24..ee168d7 100644 +--- a/include/vlc_fixups.h ++++ b/include/vlc_fixups.h +@@ -239,7 +239,7 @@ static inline locale_t newlocale(int mask, const char * locale, locale_t base) + } + #endif + +-#if !defined (HAVE_STATIC_ASSERT) ++#if !defined (HAVE_STATIC_ASSERT) && !defined(__cpp_static_assert) + # define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); })) + # define static_assert _Static_assert + #endif diff --git a/package/vlc/0011-static-assert.patch b/package/vlc/0011-static-assert.patch new file mode 100644 index 0000000000..3ce23e1384 --- /dev/null +++ b/package/vlc/0011-static-assert.patch @@ -0,0 +1,28 @@ +From: Thomas Guillem +Date: Mon, 14 Dec 2015 09:08:25 +0000 (+0100) +Subject: compat: fix static_assert +X-Git-Url: http://git.videolan.org/?p=vlc.git;a=commitdiff_plain;h=6faf9066670db6e0d241ead6a3926b2d9cc6a041 + +compat: fix static_assert + +It was not possible to use it outside of functions. + +Signed-off-by: Rémi Denis-Courmont +Signed-off-by: Bernd Kuhls +--- + +diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h +index 213d3f3..bd798d0 100644 +--- a/include/vlc_fixups.h ++++ b/include/vlc_fixups.h +@@ -273,7 +273,9 @@ static inline locale_t newlocale(int mask, const char * locale, locale_t base) + #endif + + #if !defined (HAVE_STATIC_ASSERT) && !defined(__cpp_static_assert) +-# define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); })) ++# define STATIC_ASSERT_CONCAT_(a, b) a##b ++# define STATIC_ASSERT_CONCAT(a, b) STATIC_ASSERT_CONCAT_(a, b) ++# define _Static_assert(x, s) extern char STATIC_ASSERT_CONCAT(static_assert_, __LINE__)[sizeof(struct { unsigned:-!(x); })] + # define static_assert _Static_assert + #endif +