[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 |