diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-11-21 09:44:42 -0200 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-11-21 10:19:56 -0200 |
commit | a3aaa59816881c909249b68881e788152d753345 (patch) | |
tree | 2f988e1c688c057021956bb55a026b8999567673 | |
parent | 8beba15d536aa5c89e9e55e4c497c0bcd10cb67c (diff) | |
download | glibc-a3aaa59816881c909249b68881e788152d753345.zip glibc-a3aaa59816881c909249b68881e788152d753345.tar.gz glibc-a3aaa59816881c909249b68881e788152d753345.tar.bz2 |
nptl: Add workaround for ASSERT_PTHREAD_INTERNAL_SIZE with GCC 4.9
GCC 4.9 (the minimum current supported) emits an warning for universal
zero initializer ({0}) on ASSERT_PTHREAD_INTERNAL_SIZE:
pthread_attr_init.c: In function ‘__pthread_attr_init_2_1’:
pthread_attr_init.c:37:3: error: missing braces around initializer [-Werror=missing-braces]
ASSERT_PTHREAD_INTERNAL_SIZE (pthread_attr_t, struct pthread_attr);
^
pthread_attr_init.c:37:3: error: (near initialization for ‘(anonymous).__size’) [-Werror=missing-braces]
It is fact GCC BZ#53119 [1] fixed in later version (GCC5+). Since
current branch is closed and there is no indication it will be backports
(comment #20 in same bug report) this patch fixes by using a double
bracket to zero initialize the struct.
Checked on x86_64-linux-gnu with GCC 7 and GCC 4.9.
* nptl/pthreadP.h (ASSERT_PTHREAD_INTERNAL_SIZE): Add workarond for
-Wmissing-braces on GCC 4.9.
[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | nptl/pthreadP.h | 2 |
2 files changed, 6 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2017-11-21 Adhemerval Zanella <adhemerval.zanella@linaro.org> + + * nptl/pthreadP.h (ASSERT_PTHREAD_INTERNAL_SIZE): Add workarond for + -Wmissing-braces on GCC 4.9. + 2017-11-21 Stefan Liebler <stli@linux.vnet.ibm.com> * sysdeps/s390/s390-64/start.S (_start): Add cfi information for r14. diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index 1cc80b6..713000e 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -644,7 +644,7 @@ check_stacksize_attr (size_t st) "sizeof (" #type ") != " #size) #define ASSERT_PTHREAD_INTERNAL_SIZE(type, internal) \ - _Static_assert (sizeof ((type) { 0 }).__size >= sizeof (internal), \ + _Static_assert (sizeof ((type) { { 0 } }).__size >= sizeof (internal),\ "sizeof (" #type ".__size) < sizeof (" #internal ")") #define ASSERT_PTHREAD_STRING(x) __STRING (x) |