All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/vlc: backport upstream patch to fix compat function for static_assert
@ 2016-09-24 18:55 Bernd Kuhls
  2016-10-11 15:05 ` Johan Oudinet
  2016-10-16 11:20 ` Thomas Petazzoni
  0 siblings, 2 replies; 3+ messages in thread
From: Bernd Kuhls @ 2016-09-24 18:55 UTC (permalink / raw)
  To: buildroot

Fixes
http://autobuild.buildroot.net/results/3b9/3b9d15f226057706c185270788050dace7b7b535/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/vlc/0009-static-assert.patch | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 package/vlc/0009-static-assert.patch

diff --git a/package/vlc/0009-static-assert.patch b/package/vlc/0009-static-assert.patch
new file mode 100644
index 0000000..33cf054
--- /dev/null
+++ b/package/vlc/0009-static-assert.patch
@@ -0,0 +1,29 @@
+From: Thomas Guillem <thomas@gllm.fr>
+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 <remi@remlab.net>
+(backported and re-based for vlc 2.2)
+ Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+---
+
+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)
+-# 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
+ 
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH 1/1] package/vlc: backport upstream patch to fix compat function for static_assert
  2016-09-24 18:55 [Buildroot] [PATCH 1/1] package/vlc: backport upstream patch to fix compat function for static_assert Bernd Kuhls
@ 2016-10-11 15:05 ` Johan Oudinet
  2016-10-16 11:20 ` Thomas Petazzoni
  1 sibling, 0 replies; 3+ messages in thread
From: Johan Oudinet @ 2016-10-11 15:05 UTC (permalink / raw)
  To: buildroot

Hi Bernd,

On Sat, Sep 24, 2016 at 8:55 PM, Bernd Kuhls <bernd.kuhls@t-online.de> wrote:
> Fixes
> http://autobuild.buildroot.net/results/3b9/3b9d15f226057706c185270788050dace7b7b535/
>
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/vlc/0009-static-assert.patch | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
>  create mode 100644 package/vlc/0009-static-assert.patch
>
> diff --git a/package/vlc/0009-static-assert.patch b/package/vlc/0009-static-assert.patch
> new file mode 100644
> index 0000000..33cf054
> --- /dev/null
> +++ b/package/vlc/0009-static-assert.patch
> @@ -0,0 +1,29 @@
> +From: Thomas Guillem <thomas@gllm.fr>
> +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 <remi@remlab.net>
> +(backported and re-based for vlc 2.2)
> + Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> +---
> +
> +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)
> +-# 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
> +

I've tested your patch:
Applying 0009-static-assert.patch using patch:
patching file include/vlc_fixups.h
Hunk #1 succeeded at 240 (offset -33 lines).


Unfortunately, I still have errors related to static_assert when compiling vlc:
------------8<------------8<------------8<------------8<------------
In file included from ../config.h:799:0,
                 from demux/sid.cpp:33:
../include/vlc_fixups.h:245:104: error: types may not be defined in
?sizeof? expressions
 # define _Static_assert(x, s) extern char
STATIC_ASSERT_CONCAT(static_assert_, __LINE__)[sizeof(struct {
unsigned:-!(x); })]

                                 ^
../include/vlc_fixups.h:245:124: error: storage class specified for
?static_assert_1094?
 # define _Static_assert(x, s) extern char
STATIC_ASSERT_CONCAT(static_assert_, __LINE__)[sizeof(struct {
unsigned:-!(x); })]

                                                     ^
../include/vlc_fixups.h:245:104: error: types may not be defined in
?sizeof? expressions
 # define _Static_assert(x, s) extern char
STATIC_ASSERT_CONCAT(static_assert_, __LINE__)[sizeof(struct {
unsigned:-!(x); })]

                                 ^
../include/vlc_fixups.h:245:124: error: storage class specified for
?static_assert_2082?
 # define _Static_assert(x, s) extern char
STATIC_ASSERT_CONCAT(static_assert_, __LINE__)[sizeof(struct {
unsigned:-!(x); })]

                                                     ^
[...]

In file included from
/home/johan/Documents/green/qolyester-buildroot/output-rpi2/host/usr/arm-buildroot-linux-uclibcgnueabihf/include/c++/6.1.0/tuple:40:0,
                 from
/home/johan/Documents/green/qolyester-buildroot/output-rpi2/host/usr/arm-buildroot-linux-uclibcgnueabihf/include/c++/6.1.0/bits/stl_map.h:63,
                 from
/home/johan/Documents/green/qolyester-buildroot/output-rpi2/host/usr/arm-buildroot-linux-uclibcgnueabihf/include/c++/6.1.0/map:61,
                 from ./stream_filter/dash/mpd/SegmentInfo.h:30,
                 from ./stream_filter/dash/mpd/Representation.h:31,
                 from
./stream_filter/dash/adaptationlogic/IAdaptationLogic.h:30,
                 from
stream_filter/dash/adaptationlogic/AdaptationLogicFactory.h:28,
                 from
stream_filter/dash/adaptationlogic/AdaptationLogicFactory.cpp:28:
/home/johan/Documents/green/qolyester-buildroot/output-rpi2/host/usr/arm-buildroot-linux-uclibcgnueabihf/include/c++/6.1.0/bits/uses_allocator.h:92:62:
error: macro "_Static_assert" passed 8 arguments, but takes just 2
    " an allocator must be possible if uses_allocator is true");


------------8<------------8<------------8<------------8<------------

Redefining static_assert in a header included by both C and C++ code
is a bad idea. It looks like HAVE_STATIC_ASSERT is not correctly set
for C++14. I solve the remaining errors by changing the condition to:
#if !defined (HAVE_STATIC_ASSERT) && (!defined(__cplusplus) ||
__cplusplus < 201103L)

Kind regards,
-- 
Johan

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH 1/1] package/vlc: backport upstream patch to fix compat function for static_assert
  2016-09-24 18:55 [Buildroot] [PATCH 1/1] package/vlc: backport upstream patch to fix compat function for static_assert Bernd Kuhls
  2016-10-11 15:05 ` Johan Oudinet
@ 2016-10-16 11:20 ` Thomas Petazzoni
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2016-10-16 11:20 UTC (permalink / raw)
  To: buildroot

Hello,

On Sat, 24 Sep 2016 20:55:02 +0200, Bernd Kuhls wrote:
> Fixes
> http://autobuild.buildroot.net/results/3b9/3b9d15f226057706c185270788050dace7b7b535/
> 
> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
> ---
>  package/vlc/0009-static-assert.patch | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
>  create mode 100644 package/vlc/0009-static-assert.patch

Thanks, but you got some comments from Johan Oudinet on October 11 on
this patch, saying that it doesn't fix the problem entirely.

Could you take this comment into account and send an updated version?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-10-16 11:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-24 18:55 [Buildroot] [PATCH 1/1] package/vlc: backport upstream patch to fix compat function for static_assert Bernd Kuhls
2016-10-11 15:05 ` Johan Oudinet
2016-10-16 11:20 ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.