qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 00/11] qemu: use virtio linux headers in portable code
Date: Sun, 26 May 2013 21:37:47 +0300	[thread overview]
Message-ID: <20130526183747.GB3427@redhat.com> (raw)
In-Reply-To: <51A253C6.7060303@redhat.com>

On Sun, May 26, 2013 at 08:26:14PM +0200, Paolo Bonzini wrote:
> Il 26/05/2013 20:10, Michael S. Tsirkin ha scritto:
> > On Sun, May 26, 2013 at 07:00:58PM +0100, Peter Maydell wrote:
> >> On 26 May 2013 18:51, Michael S. Tsirkin <mst@redhat.com> wrote:
> >>> On Sun, May 26, 2013 at 04:43:57PM +0100, Peter Maydell wrote:
> >>>> This series breaks compilation on MacOSX:
> >>>>
> >>>>   CC    net/eth.o
> >>>> In file included from net/eth.c:18:
> >>>> In file included from /Users/pm215/src/qemu/include/net/eth.h:29:
> >>>> /Users/pm215/src/qemu/linux-headers/linux/if_ether.h:24:10: fatal
> >>>> error: 'linux/types.h' file not found
> >>>> #include <linux/types.h>
> >>>>          ^
> >>>> 1 error generated.
> >>>> make: *** [net/eth.o] Error 1
> >>
> >>> Could be a stale file in your tree ...
> >>> Did configure get re-run?
> >>> Could you post the config-host.mak file please?
> >>
> >> Configure did get rerun, but where are you expecting the header
> >> to pull linux/types.h from?  Your patchset adds files which include
> >> it but doesn't add any copy itself, so if you're not on a Linux
> >> host then it just doesn't exist...
> >>
> >> config-host.mak attached.
> >>
> >> thanks
> >> -- PMM
> > 
> > 
> > Ouch. Forgot to git-add them. Thanks.
> > 
> > I'll send a fixed version -
> > could you please try this patch on top?
> > 
> > 
> >     linux-stubs: linux/types.h
> >     
> >     This adds a directory with minimal stubs that
> >     make it possible to use some linux headers
> >     in qemu in a portable environment.
> >     
> >     Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > 
> > ---
> > 
> > diff --git a/linux-stubs/linux/types.h b/linux-stubs/linux/types.h
> > new file mode 100644
> > index 0000000..8642cbb
> > --- /dev/null
> > +++ b/linux-stubs/linux/types.h
> > @@ -0,0 +1,37 @@
> > +#ifndef STUBS_LINUX_TYPES_H
> > +#define STUBS_LINUX_TYPES_H
> > +
> > +#include <stdint.h>
> > +
> > +/*
> > + * Below are Linux-specific types that should never collide with
> > + * any application/library that wants linux/types.h.
> > + */
> > +
> > +typedef uint8_t __u8;
> > +typedef uint16_t __u16;
> > +typedef uint32_t __u32;
> > +typedef uint64_t __u64;
> > +
> > +#ifdef __CHECKER__
> > +#define __bitwise__ __attribute__((bitwise))
> > +#else
> > +#define __bitwise__
> > +#endif
> > +#ifdef __CHECK_ENDIAN__
> > +#define __bitwise __bitwise__
> > +#else
> > +#define __bitwise
> > +#endif
> > +
> > +typedef __u16 __bitwise __le16;
> > +typedef __u16 __bitwise __be16;
> > +typedef __u32 __bitwise __le32;
> > +typedef __u32 __bitwise __be32;
> > +typedef __u64 __bitwise __le64;
> > +typedef __u64 __bitwise __be64;
> > +
> > +typedef __u16 __bitwise __sum16;
> > +typedef __u32 __bitwise __wsum;
> > +
> 
> I don't like defining __-prefixed types.  Can we preprocess
> linux-headers to avoid usage of __u8/16/32/64, and to
> s,linux/types.h,stdint.h, ?
> 
> Paolo

Let's not be purists, and do the practical thing.

