[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Xen reliance on non-standard GCC features
On 05.06.2023 23:39, Stefano Stabellini wrote: > 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__. gnu_inline was already noticed as in use - see bsearch() and sort(). Iirc Andrew in particular wants it used in further places. Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |