On Thu, Aug 25, 2011 at 3:51 PM, Lluís <xscr...@gmx.net> wrote: > Routines using the QEMU_WEAK attribute can have a default implementation that > can be later overriden just by re-implementing it.
Nack: weak attributes are only available for ELF and a.out. > Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu> > --- > compiler.h | 13 ++++++++++++- > 1 files changed, 12 insertions(+), 1 deletions(-) > > diff --git a/compiler.h b/compiler.h > index 9af5dc6..bc06760 100644 > --- a/compiler.h > +++ b/compiler.h > @@ -12,7 +12,7 @@ > #define QEMU_WARN_UNUSED_RESULT > #endif > > -#define QEMU_BUILD_BUG_ON(x) \ > +#define QEMU_BUILD_BUG_ON(x) \ > typedef char qemu_build_bug_on__##__LINE__[(x)?-1:1]; > > #if defined __GNUC__ > @@ -31,4 +31,15 @@ > #define GCC_FMT_ATTR(n, m) > #endif > > +/* Routine attribute to provide default (overridable) implementations. > + * > + * The code providing the default implementation must define > QEMU_WEAK_DEFAULT > + * before including this file. > + */ > +#if !defined(QEMU_WEAK_DEFAULT) > +#define QEMU_WEAK > +#else > +#define QEMU_WEAK __attribute__((weak)) > +#endif > + > #endif /* COMPILER_H */ > > >