From nobody Mon Jun 24 15:24:05 2024 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4W7Bc43HwPz5P5c1 for ; Mon, 24 Jun 2024 15:25:24 +0000 (UTC) (envelope-from pfg@freebsd.org) Received: from sonic309-20.consmr.mail.ne1.yahoo.com (sonic309-20.consmr.mail.ne1.yahoo.com [66.163.184.146]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4W7Bc42BVVz4Gqk for ; Mon, 24 Jun 2024 15:25:24 +0000 (UTC) (envelope-from pfg@freebsd.org) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1719242721; bh=3x0UdVOzsqmMZF059NTnNnK3vQAXbKF/SXP+U5YUDsI=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=TcFAGALy41TREBcp4/pdKFdJQeuPb5t77/eASHMCcKJGVR5B7U/5/bIPmRdA61Frk9bfxM1tKx/DvG9/dOgtzw2ZBeki2pY+yf0WgDI8zbOSQYlRxtYEckZyoXwATPRIfMepMiiePafSk17dtAXfpmzHO8cGIR0AVM4uSz0V+Mvj37V32pbqbkWfv6TyRIkrMbG+MRCH3etA60eUMLBJYRX9y7LbEfaFIvFl6IyD8sJkhJ420Oy3bcnDC8d9PKVUnV2BpfGDx40CmDah+PIzHif32Huf9rHrPRJlg23L6MOZb0ewEHZqqaLmY5dJaPN7wA9q2+jVkcLctX1JneHZ7Q== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1719242721; bh=youIW00OXP2L/jFn3ar/fT6Woud4u6jfYk8lRAFe45m=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=Jeux7qU54IKmGFBFnv0csgSGxOfp/XdRHR8fiCRs86tk5noVt8509wENUvRb/pEUejMtooyoAduQT/usrKHYSDZepkqYYit/b5KnSq51wm9yV4FAN4oh89F9w5NGfTVQwGKQsyY5RgUAy4kU4eEJTQKOYHVk30GyqEMPWmPkR3ldqxz0bX1iBYcxDKTRlAZdbpMdULwFZXaH2meDPUsJl+l1J4QNGESIkgsZAxN6pUgMlltICfVyNVsvD3wS/SQ5J9uw73OkajZRMdtLFSKesr90PCPqyRwEp74CF12udWPO9iEkSBNGE5EKnWjKHHHIprJ4VIy3eQhOCTGQoULChA== X-YMail-OSG: yn0vNq0VM1npeVoHW0wTmj.cZPrjD2eb00satW34u2xMAVslRmgTeXcOHOE_7zg lw9O9PbMuEmuU1UeYdMwDva0c75H_6ZEmuiMOi8f1qklpWZp0ajj.Epq10UaFOAkGwO0GyOfEvpl Ww_jfo5NPakICwVXD0yLQ1t5qi1tkybYgH60nGOLEJCFZVpDbGZne5KguOh_S1Ym8DZW1yaYWwgL e4sdihC5INuXcql7bzw5KM7bI5oUMvUdsIWPr2K64LdYCMF68ANiJ6_.0_g317dKnui6lS9ghnNR Z4FKhMdHyB0jbCluAjyyDXrvCHOaGNRoZDxeLEs5lzkXko6oz8OMlifOoCelRfrZvFyNppZhrhyC kAHP6pI4UWIiwSUv9A3eiyn207nWhgNVBijS37oSdegXXViWFaXXiBYh.N8DKEut4KLzQvdEVkmI m8kC1i.CJ7kAxOKT32cWPcPykc.GkxCEMNPaWwzyCyaEkXXkouqLhqqheRqxi.nKES2FdkzYqtw2 V_DizWXflUP135ZlI4YXPNez3V1EfTRCYM4qOM4iFyhZ4SMn4tc9f.k5EeyCp2_KrT3JqFkd8mcs wSE9q9d5I_9aE.4AaVVIQk9nluARXrKpGo5X1ixE1.tESJ6Z5y7xqm1mLTwsysIZ5jeJT8bPx2NC Q6I0Effq_cK08jj3qOwtBhy1wSYd4K4tR598cfb8EAi7dXj194ixPgXmJo1UfUfhaxG.871EL5hX 4Zc08pCkyrpWfqhwSHB6BLEIM5ZJ2aGsJjLPoAbZ7NJBjF8S1aYpB78VufvBmNxRQoRGEqhZ_jLf Iibx.mdxNozT8CPCIKXFXhCT166XgnH8OPgwiVoCcgNPS.L0gBSYB1roCCpbXkoOsvs09PrmjY87 B18aIHUTsPmUVmx7s0JIVhmARP7WdOXsf8huD8ZK68ZZ2CLPEhIQyB15R4YDMiuDN.oFycfNCNGR nIr7T5G6OF2DOeSduuSey8ngwufyTngVP4OGFna1L8A_DO7NHtd7NPLQ07t_32AJG._8jLkqVbpX HfXiDYhzqt2uP.NnwV9CS3zNn3fS31IHgtT46m3koZZxGPV3Bm5iXZ_W.CgvAJSKJCXIAs0oId9h SWZO4qtH_z_TkYrp7Z_DP7f8m0kTKC85dP7rcSvGPUYVTHeyXW2_GA2SGb6QKaoYkN3H0Lbd.4bY hbwcEkTanZkoZQy46cuJPuUMyppuCRua6JaLyWpoiMzkQ3BiwXzUgEQJvJ1DAcg4YttK.jQA6VPD 7ioJVK96iEuRqpjtGb9McT2.F49L9a3OqTjbDClHnIWHs4ECmpQUVjc9kd6xBlmBZxNTOR3a0q_Z bB8ttRWVHO2EM0VhYYv80Z10TYn8boaWSRGcJedMV1_cipUVTYd28nnbDeVujgEvaXD4ly8u7VUl vraWTwQfa_R595hgWZCITZfGPt_QHsyKIuAxePBleG4FtlhTiwB031v5AIR2I3MiNAMTG1DubFtG fT4.3j81FM17VZoeNTCJkl_gBesyRrDioluIM70LqE7tehSt.ywkmMUuJ0ri8Dlgw15u8DzuCxBS odlYj_T0zrlstNc7vmj4WiXVN0eYgTBfFyP9ciZnbX3VsX.ffu.1eizEBzoJLDWTgVacYgtZR_IU sCOtfrvSrocXb0nW.4DG7wjNCVGpQpXuCtA3E_l0VwQzaUnN8rlYz3Ba.kPgj6CAcMuE5NvlZkE8 yQ69p8nb9cIEhEC34gko6rZ8v5F.RZsLq0rzJ547bvbd.5kSRHQn0feFvZylIggdkEktop8VPwUt FjeT2FOyuAgB4xbQvLCud0A2M5uS_.LxbMScPcdgEzOJsLeca_Cv4N8ocV4XfYLLXZymUaiIs_EB BYTcgxtazILxntIpwkyB0PASy70FzeFlwBPhnBP6T5rp16mIE.M2q77IRvAKKLJuVrcwx5WBgOIg VtQp0IfHILpKRPorTa90YyM8PwlqMOAiahpzDufB0MzDilpBU0lfAS96rcq71JIbaVOGL3OYs2d8 f9QTW_bE9ePXZcow.Veu6xK1Qk6G_ASG5uZGVrJYRmfoPyuTftOacmQHu7rfFwPOMjGi0FGCRi1i xGhEVLexz9oZn1w_Nsx5iX3y5lBQ57vLwsuGqRxuQxLdtiJro7PIqB.j1rY0VowHzfZNyZhghQTG Zw5Mp5BFWSLDGocdY9.D5g_15bRuLLpYkLxlDd1YJCLE18_8jgRY6TpUCZMnbiEG9P97N X-Sonic-MF: X-Sonic-ID: 708e87f9-24e6-46bb-98d1-f77cc9052597 Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.ne1.yahoo.com with HTTP; Mon, 24 Jun 2024 15:25:21 +0000 Date: Mon, 24 Jun 2024 15:24:05 +0000 (UTC) From: Pedro Giffuni To: Warner Losh Cc: "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-main@freebsd.org" , Warner Losh Message-ID: <62379069.705510.1719242645494@mail.yahoo.com> In-Reply-To: References: <202406210241.45L2fQZA057110@gitrepo.freebsd.org> <111875645.165697.1719082066518@mail.yahoo.com> Subject: Re: git: d5c01e1124ff - main - cdefs.h: Remove pre gcc 5.0 support List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_705509_2096953705.1719242645490" X-Mailer: WebService/1.1.22407 YMailNorrin X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:36646, ipnet:66.163.184.0/21, country:US] X-Rspamd-Queue-Id: 4W7Bc42BVVz4Gqk ------=_Part_705509_2096953705.1719242645490 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I do welcome the cleanup, of course, just I would have defined GCC 4.2 as = the breaking point instead of 5.0. Due basically to the licensing issues, GCC 4.2 became a natural reference f= or GCC versions.=C2=A0 At some point there were vendors actually shipping F= reeBSD with GCC 4.2, and it was not a huge cost to keep GCC versions above = 4.2 properly discriminated. But then you are right that it doesn't really matter that much. At least th= e alloc_size attributes are only defined for the FORTIFY_SOURCE in some lin= ux libc implementation that I looked at. We define them unconditionally but= I don't recall them being useful. Just my $0.02. Pedro. On Sunday, June 23, 2024 at 06:45:42 PM GMT-5, Warner Losh wrote: =20 =20 Indeed. But none of the ones that I removed are affected by this quirk sin= ce they are true for clang all versions. Warner On Sat, Jun 22, 2024 at 12:47=E2=80=AFPM Pedro Giffuni wr= ote: It was long ago when I last touched this but FWIW ... clang used to report itself as GCC 4.2 and kept it's GCC extension support = level consistent with that version so these version numbers were relevant. Pedro. On Thursday, June 20, 2024 at 09:41:34 PM GMT-5, Warner Losh wrote: =20 =20 The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3Dd5c01e1124ffa4adb2513e7e8d70= 8d7072dbfc75 commit d5c01e1124ffa4adb2513e7e8d708d7072dbfc75 Author:=C2=A0 =C2=A0 Warner Losh AuthorDate: 2024-06-20 23:03:15 +0000 Commit:=C2=A0 =C2=A0 Warner Losh CommitDate: 2024-06-21 02:41:09 +0000 =C2=A0 =C2=A0 cdefs.h: Remove pre gcc 5.0 support =C2=A0 =C2=A0=20 =C2=A0 =C2=A0 Reviewed by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 brooks =C2=A0 =C2=A0 Differential Revision:=C2=A0 https://reviews.freebsd.org/D456= 56 =C2=A0 =C2=A0 Sponsored by:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Netflix --- sys/sys/cdefs.h | 54 -----------------------------------------------------= - 1 file changed, 54 deletions(-) diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h index a6ecdca5d8b9..43d179b82020 100644 --- a/sys/sys/cdefs.h +++ b/sys/sys/cdefs.h @@ -164,18 +164,9 @@ #define=C2=A0=C2=A0=C2=A0 __aligned(x)=C2=A0=C2=A0=C2=A0 __attribute__((__= aligned__(x))) #define=C2=A0=C2=A0=C2=A0 __section(x)=C2=A0=C2=A0=C2=A0 __attribute__((__= section__(x))) #define=C2=A0=C2=A0=C2=A0 __writeonly=C2=A0=C2=A0=C2=A0 __unused -#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__) #define=C2=A0=C2=A0=C2=A0 __alloc_size(x)=C2=A0=C2=A0=C2=A0 __attribute__(= (__alloc_size__(x))) #define=C2=A0=C2=A0=C2=A0 __alloc_size2(n, x)=C2=A0=C2=A0=C2=A0 __attribut= e__((__alloc_size__(n, x))) -#else -#define=C2=A0=C2=A0=C2=A0 __alloc_size(x) -#define=C2=A0=C2=A0=C2=A0 __alloc_size2(n, x) -#endif -#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__) #define=C2=A0=C2=A0=C2=A0 __alloc_align(x)=C2=A0=C2=A0=C2=A0 __attribute__= ((__alloc_align__(x))) -#else -#define=C2=A0=C2=A0=C2=A0 __alloc_align(x) -#endif =20 /* =C2=A0 * Keywords added in C11. @@ -199,15 +190,6 @@ #define=C2=A0=C2=A0=C2=A0 _Alignof(x)=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0= __alignof(x) #endif =20 -#if !defined(__cplusplus) && !__has_extension(c_atomic) && \ -=C2=A0=C2=A0=C2=A0 !__has_extension(cxx_atomic) && !__GNUC_PREREQ__(4, 7) -/* - * No native support for _Atomic(). Place object in structure to prevent - * most forms of direct non-atomic access. - */ -#define=C2=A0=C2=A0=C2=A0 _Atomic(T)=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 = struct { T volatile __val; } -#endif - #if defined(__cplusplus) && __cplusplus >=3D 201103L #define=C2=A0=C2=A0=C2=A0 _Noreturn=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 [= [noreturn]] #else @@ -218,15 +200,6 @@ #if (defined(__cplusplus) && __cplusplus >=3D 201103L) || \ =C2=A0 =C2=A0 __has_extension(cxx_static_assert) #define=C2=A0=C2=A0=C2=A0 _Static_assert(x, y)=C2=A0=C2=A0=C2=A0 static_as= sert(x, y) -#elif __GNUC_PREREQ__(4,6) && !defined(__cplusplus) -/* Nothing, gcc 4.6 and higher has _Static_assert built-in */ -#elif defined(__COUNTER__) -#define=C2=A0=C2=A0=C2=A0 _Static_assert(x, y)=C2=A0=C2=A0=C2=A0 __Static_= assert(x, __COUNTER__) -#define=C2=A0=C2=A0=C2=A0 __Static_assert(x, y)=C2=A0=C2=A0=C2=A0 ___Stati= c_assert(x, y) -#define=C2=A0=C2=A0=C2=A0 ___Static_assert(x, y)=C2=A0=C2=A0=C2=A0 typedef= char __assert_ ## y[(x) ? 1 : -1] \ -=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2= =A0 __unused -#else -#define=C2=A0=C2=A0=C2=A0 _Static_assert(x, y)=C2=A0=C2=A0=C2=A0 struct __= hack #endif #endif =20 @@ -276,7 +249,6 @@ =C2=A0 * void bar(int myArray[__min_size(10)]); =C2=A0 */ #if !defined(__cplusplus) && \ -=C2=A0 =C2=A0 (defined(__clang__) || __GNUC_PREREQ__(4, 6)) && \ =C2=A0 =C2=A0 (!defined(__STDC_VERSION__) || (__STDC_VERSION__ >=3D 199901)= ) #define __min_size(x)=C2=A0=C2=A0=C2=A0 static (x) #else @@ -302,17 +274,9 @@ #define=C2=A0=C2=A0=C2=A0 __result_use_or_ignore_check #endif /* !__clang__ */ =20 -#if __GNUC_PREREQ__(4, 1) #define=C2=A0=C2=A0=C2=A0 __returns_twice=C2=A0=C2=A0=C2=A0 __attribute__(= (__returns_twice__)) -#else -#define=C2=A0=C2=A0=C2=A0 __returns_twice -#endif =20 -#if __GNUC_PREREQ__(4, 6) || __has_builtin(__builtin_unreachable) #define=C2=A0=C2=A0=C2=A0 __unreachable()=C2=A0=C2=A0=C2=A0 __builtin_unre= achable() -#else -#define=C2=A0=C2=A0=C2=A0 __unreachable()=C2=A0=C2=A0=C2=A0 ((void)0) -#endif =20 #if !defined(__STRICT_ANSI__) || __STDC_VERSION__ >=3D 199901 #define=C2=A0=C2=A0=C2=A0 __LONG_LONG_SUPPORTED @@ -353,33 +317,15 @@ #define=C2=A0=C2=A0=C2=A0 __predict_true(exp)=C2=A0 =C2=A0 __builtin_expec= t((exp), 1) #define=C2=A0=C2=A0=C2=A0 __predict_false(exp)=C2=A0 =C2=A0 __builtin_expe= ct((exp), 0) =20 -#if __GNUC_PREREQ__(4, 0) #define=C2=A0=C2=A0=C2=A0 __null_sentinel=C2=A0=C2=A0=C2=A0 __attribute__(= (__sentinel__)) #define=C2=A0=C2=A0=C2=A0 __exported=C2=A0=C2=A0=C2=A0 __attribute__((__vi= sibility__("default"))) #define=C2=A0=C2=A0=C2=A0 __hidden=C2=A0=C2=A0=C2=A0 __attribute__((__visi= bility__("hidden"))) -#else -#define=C2=A0=C2=A0=C2=A0 __null_sentinel -#define=C2=A0=C2=A0=C2=A0 __exported -#define=C2=A0=C2=A0=C2=A0 __hidden -#endif =20 /* =C2=A0 * We define this here since , , and =C2=A0 * require it. =C2=A0 */ -#if __GNUC_PREREQ__(4, 1) #define=C2=A0=C2=A0=C2=A0 __offsetof(type, field)=C2=A0=C2=A0=C2=A0 __buil= tin_offsetof(type, field) -#else -#ifndef __cplusplus -#define=C2=A0=C2=A0=C2=A0 __offsetof(type, field) \ -=C2=A0=C2=A0=C2=A0 ((__size_t)(__uintptr_t)((const volatile void *)&((type= *)0)->field)) -#else -#define=C2=A0=C2=A0=C2=A0 __offsetof(type, field)=C2=A0=C2=A0=C2=A0 =C2=A0= =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 \ -=C2=A0 (__offsetof__ (reinterpret_cast <__size_t>=C2=A0=C2=A0=C2=A0 =C2=A0= =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 \ -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (&reinterpret_cast= =C2=A0=C2=A0=C2=A0 \ -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (static_cas= t (0)->field)))) -#endif -#endif #define=C2=A0=C2=A0=C2=A0 __rangeof(type, start, end) \ =C2=A0=C2=A0=C2=A0 (__offsetof(type, end) - __offsetof(type, start)) =20 =20 =20 ------=_Part_705509_2096953705.1719242645490 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
<= span style=3D"outline: none !important;">I do welcome the cleanup, of cours= e, just I would have defined GCC 4.2 as the breaking point instead of 5.0.<= /span>

Due basically to the licensing issues, GCC 4.2 became a natural referenc= e for GCC versions.  At some point there were vendors actually shippin= g FreeBSD with GCC 4.2, and it = was not a huge cost to keep GCC versions above 4.2 properly discriminated.<= /span>

But then you are= right that it doesn't really matter that much. At least the alloc_size att= ributes are only defined for the FORTIFY_SOURCE in some linux libc implemen= tation that I looked at. We define them unconditionally but I don't recall = them being useful.

Jus= t my $0.02.

Pedro.

=20
=20
On Sunday, June 23, 2024 at 06:45:42 PM GMT-5, Warn= er Losh <imp@bsdimp.com> wrote:


=20 =20
Indeed. But none of the ones that I removed are affected by this quirk= since they are true for clang all versions.

<= div>Warner

On Sat, Jun 22, 2024 at 12:47=E2=80=AFPM Pedro Giffun= i <pfg@freebsd.org> wrote:
It was long ago when I last touched this but FWIW = ...

clang used to report itself as GCC 4.2 and kept it's GCC extens= ion support level consistent with that version so these version numbers wer= e relevant.

Pedro.

=20
=20
On Thursday, June 20, 2024 at 09:41:34 PM GMT-5, Wa= rner Losh <imp@freebsd.org> wrote:


=20 =20
The branch main has been updated by i= mp:


commit d5c01e1124ffa4adb2513e7e8d708d7072d= bfc75
Author:    Warner= Losh <imp@FreeBSD.org>
AuthorDate: 2024-06-20 23:03:15 +0000
Commit:    Warner Losh <imp@FreeBSD.= org>
CommitDate: 2024-06-21= 02:41:09 +0000

    cdefs.h: Remove pre gcc 5.0 support
   
    Reviewed by:        =     brooks
   = Differential Revision:  https://reviews.freebsd= .org/D45656
    Spon= sored by:          Netflix
---
sys/sys/cd= efs.h | 54 ------------------------------------------------------
1 file changed, 54 deletions(-)

= diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h
index a6ecdca5d8b9..43d179b82020 100644
--- a/sys/sys/cdefs.h
+++ b/sys/sys/cdefs.h
@@ = -164,18 +164,9 @@
#define &n= bsp;  __aligned(x)    __attribute__((__aligned__(x)))
#define    __sectio= n(x)    __attribute__((__section__(x)))
#define    __writeonly  &nbs= p; __unused
-#if __GNUC_PREREQ__(4= , 3) || __has_attribute(__alloc_size__)
#define    __alloc_size(x)    __attrib= ute__((__alloc_size__(x)))
#defin= e    __alloc_size2(n, x)    __attribute__((__= alloc_size__(n, x)))
-#else
-#define    __alloc_size(= x)
-#define    __al= loc_size2(n, x)
-#endif
-#if __GNUC_PREREQ__(4, 9) || __has_attrib= ute(__alloc_align__)
#define = ;   __alloc_align(x)    __attribute__((__alloc_ali= gn__(x)))
-#else
-#define    __alloc_align(x)
-#endif

/*
<= /div>
  * Keywords added in C11.
@@ -199,15 +190,6 @@
#define    _Alignof(x)     &nb= sp;  __alignof(x)
#endif

-#if !defined(__cplusplus) && !__has_extension(c_atomic) &= ;& \
-    !__ha= s_extension(cxx_atomic) && !__GNUC_PREREQ__(4, 7)
-/*
- * No= native support for _Atomic(). Place object in structure to prevent
- * most forms of direct non-atomic acces= s.
- */
-#define    _Atomic(T)    &nbs= p;   struct { T volatile __val; }
-#endif
-
#if defined(__cplusplus) && __cplusplus= >=3D 201103L
#define &nb= sp;  _Noreturn        [[noreturn]]
#else
@@ -218,15 +200,6 @@
#if= (defined(__cplusplus) && __cplusplus >=3D 201103L) || \
    __has_extension(cxx_static= _assert)
#define   = ; _Static_assert(x, y)    static_assert(x, y)
-#elif __GNUC_PREREQ__(4,6) && !defined(= __cplusplus)
-/* Nothing, gcc 4.6 = and higher has _Static_assert built-in */
-#elif defined(__COUNTER__)
-#define    _Static_assert(x, y)    __Stat= ic_assert(x, __COUNTER__)
-#define=     __Static_assert(x, y)    ___Static_assert= (x, y)
-#define    = ___Static_assert(x, y)    typedef char __assert_ ## y[(x) ? = 1 : -1] \
-    &nbs= p;           __unused
-#else
-#define    _Static_assert(x, y)    struct _= _hack
#endif
#endif

@@ -276,7 +249,6 @@
  * void bar(int myArray[__min_size(10)]);
  */
#if !defined(__cplusplus) && \
-    (defined(__clang__) || __GNUC_PREREQ__(4= , 6)) && \
    = (!defined(__STDC_VERSION__) || (__STDC_VERSION__ >=3D 199901))
#define __min_size(x)    s= tatic (x)
#else
@@ -302,17 +274,9 @@
#define    __result_use_or_ignore_check
#endif /* !__clang__ */

-#if __G= NUC_PREREQ__(4, 1)
#define &= nbsp;  __returns_twice    __attribute__((__returns_twic= e__))
-#else
-#define    __returns_twice
-#endif

-#if __GNUC_PREREQ__(4, 6) ||= __has_builtin(__builtin_unreachable)
#define    __unreachable()    __builtin_= unreachable()
-#else
-#define    __unreachable() = ;   ((void)0)
-#endif

#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ >=3D 199901<= br clear=3D"none">
#define    __LONG_= LONG_SUPPORTED
@@ -353,33 +317,15 = @@
#define    __pr= edict_true(exp)    __builtin_expect((exp), 1)
=
#define    __predict_false(exp) = ;   __builtin_expect((exp), 0)

-#if __GNUC_PREREQ__(4, 0)
#define    __null_sen= tinel    __attribute__((__sentinel__))
#define    __exported   = __attribute__((__visibility__("default")))
#define    __hidden    __attribute= __((__visibility__("hidden")))
-#e= lse
-#define    __n= ull_sentinel
-#define  &= nbsp; __exported
-#define &nb= sp;  __hidden
-#endif

/*
  * We define this here= since <stddef.h>, <sys/queue.h>, and <sys/types.h>
  * require it.
=
  */
-= #if __GNUC_PREREQ__(4, 1)
#define=     __offsetof(type, field)    __builtin_off= setof(type, field)
-#else
-#ifndef __cplusplus
-#define    __offsetof(type, field) \
-    ((__size_t)(__ui= ntptr_t)((const volatile void *)&((type *)0)->field))
-#else
= -#define    __offsetof(type, field)     =                \
-  (__offsetof__ (reinterpret_ca= st <__size_t>           = \
-        &n= bsp;       (&reinterpret_cast <const volatile char &= amp;>    \
-&nbs= p;                 (static_cast<= type *> (0)->field))))
-#end= if
-#endif
#define    __rangeof(type, start, end) \<= br clear=3D"none">
    (__offsetof(ty= pe, end) - __offsetof(type, start))

------=_Part_705509_2096953705.1719242645490--