Re: git: 67d1a1cd9e77 - main - cdefs.h: Remove support for pre gcc 4.0
Date: Mon, 01 Jul 2024 21:53:09 UTC
On 6/20/24 7:41 PM, Warner Losh wrote: > The branch main has been updated by imp: > > URL: https://cgit.FreeBSD.org/src/commit/?id=67d1a1cd9e772e2ef94003579f4fbc271d38be7d > > commit 67d1a1cd9e772e2ef94003579f4fbc271d38be7d > Author: Warner Losh <imp@FreeBSD.org> > AuthorDate: 2024-06-20 23:02:56 +0000 > Commit: Warner Losh <imp@FreeBSD.org> > CommitDate: 2024-06-21 02:41:08 +0000 > > cdefs.h: Remove support for pre gcc 4.0 > > All supported compilers support the gcc 3 attribute extensions. Remove > the #else clauses for this. Also, latter-day pcc compilers also define > __GNUC__, so there's not need to also test for __PCC__. > > Reviewed by: brooks > Differential Revision: https://reviews.freebsd.org/D45654 > Sponsored by: Netflix > --- > sys/sys/cdefs.h | 42 ++++-------------------------------------- > 1 file changed, 4 insertions(+), 38 deletions(-) > > diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h > index 88019819eb35..a6ecdca5d8b9 100644 > --- a/sys/sys/cdefs.h > +++ b/sys/sys/cdefs.h > @@ -408,15 +389,10 @@ > * assign pointer x to a local variable, to check that its type is > * compatible with member m. > */ > -#if __GNUC_PREREQ__(3, 1) > #define __containerof(x, s, m) ({ \ > const volatile __typeof(((s *)0)->m) *__x = (x); \ > __DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\ > }) > -#else > -#define __containerof(x, s, m) \ > - __DEQUALIFY(s *, (const volatile char *)(x) - __offsetof(s, m)) > -#endif > > /* > * Compiler-dependent macros to declare that functions take printf-like > @@ -434,14 +410,8 @@ > #define __strftimelike(fmtarg, firstvararg) \ > __attribute__((__format__ (__strftime__, fmtarg, firstvararg))) > > -/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */ > -#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 300001 && \ > - defined(__GNUC__) > #define __printf0like(fmtarg, firstvararg) \ > __attribute__((__format__ (__printf0__, fmtarg, firstvararg))) > -#else > -#define __printf0like(fmtarg, firstvararg) > -#endif Does this still work with external GCC? I didn't think printf0 was supported by external GCC (or maybe I had to readd it in the port and that's what I remember). Ah, yes, printf0 is a local patch in the devel/freebsd-gccX ports, but is not available in stock GCC (e.g. lang/gcc does not support it). -- John Baldwin