On Thu, Jun 30, 2011 at 6:57 PM, Michael S. Tsirkin <m...@redhat.com> wrote: > Support build on rhel 5.X where we have syscall for eventfd but not > userspace wrapper. > > (cherry-picked from commit 9e3269181e9bc56feb43bcd4e8ce0b82cd543e65 > in qemu-kvm.git). > > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > --- > > Changes from v1: > checkpatch fix > address comments by agraf > verify we are on linux > > compat/sys/eventfd.h | 20 ++++++++++++++++++++ > configure | 6 ++++-- > 2 files changed, 24 insertions(+), 2 deletions(-) > create mode 100644 compat/sys/eventfd.h > > diff --git a/compat/sys/eventfd.h b/compat/sys/eventfd.h > new file mode 100644 > index 0000000..1801a5f > --- /dev/null > +++ b/compat/sys/eventfd.h
Since we have linux-headers directory now, the directory should be compat-headers. I'd also add 'linux' directory below that to avoid collisions, so the full path would be compat-headers/linux/sys/eventfd.h. > @@ -0,0 +1,20 @@ > +#ifndef _COMPAT_SYS_EVENTFD > +#define _COMPAT_SYS_EVENTFD > + > +#ifdef CONFIG_EVENTFD > + > +#ifndef __linux__ > +#error __linux__ is not defined: eventfd is only supported on linux > +#endif With the linux directory, this check wouldn't be needed. It's not incorrect and we could add more specific checks later (for example if SYS_eventfd is not defined). > + > +#include <unistd.h> > +#include <syscall.h> > + > +static inline int eventfd(int count, int flags) > +{ > + return syscall(SYS_eventfd, count, flags); > +} > + > +#endif > + > +#endif > diff --git a/configure b/configure > index 856b41e..6f7dd74 100755 > --- a/configure > +++ b/configure > @@ -822,7 +822,6 @@ esac > > [ -z "$guest_base" ] && guest_base="$host_guest_base" > > - > default_target_list="" > > # these targets are portable > @@ -891,6 +890,9 @@ sparc64-bsd-user \ > " > fi > > +#compat headers > +QEMU_CFLAGS="$QEMU_CFLAGS -idirafter $source_path/compat" Please use $source_path/compat-headers/$targetos/. > + > if test x"$show_help" = x"yes" ; then > cat << EOF > > @@ -2122,7 +2124,7 @@ int main(void) > return 0; > } > EOF > -if compile_prog "" "" ; then > +if compile_prog "-DCONFIG_EVENTFD" "" ; then > eventfd=yes > fi > > -- > 1.7.5.53.gc233e >