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
[-- Attachment #1 --]
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@freebsd.org> wrote:
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=d5c01e1124ffa4adb2513e7e8d708d7072dbfc75
commit d5c01e1124ffa4adb2513e7e8d708d7072dbfc75
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
Sponsored by: 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 __aligned(x) __attribute__((__aligned__(x)))
#define __section(x) __attribute__((__section__(x)))
#define __writeonly __unused
-#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__)
#define __alloc_size(x) __attribute__((__alloc_size__(x)))
#define __alloc_size2(n, x) __attribute__((__alloc_size__(n, x)))
-#else
-#define __alloc_size(x)
-#define __alloc_size2(n, x)
-#endif
-#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__)
#define __alloc_align(x) __attribute__((__alloc_align__(x)))
-#else
-#define __alloc_align(x)
-#endif
/*
* Keywords added in C11.
@@ -199,15 +190,6 @@
#define _Alignof(x) __alignof(x)
#endif
-#if !defined(__cplusplus) && !__has_extension(c_atomic) && \
- !__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 _Atomic(T) struct { T volatile __val; }
-#endif
-
#if defined(__cplusplus) && __cplusplus >= 201103L
#define _Noreturn [[noreturn]]
#else
@@ -218,15 +200,6 @@
#if (defined(__cplusplus) && __cplusplus >= 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) __Static_assert(x, __COUNTER__)
-#define __Static_assert(x, y) ___Static_assert(x, y)
-#define ___Static_assert(x, y) typedef char __assert_ ## y[(x) ? 1 : -1] \
- __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__ >= 199901))
#define __min_size(x) static (x)
#else
@@ -302,17 +274,9 @@
#define __result_use_or_ignore_check
#endif /* !__clang__ */
-#if __GNUC_PREREQ__(4, 1)
#define __returns_twice __attribute__((__returns_twice__))
-#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__ >= 199901
#define __LONG_LONG_SUPPORTED
@@ -353,33 +317,15 @@
#define __predict_true(exp) __builtin_expect((exp), 1)
#define __predict_false(exp) __builtin_expect((exp), 0)
-#if __GNUC_PREREQ__(4, 0)
#define __null_sentinel __attribute__((__sentinel__))
#define __exported __attribute__((__visibility__("default")))
#define __hidden __attribute__((__visibility__("hidden")))
-#else
-#define __null_sentinel
-#define __exported
-#define __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_offsetof(type, field)
-#else
-#ifndef __cplusplus
-#define __offsetof(type, field) \
- ((__size_t)(__uintptr_t)((const volatile void *)&((type *)0)->field))
-#else
-#define __offsetof(type, field) \
- (__offsetof__ (reinterpret_cast <__size_t> \
- (&reinterpret_cast <const volatile char &> \
- (static_cast<type *> (0)->field))))
-#endif
-#endif
#define __rangeof(type, start, end) \
(__offsetof(type, end) - __offsetof(type, start))
[-- Attachment #2 --]
<html><head></head><body><div class="ydp453a104cyahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div></div>
<div dir="ltr" data-setdir="false">It was long ago when I last touched this but FWIW ...<br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="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="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">Pedro.</div><div><br></div>
</div><div id="ydp3058622eyahoo_quoted_9708121018" class="ydp3058622eyahoo_quoted">
<div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
<div>
On Thursday, June 20, 2024 at 09:41:34 PM GMT-5, Warner Losh <imp@freebsd.org> wrote:
</div>
<div><br></div>
<div><br></div>
<div><div dir="ltr">The branch main has been updated by imp:<br></div><div dir="ltr"><br></div><div dir="ltr">URL: <a href="https://cgit.FreeBSD.org/src/commit/?id=d5c01e1124ffa4adb2513e7e8d708d7072dbfc75" rel="nofollow" target="_blank">https://cgit.FreeBSD.org/src/commit/?id=d5c01e1124ffa4adb2513e7e8d708d7072dbfc75</a><br></div><div dir="ltr"><br></div><div dir="ltr">commit d5c01e1124ffa4adb2513e7e8d708d7072dbfc75<br></div><div dir="ltr">Author: Warner Losh <<a href="mailto:imp@FreeBSD.org" rel="nofollow" target="_blank">imp@FreeBSD.org</a>><br></div><div dir="ltr">AuthorDate: 2024-06-20 23:03:15 +0000<br></div><div dir="ltr">Commit: Warner Losh <<a href="mailto:imp@FreeBSD.org" rel="nofollow" target="_blank">imp@FreeBSD.org</a>><br></div><div dir="ltr">CommitDate: 2024-06-21 02:41:09 +0000<br></div><div dir="ltr"><br></div><div dir="ltr"> cdefs.h: Remove pre gcc 5.0 support<br></div><div dir="ltr"> <br></div><div dir="ltr"> Reviewed by: brooks<br></div><div dir="ltr"> Differential Revision: <a href="https://reviews.freebsd.org/D45656" rel="nofollow" target="_blank">https://reviews.freebsd.org/D45656</a><br></div><div dir="ltr"> Sponsored by: Netflix<br></div><div dir="ltr">---<br></div><div dir="ltr"> sys/sys/cdefs.h | 54 ------------------------------------------------------<br></div><div dir="ltr"> 1 file changed, 54 deletions(-)<br></div><div dir="ltr"><br></div><div dir="ltr">diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h<br></div><div dir="ltr">index a6ecdca5d8b9..43d179b82020 100644<br></div><div dir="ltr">--- a/sys/sys/cdefs.h<br></div><div dir="ltr">+++ b/sys/sys/cdefs.h<br></div><div dir="ltr">@@ -164,18 +164,9 @@<br></div><div dir="ltr"> #define __aligned(x) __attribute__((__aligned__(x)))<br></div><div dir="ltr"> #define __section(x) __attribute__((__section__(x)))<br></div><div dir="ltr"> #define __writeonly __unused<br></div><div dir="ltr">-#if __GNUC_PREREQ__(4, 3) || __has_attribute(__alloc_size__)<br></div><div dir="ltr"> #define __alloc_size(x) __attribute__((__alloc_size__(x)))<br></div><div dir="ltr"> #define __alloc_size2(n, x) __attribute__((__alloc_size__(n, x)))<br></div><div dir="ltr">-#else<br></div><div dir="ltr">-#define __alloc_size(x)<br></div><div dir="ltr">-#define __alloc_size2(n, x)<br></div><div dir="ltr">-#endif<br></div><div dir="ltr">-#if __GNUC_PREREQ__(4, 9) || __has_attribute(__alloc_align__)<br></div><div dir="ltr"> #define __alloc_align(x) __attribute__((__alloc_align__(x)))<br></div><div dir="ltr">-#else<br></div><div dir="ltr">-#define __alloc_align(x)<br></div><div dir="ltr">-#endif<br></div><div dir="ltr"> <br></div><div dir="ltr"> /*<br></div><div dir="ltr"> * Keywords added in C11.<br></div><div dir="ltr">@@ -199,15 +190,6 @@<br></div><div dir="ltr"> #define _Alignof(x) __alignof(x)<br></div><div dir="ltr"> #endif<br></div><div dir="ltr"> <br></div><div dir="ltr">-#if !defined(__cplusplus) && !__has_extension(c_atomic) && \<br></div><div dir="ltr">- !__has_extension(cxx_atomic) && !__GNUC_PREREQ__(4, 7)<br></div><div dir="ltr">-/*<br></div><div dir="ltr">- * No native support for _Atomic(). Place object in structure to prevent<br></div><div dir="ltr">- * most forms of direct non-atomic access.<br></div><div dir="ltr">- */<br></div><div dir="ltr">-#define _Atomic(T) struct { T volatile __val; }<br></div><div dir="ltr">-#endif<br></div><div dir="ltr">-<br></div><div dir="ltr"> #if defined(__cplusplus) && __cplusplus >= 201103L<br></div><div dir="ltr"> #define _Noreturn [[noreturn]]<br></div><div dir="ltr"> #else<br></div><div dir="ltr">@@ -218,15 +200,6 @@<br></div><div dir="ltr"> #if (defined(__cplusplus) && __cplusplus >= 201103L) || \<br></div><div dir="ltr"> __has_extension(cxx_static_assert)<br></div><div dir="ltr"> #define _Static_assert(x, y) static_assert(x, y)<br></div><div dir="ltr">-#elif __GNUC_PREREQ__(4,6) && !defined(__cplusplus)<br></div><div dir="ltr">-/* Nothing, gcc 4.6 and higher has _Static_assert built-in */<br></div><div dir="ltr">-#elif defined(__COUNTER__)<br></div><div dir="ltr">-#define _Static_assert(x, y) __Static_assert(x, __COUNTER__)<br></div><div dir="ltr">-#define __Static_assert(x, y) ___Static_assert(x, y)<br></div><div dir="ltr">-#define ___Static_assert(x, y) typedef char __assert_ ## y[(x) ? 1 : -1] \<br></div><div dir="ltr">- __unused<br></div><div dir="ltr">-#else<br></div><div dir="ltr">-#define _Static_assert(x, y) struct __hack<br></div><div dir="ltr"> #endif<br></div><div dir="ltr"> #endif<br></div><div dir="ltr"> <br></div><div dir="ltr">@@ -276,7 +249,6 @@<br></div><div dir="ltr"> * void bar(int myArray[__min_size(10)]);<br></div><div dir="ltr"> */<br></div><div dir="ltr"> #if !defined(__cplusplus) && \<br></div><div dir="ltr">- (defined(__clang__) || __GNUC_PREREQ__(4, 6)) && \<br></div><div dir="ltr"> (!defined(__STDC_VERSION__) || (__STDC_VERSION__ >= 199901))<br></div><div dir="ltr"> #define __min_size(x) static (x)<br></div><div dir="ltr"> #else<br></div><div dir="ltr">@@ -302,17 +274,9 @@<br></div><div dir="ltr"> #define __result_use_or_ignore_check<br></div><div dir="ltr"> #endif /* !__clang__ */<br></div><div dir="ltr"> <br></div><div dir="ltr">-#if __GNUC_PREREQ__(4, 1)<br></div><div dir="ltr"> #define __returns_twice __attribute__((__returns_twice__))<br></div><div dir="ltr">-#else<br></div><div dir="ltr">-#define __returns_twice<br></div><div dir="ltr">-#endif<br></div><div dir="ltr"> <br></div><div dir="ltr">-#if __GNUC_PREREQ__(4, 6) || __has_builtin(__builtin_unreachable)<br></div><div dir="ltr"> #define __unreachable() __builtin_unreachable()<br></div><div dir="ltr">-#else<br></div><div dir="ltr">-#define __unreachable() ((void)0)<br></div><div dir="ltr">-#endif<br></div><div dir="ltr"> <br></div><div dir="ltr"> #if !defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901<br></div><div dir="ltr"> #define __LONG_LONG_SUPPORTED<br></div><div dir="ltr">@@ -353,33 +317,15 @@<br></div><div dir="ltr"> #define __predict_true(exp) __builtin_expect((exp), 1)<br></div><div dir="ltr"> #define __predict_false(exp) __builtin_expect((exp), 0)<br></div><div dir="ltr"> <br></div><div dir="ltr">-#if __GNUC_PREREQ__(4, 0)<br></div><div dir="ltr"> #define __null_sentinel __attribute__((__sentinel__))<br></div><div dir="ltr"> #define __exported __attribute__((__visibility__("default")))<br></div><div dir="ltr"> #define __hidden __attribute__((__visibility__("hidden")))<br></div><div dir="ltr">-#else<br></div><div dir="ltr">-#define __null_sentinel<br></div><div dir="ltr">-#define __exported<br></div><div dir="ltr">-#define __hidden<br></div><div dir="ltr">-#endif<br></div><div dir="ltr"> <br></div><div dir="ltr"> /*<br></div><div dir="ltr"> * We define this here since <stddef.h>, <sys/queue.h>, and <sys/types.h><br></div><div dir="ltr"> * require it.<br></div><div dir="ltr"> */<br></div><div dir="ltr">-#if __GNUC_PREREQ__(4, 1)<br></div><div dir="ltr"> #define __offsetof(type, field) __builtin_offsetof(type, field)<br></div><div dir="ltr">-#else<br></div><div dir="ltr">-#ifndef __cplusplus<br></div><div dir="ltr">-#define __offsetof(type, field) \<br></div><div dir="ltr">- ((__size_t)(__uintptr_t)((const volatile void *)&((type *)0)->field))<br></div><div dir="ltr">-#else<br></div><div dir="ltr">-#define __offsetof(type, field) \<br></div><div dir="ltr">- (__offsetof__ (reinterpret_cast <__size_t> \<br></div><div dir="ltr">- (&reinterpret_cast <const volatile char &> \<br></div><div dir="ltr">- (static_cast<type *> (0)->field))))<br></div><div dir="ltr">-#endif<br></div><div dir="ltr">-#endif<br></div><div dir="ltr"> #define __rangeof(type, start, end) \<br></div><div dir="ltr"> (__offsetof(type, end) - __offsetof(type, start))<br></div><div dir="ltr"> <br></div></div>
</div>
</div></body></html>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?111875645.165697.1719082066518>
