Date: Sat, 22 Jun 2024 18:47:46 +0000 (UTC) From: Pedro Giffuni <pfg@freebsd.org> To: "src-committers@freebsd.org" <src-committers@freebsd.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@freebsd.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@freebsd.org>, Warner Losh <imp@freebsd.org> Subject: Re: git: d5c01e1124ff - main - cdefs.h: Remove pre gcc 5.0 support Message-ID: <111875645.165697.1719082066518@mail.yahoo.com> In-Reply-To: <202406210241.45L2fQZA057110@gitrepo.freebsd.org> References: <202406210241.45L2fQZA057110@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_165696_1045442462.1719082066515 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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 <imp@freeb= sd.org> 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 <imp@FreeBSD.org> AuthorDate: 2024-06-20 23:03:15 +0000 Commit:=C2=A0 =C2=A0 Warner Losh <imp@FreeBSD.org> 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 <stddef.h>, <sys/queue.h>, and <sys/type= s.h> =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= <const volatile char &>=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<type *> (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 ------=_Part_165696_1045442462.1719082066515 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <html><head></head><body><div class=3D"ydp453a104cyahoo-style-wrap" style= =3D"font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px= ;"><div></div> <div dir=3D"ltr" data-setdir=3D"false">It was long ago when I last = touched this but FWIW ...<br></div><div dir=3D"ltr" data-setdir=3D"false"><= br></div><div dir=3D"ltr" data-setdir=3D"false">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.</div><div dir=3D"ltr" data-= setdir=3D"false"><br></div><div dir=3D"ltr" data-setdir=3D"false">Pedro.</d= iv><div><br></div> =20 </div><div id=3D"ydp3058622eyahoo_quoted_9708121018" class=3D"ydp30= 58622eyahoo_quoted"> <div style=3D"font-family:'Helvetica Neue', Helvetica, Arial, s= ans-serif;font-size:13px;color:#26282a;"> =20 <div> On Thursday, June 20, 2024 at 09:41:34 PM GMT-5, Wa= rner Losh <imp@freebsd.org> wrote: </div> <div><br></div> <div><br></div> =20 =20 <div><div dir=3D"ltr">The branch main has been updated by i= mp:<br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr">URL: <a href=3D"ht= tps://cgit.FreeBSD.org/src/commit/?id=3Dd5c01e1124ffa4adb2513e7e8d708d7072d= bfc75" rel=3D"nofollow" target=3D"_blank">https://cgit.FreeBSD.org/src/comm= it/?id=3Dd5c01e1124ffa4adb2513e7e8d708d7072dbfc75</a><br></div><div dir=3D"= ltr"><br></div><div dir=3D"ltr">commit d5c01e1124ffa4adb2513e7e8d708d7072db= fc75<br></div><div dir=3D"ltr">Author: Warner Losh <<a hre= f=3D"mailto:imp@FreeBSD.org" rel=3D"nofollow" target=3D"_blank">imp@FreeBSD= .org</a>><br></div><div dir=3D"ltr">AuthorDate: 2024-06-20 23:03:15 +000= 0<br></div><div dir=3D"ltr">Commit: Warner Losh <<a href= =3D"mailto:imp@FreeBSD.org" rel=3D"nofollow" target=3D"_blank">imp@FreeBSD.= org</a>><br></div><div dir=3D"ltr">CommitDate: 2024-06-21 02:41:09 +0000= <br></div><div dir=3D"ltr"><br></div><div dir=3D"ltr"> cdefs.h= : Remove pre gcc 5.0 support<br></div><div dir=3D"ltr"> <br></= div><div dir=3D"ltr"> Reviewed by: = brooks<br></div><div dir=3D"ltr"> Differential R= evision: <a href=3D"https://reviews.freebsd.org/D45656" rel=3D"nofoll= ow" target=3D"_blank">https://reviews.freebsd.org/D45656</a><br></div><div = dir=3D"ltr"> Sponsored by: = Netflix<br></div><div dir=3D"ltr">---<br></div><div dir=3D"ltr"> sys/sys/cd= efs.h | 54 ------------------------------------------------------<br></div>= <div dir=3D"ltr"> 1 file changed, 54 deletions(-)<br></div><div dir=3D"ltr"= ><br></div><div dir=3D"ltr">diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h<= br></div><div dir=3D"ltr">index a6ecdca5d8b9..43d179b82020 100644<br></div>= <div dir=3D"ltr">--- a/sys/sys/cdefs.h<br></div><div dir=3D"ltr">+++ b/sys/= sys/cdefs.h<br></div><div dir=3D"ltr">@@ -164,18 +164,9 @@<br></div><div di= r=3D"ltr"> #define __aligned(x) __attri= bute__((__aligned__(x)))<br></div><div dir=3D"ltr"> #define &nbs= p; __section(x) __attribute__((__section__(x)))<br></div>= <div dir=3D"ltr"> #define __writeonly _= _unused<br></div><div dir=3D"ltr">-#if __GNUC_PREREQ__(4, 3) || __has_attri= bute(__alloc_size__)<br></div><div dir=3D"ltr"> #define _= _alloc_size(x) __attribute__((__alloc_size__(x)))<br></di= v><div dir=3D"ltr"> #define __alloc_size2(n, x) &nbs= p; __attribute__((__alloc_size__(n, x)))<br></div><div dir=3D"ltr">-#= else<br></div><div dir=3D"ltr">-#define __alloc_size(x)<b= r></div><div dir=3D"ltr">-#define __alloc_size2(n, x)<br>= </div><div dir=3D"ltr">-#endif<br></div><div dir=3D"ltr">-#if __GNUC_PREREQ= __(4, 9) || __has_attribute(__alloc_align__)<br></div><div dir=3D"ltr"> #de= fine __alloc_align(x) __attribute__((__= alloc_align__(x)))<br></div><div dir=3D"ltr">-#else<br></div><div dir=3D"lt= r">-#define __alloc_align(x)<br></div><div dir=3D"ltr">-#= endif<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr"> /*<br></div><d= iv dir=3D"ltr"> * Keywords added in C11.<br></div><div dir=3D"ltr">@@= -199,15 +190,6 @@<br></div><div dir=3D"ltr"> #define _Al= ignof(x) __alignof(x)<br></div><div di= r=3D"ltr"> #endif<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr">-#i= f !defined(__cplusplus) && !__has_extension(c_atomic) && \<= br></div><div dir=3D"ltr">- !__has_extension(cxx_atomic) = && !__GNUC_PREREQ__(4, 7)<br></div><div dir=3D"ltr">-/*<br></div><d= iv dir=3D"ltr">- * No native support for _Atomic(). Place object in structu= re to prevent<br></div><div dir=3D"ltr">- * most forms of direct non-atomic= access.<br></div><div dir=3D"ltr">- */<br></div><div dir=3D"ltr">-#define&= nbsp; _Atomic(T) struct { = T volatile __val; }<br></div><div dir=3D"ltr">-#endif<br></div><div dir=3D"= ltr">-<br></div><div dir=3D"ltr"> #if defined(__cplusplus) && __cpl= usplus >=3D 201103L<br></div><div dir=3D"ltr"> #define = _Noreturn [[noreturn]]<br></div><div = dir=3D"ltr"> #else<br></div><div dir=3D"ltr">@@ -218,15 +200,6 @@<br></div>= <div dir=3D"ltr"> #if (defined(__cplusplus) && __cplusplus >=3D = 201103L) || \<br></div><div dir=3D"ltr"> __has_extension(cxx_= static_assert)<br></div><div dir=3D"ltr"> #define _Static= _assert(x, y) static_assert(x, y)<br></div><div dir=3D"lt= r">-#elif __GNUC_PREREQ__(4,6) && !defined(__cplusplus)<br></div><d= iv dir=3D"ltr">-/* Nothing, gcc 4.6 and higher has _Static_assert built-in = */<br></div><div dir=3D"ltr">-#elif defined(__COUNTER__)<br></div><div dir= =3D"ltr">-#define _Static_assert(x, y) = __Static_assert(x, __COUNTER__)<br></div><div dir=3D"ltr">-#define &nb= sp; __Static_assert(x, y) ___Static_assert(x, y)<br= ></div><div dir=3D"ltr">-#define ___Static_assert(x, y)&n= bsp; typedef char __assert_ ## y[(x) ? 1 : -1] \<br></div><div = dir=3D"ltr">-  = ; __unused<br></div><div dir=3D"ltr">-#else<br></div><div dir= =3D"ltr">-#define _Static_assert(x, y) = struct __hack<br></div><div dir=3D"ltr"> #endif<br></div><div dir=3D"ltr"> = #endif<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr">@@ -276,7 +249= ,6 @@<br></div><div dir=3D"ltr"> * void bar(int myArray[__min_size(10= )]);<br></div><div dir=3D"ltr"> */<br></div><div dir=3D"ltr"> #if !de= fined(__cplusplus) && \<br></div><div dir=3D"ltr">- (d= efined(__clang__) || __GNUC_PREREQ__(4, 6)) && \<br></div><div dir= =3D"ltr"> (!defined(__STDC_VERSION__) || (__STDC_VERSION__ &g= t;=3D 199901))<br></div><div dir=3D"ltr"> #define __min_size(x) = static (x)<br></div><div dir=3D"ltr"> #else<br></div><div dir=3D"ltr= ">@@ -302,17 +274,9 @@<br></div><div dir=3D"ltr"> #define = __result_use_or_ignore_check<br></div><div dir=3D"ltr"> #endif /* !__clang= __ */<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr">-#if __GNUC_PRE= REQ__(4, 1)<br></div><div dir=3D"ltr"> #define __returns_= twice __attribute__((__returns_twice__))<br></div><div di= r=3D"ltr">-#else<br></div><div dir=3D"ltr">-#define __ret= urns_twice<br></div><div dir=3D"ltr">-#endif<br></div><div dir=3D"ltr"> <br= ></div><div dir=3D"ltr">-#if __GNUC_PREREQ__(4, 6) || __has_builtin(__built= in_unreachable)<br></div><div dir=3D"ltr"> #define __unre= achable() __builtin_unreachable()<br></div><div dir=3D"lt= r">-#else<br></div><div dir=3D"ltr">-#define __unreachabl= e() ((void)0)<br></div><div dir=3D"ltr">-#endif<br></div>= <div dir=3D"ltr"> <br></div><div dir=3D"ltr"> #if !defined(__STRICT_ANSI__)= || __STDC_VERSION__ >=3D 199901<br></div><div dir=3D"ltr"> #define = ; __LONG_LONG_SUPPORTED<br></div><div dir=3D"ltr">@@ -353,33 +3= 17,15 @@<br></div><div dir=3D"ltr"> #define __predict_tru= e(exp) __builtin_expect((exp), 1)<br></div><div dir=3D"ltr"> = #define __predict_false(exp) __builtin_expec= t((exp), 0)<br></div><div dir=3D"ltr"> <br></div><div dir=3D"ltr">-#if __GN= UC_PREREQ__(4, 0)<br></div><div dir=3D"ltr"> #define __nu= ll_sentinel __attribute__((__sentinel__))<br></div><div d= ir=3D"ltr"> #define __exported __attrib= ute__((__visibility__("default")))<br></div><div dir=3D"ltr"> #define = __hidden __attribute__((__visibility__("hidd= en")))<br></div><div dir=3D"ltr">-#else<br></div><div dir=3D"ltr">-#define&= nbsp; __null_sentinel<br></div><div dir=3D"ltr">-#define &= nbsp; __exported<br></div><div dir=3D"ltr">-#define = __hidden<br></div><div dir=3D"ltr">-#endif<br></div><div dir=3D"ltr"> <br>= </div><div dir=3D"ltr"> /*<br></div><div dir=3D"ltr"> * We define thi= s here since <stddef.h>, <sys/queue.h>, and <sys/types.h>= <br></div><div dir=3D"ltr"> * require it.<br></div><div dir=3D"ltr">&= nbsp; */<br></div><div dir=3D"ltr">-#if __GNUC_PREREQ__(4, 1)<br></div><div= dir=3D"ltr"> #define __offsetof(type, field) = __builtin_offsetof(type, field)<br></div><div dir=3D"ltr">-#else<br= ></div><div dir=3D"ltr">-#ifndef __cplusplus<br></div><div dir=3D"ltr">-#de= fine __offsetof(type, field) \<br></div><div dir=3D"ltr">= - ((__size_t)(__uintptr_t)((const volatile void *)&((= type *)0)->field))<br></div><div dir=3D"ltr">-#else<br></div><div dir=3D= "ltr">-#define __offsetof(type, field) = = \<br></div><div dir=3D"ltr">- (__offsetof__ (reinterpret_cast <__= size_t> \<br></d= iv><div dir=3D"ltr">-  = ; (&reinterpret_cast <const volatile char &> &nbs= p; \<br></div><div dir=3D"ltr">- &= nbsp; (static_cast<type *> (0)->field))))<br></div><= div dir=3D"ltr">-#endif<br></div><div dir=3D"ltr">-#endif<br></div><div dir= =3D"ltr"> #define __rangeof(type, start, end) \<br></div>= <div dir=3D"ltr"> (__offsetof(type, end) - __offsetof(ty= pe, start))<br></div><div dir=3D"ltr"> <br></div></div> </div> </div></body></html> ------=_Part_165696_1045442462.1719082066515--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?111875645.165697.1719082066518>