|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Xen reliance on non-standard GCC features
On Mon, 5 Jun 2023, Roberto Bagnara wrote:
> > > Here is a list of extensions that are documented in the GCC manual:
> >
> > I suppose that this list wasn't meant to be complete? The most
> > prominent example is probably asm().
>
> As far as I can tell the list was almost complete (I realize now
> that the use of the keyword __signed__ was omitted because
> investigation was not completed). But I am probably misunderstanding
> you.
We also make use of the following extensions (please correct me if I am
wrong and these are not extensions):
xen/include/xen/compiler.h:#define always_inline __inline__ __attribute__
((__always_inline__))
xen/include/xen/compiler.h:#define gnu_inline __inline__ __attribute__
((__gnu_inline__))
xen/include/xen/compiler.h:#define noinline __attribute__((__noinline__))
xen/include/xen/compiler.h:#define noreturn __attribute__((__noreturn__))
xen/include/xen/compiler.h:#define __packed __attribute__((__packed__))
xen/include/xen/compiler.h:#define __weak __attribute__((__weak__))
xen/include/xen/compiler.h:# define nocall
__attribute__((__error__("Nonstandard ABI")))
xen/include/xen/compiler.h:# define cf_check __attribute__((__cf_check__))
xen/include/xen/compiler.h:# define fallthrough
__attribute__((__fallthrough__))
xen/include/xen/compiler.h:#define __aligned(a) __attribute__((__aligned__(a)))
xen/include/xen/compiler.h:#define __attribute_pure__ __attribute__((__pure__))
xen/include/xen/compiler.h:#define __attribute_const__
__attribute__((__const__))
xen/include/xen/compiler.h:#define __transparent__
__attribute__((__transparent_union__))
xen/include/xen/compiler.h:#define __used __attribute__((__used__))
xen/include/xen/compiler.h:#define __maybe_unused __attribute__((__unused__))
xen/include/xen/compiler.h:#define __must_check
__attribute__((__warn_unused_result__))
xen/include/xen/compiler.h:#define __nonnull(...)
__attribute__((__nonnull__(__VA_ARGS__)))
It is possible that some of these don't show up in any of the relevant
code build as part of the minimal configuration for safety so you won't
see any errors/warnings in Eclair.
Also, some of these extensions are probably no longer necessary, such as
__gnu_inline__.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |