Re: git: d5c01e1124ff - main - cdefs.h: Remove pre gcc 5.0 support
Date: Sat, 22 Jun 2024 18:47:46 UTC
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))