When I suggested this you didn't like it:
>> I can think of two ways:
>>     - strip linux/types.h in update_headers
>>     - add a stub linux/types.h for non linux platforms
>
>The latter, using stdint.h types, would be fine.

And now, I think it's cleaner to keep it as is.
Most likely, these specific __ types work fine, *if* we
see a problem we can think what's to be done.
In particular, there are __le/__be tags there which can
be useful to do static code analysis.

What's the worst case failure scanario?
Conflict with some system standard header on some
strange target OS, this results in a failed build,
and we go and try to fix it, almost surely with
ifndef around some of the stubs. Why worry now?

> > +#endif
> > 
> > 
> > 

  reply	other threads:[~2013-05-26 18:37 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-26 15:22 [Qemu-devel] [PATCH v2 00/11] qemu: use virtio linux headers in portable code Michael S. Tsirkin
2013-05-26 15:22 ` [Qemu-devel] [PATCH v2 01/11] make: pull in linux-headers on all platforms Michael S. Tsirkin
2013-05-26 15:22 ` [Qemu-devel] [PATCH v2 02/11] scripts/update-linux-headers.sh: add virtio Michael S. Tsirkin
2013-05-26 15:22 ` [Qemu-devel] [PATCH v2 03/11] virtio-9p: switch to linux-headers Michael S. Tsirkin
2013-05-26 15:23 ` [Qemu-devel] [PATCH v2 04/11] virtio-net, eth: use linux-headers Michael S. Tsirkin
2013-05-26 15:23 ` [Qemu-devel] [PATCH v2 05/11] virtio-blk: switch to linux-headers Michael S. Tsirkin
2013-05-26 15:23 ` [Qemu-devel] [PATCH v2 06/11] virtio-balloon: " Michael S. Tsirkin
2013-05-26 15:23 ` [Qemu-devel] [PATCH v2 07/11] virtio-rng: " Michael S. Tsirkin
2013-05-26 15:23 ` [Qemu-devel] [PATCH v2 08/11] virtio-console: " Michael S. Tsirkin
2013-05-26 15:23 ` [Qemu-devel] [PATCH v2 09/11] virtio: add virtio_ids from linux-headers Michael S. Tsirkin
2013-05-26 15:23 ` [Qemu-devel] [PATCH v2 10/11] virtio-pci: switch to linux-headers Michael S. Tsirkin
2013-05-26 15:23 ` [Qemu-devel] [PATCH v2 11/11] virtio: use ring structure from linux-headers Michael S. Tsirkin
2013-05-26 15:43 ` [Qemu-devel] [PATCH v2 00/11] qemu: use virtio linux headers in portable code Peter Maydell
2013-05-26 17:51   ` Michael S. Tsirkin
2013-05-26 18:00     ` Peter Maydell
2013-05-26 18:10       ` Michael S. Tsirkin
2013-05-26 18:26         ` Paolo Bonzini
2013-05-26 18:37           ` Michael S. Tsirkin [this message]
2013-05-26 18:53             ` Paolo Bonzini
2013-05-26 20:02               ` Michael S. Tsirkin
2013-05-26 20:20                 ` Paolo Bonzini
2013-05-26 20:49                   ` Anthony Liguori
2013-05-26 21:42                     ` Michael S. Tsirkin
2013-05-27  0:55                       ` Anthony Liguori
2013-05-27 15:02                         ` Michael S. Tsirkin
2013-05-27 16:14                           ` Anthony Liguori
2013-05-28  6:23                             ` Michael S. Tsirkin
2013-05-29  0:14                             ` Rusty Russell
2013-05-29 13:05                               ` Anthony Liguori
2013-05-29 14:09                                 ` Michael S. Tsirkin
2013-05-29 14:58                                   ` Anthony Liguori
2013-05-27 11:15                     ` Rusty Russell
2013-05-28  2:55                       ` Anthony Liguori
2013-05-29  0:17                         ` Rusty Russell
2013-05-29  5:17                       ` Bryan Venteicher
2013-05-27 10:19         ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130526183747.GB3427@redhat.com \
    --to=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).