From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 43719 invoked by alias); 17 Feb 2020 10:25:32 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 43707 invoked by uid 89); 17 Feb 2020 10:25:32 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=2829 X-HELO: us-smtp-1.mimecast.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1581935128; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tor0BeMdvVFhg+Mt4r1wF8ZEeRYztJh50wcn6hVN1+k=; b=aglO/1P31Nr0itGB1b0HM0fNdH2221f9YNatL+rKrr4CyHd9Lb5yHwUeQXK/zPJCQJZq4z bHcqNstA0vnakA9KeXRnIEvOY10pXjnUa6e7ADGX3ume10P5X5mvTuoAx3Z5ThihmT5TeW dsYBmLNGglILg65Z/iGu5IQ+LGSfgO4= From: Florian Weimer To: libc-alpha@sourceware.org Subject: [PATCH COMMITTED] x86: Avoid single-argument _Static_assert in Date: Mon, 17 Feb 2020 10:25:00 -0000 Message-ID: <87blpxse7g.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-SW-Source: 2020-02/txt/msg00741.txt.bz2 Older GCC versions do not support this extension. Fixes commit f1bdee61797 ("x86 tls: Use _Static_assert for TLS access size assertion"). ----- sysdeps/i386/nptl/tls.h | 20 ++++++++++++-------- sysdeps/mach/hurd/i386/tls.h | 20 ++++++++++++-------- sysdeps/x86_64/nptl/tls.h | 20 ++++++++++++-------- 3 files changed, 36 insertions(+), 24 deletions(-) diff --git a/sysdeps/i386/nptl/tls.h b/sysdeps/i386/nptl/tls.h index 28053a77f3..ec03fc189c 100644 --- a/sysdeps/i386/nptl/tls.h +++ b/sysdeps/i386/nptl/tls.h @@ -256,8 +256,9 @@ tls_fill_user_desc (union user_desc_init *desc, # define THREAD_GETMEM(descr, member) \ ({ __typeof (descr->member) __value; \ _Static_assert (sizeof (__value) =3D=3D 1 \ - || sizeof (__value) =3D=3D 4 \ - || sizeof (__value) =3D=3D 8); \ + || sizeof (__value) =3D=3D 4 \ + || sizeof (__value) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (__value) =3D=3D 1) \ asm volatile ("movb %%gs:%P2,%b0" \ : "=3Dq" (__value) \ @@ -281,8 +282,9 @@ tls_fill_user_desc (union user_desc_init *desc, # define THREAD_GETMEM_NC(descr, member, idx) \ ({ __typeof (descr->member[0]) __value; \ _Static_assert (sizeof (__value) =3D=3D 1 \ - || sizeof (__value) =3D=3D 4 \ - || sizeof (__value) =3D=3D 8); \ + || sizeof (__value) =3D=3D 4 \ + || sizeof (__value) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (__value) =3D=3D 1) \ asm volatile ("movb %%gs:%P2(%3),%b0" \ : "=3Dq" (__value) \ @@ -309,8 +311,9 @@ tls_fill_user_desc (union user_desc_init *desc, # define THREAD_SETMEM(descr, member, value) \ ({ \ _Static_assert (sizeof (descr->member) =3D=3D 1 \ - || sizeof (descr->member) =3D=3D 4 \ - || sizeof (descr->member) =3D=3D 8); \ + || sizeof (descr->member) =3D=3D 4 \ + || sizeof (descr->member) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (descr->member) =3D=3D 1) \ asm volatile ("movb %b0,%%gs:%P1" : \ : "iq" (value), \ @@ -333,8 +336,9 @@ tls_fill_user_desc (union user_desc_init *desc, # define THREAD_SETMEM_NC(descr, member, idx, value) \ ({ \ _Static_assert (sizeof (descr->member[0]) =3D=3D 1 \ - || sizeof (descr->member[0]) =3D=3D 4 \ - || sizeof (descr->member[0]) =3D=3D 8); \ + || sizeof (descr->member[0]) =3D=3D 4 \ + || sizeof (descr->member[0]) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (descr->member[0]) =3D=3D 1) \ asm volatile ("movb %b0,%%gs:%P1(%2)" : \ : "iq" (value), \ diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h index ed3d8fd1f2..0c2de054d8 100644 --- a/sysdeps/mach/hurd/i386/tls.h +++ b/sysdeps/mach/hurd/i386/tls.h @@ -167,8 +167,9 @@ out: # define THREAD_GETMEM(descr, member) \ ({ __typeof (descr->member) __value; \ _Static_assert (sizeof (__value) =3D=3D 1 \ - || sizeof (__value) =3D=3D 4 \ - || sizeof (__value) =3D=3D 8); \ + || sizeof (__value) =3D=3D 4 \ + || sizeof (__value) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (__value) =3D=3D 1) \ asm volatile ("movb %%gs:%P2,%b0" \ : "=3Dq" (__value) \ @@ -192,8 +193,9 @@ out: # define THREAD_GETMEM_NC(descr, member, idx) \ ({ __typeof (descr->member[0]) __value; \ _Static_assert (sizeof (__value) =3D=3D 1 \ - || sizeof (__value) =3D=3D 4 \ - || sizeof (__value) =3D=3D 8); \ + || sizeof (__value) =3D=3D 4 \ + || sizeof (__value) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (__value) =3D=3D 1) \ asm volatile ("movb %%gs:%P2(%3),%b0" \ : "=3Dq" (__value) \ @@ -220,8 +222,9 @@ out: # define THREAD_SETMEM(descr, member, value) \ ({ \ _Static_assert (sizeof (descr->member) =3D=3D 1 \ - || sizeof (descr->member) =3D=3D 4 \ - || sizeof (descr->member) =3D=3D 8); \ + || sizeof (descr->member) =3D=3D 4 \ + || sizeof (descr->member) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (descr->member) =3D=3D 1) \ asm volatile ("movb %b0,%%gs:%P1" : \ : "iq" (value), \ @@ -244,8 +247,9 @@ out: # define THREAD_SETMEM_NC(descr, member, idx, value) \ ({ \ _Static_assert (sizeof (descr->member[0]) =3D=3D 1 \ - || sizeof (descr->member[0]) =3D=3D 4 \ - || sizeof (descr->member[0]) =3D=3D 8); \ + || sizeof (descr->member[0]) =3D=3D 4 \ + || sizeof (descr->member[0]) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (descr->member[0]) =3D=3D 1) \ asm volatile ("movb %b0,%%gs:%P1(%2)" : \ : "iq" (value), \ diff --git a/sysdeps/x86_64/nptl/tls.h b/sysdeps/x86_64/nptl/tls.h index 5255ff8509..cb60ed4c3c 100644 --- a/sysdeps/x86_64/nptl/tls.h +++ b/sysdeps/x86_64/nptl/tls.h @@ -200,8 +200,9 @@ _Static_assert (offsetof (tcbhead_t, __glibc_unused2) = =3D=3D 0x80, # define THREAD_GETMEM(descr, member) \ ({ __typeof (descr->member) __value; \ _Static_assert (sizeof (__value) =3D=3D 1 \ - || sizeof (__value) =3D=3D 4 \ - || sizeof (__value) =3D=3D 8); \ + || sizeof (__value) =3D=3D 4 \ + || sizeof (__value) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (__value) =3D=3D 1) \ asm volatile ("movb %%fs:%P2,%b0" \ : "=3Dq" (__value) \ @@ -223,8 +224,9 @@ _Static_assert (offsetof (tcbhead_t, __glibc_unused2) = =3D=3D 0x80, # define THREAD_GETMEM_NC(descr, member, idx) \ ({ __typeof (descr->member[0]) __value; \ _Static_assert (sizeof (__value) =3D=3D 1 \ - || sizeof (__value) =3D=3D 4 \ - || sizeof (__value) =3D=3D 8); \ + || sizeof (__value) =3D=3D 4 \ + || sizeof (__value) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (__value) =3D=3D 1) \ asm volatile ("movb %%fs:%P2(%q3),%b0" \ : "=3Dq" (__value) \ @@ -257,8 +259,9 @@ _Static_assert (offsetof (tcbhead_t, __glibc_unused2) = =3D=3D 0x80, # define THREAD_SETMEM(descr, member, value) \ ({ \ _Static_assert (sizeof (descr->member) =3D=3D 1 \ - || sizeof (descr->member) =3D=3D 4 \ - || sizeof (descr->member) =3D=3D 8); \ + || sizeof (descr->member) =3D=3D 4 \ + || sizeof (descr->member) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (descr->member) =3D=3D 1) \ asm volatile ("movb %b0,%%fs:%P1" : \ : "iq" (value), \ @@ -279,8 +282,9 @@ _Static_assert (offsetof (tcbhead_t, __glibc_unused2) = =3D=3D 0x80, # define THREAD_SETMEM_NC(descr, member, idx, value) \ ({ \ _Static_assert (sizeof (descr->member[0]) =3D=3D 1 \ - || sizeof (descr->member[0]) =3D=3D 4 \ - || sizeof (descr->member[0]) =3D=3D 8); \ + || sizeof (descr->member[0]) =3D=3D 4 \ + || sizeof (descr->member[0]) =3D=3D 8, \ + "size of per-thread data"); \ if (sizeof (descr->member[0]) =3D=3D 1) \ asm volatile ("movb %b0,%%fs:%P1(%q2)" : \ : "iq" (value), \