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 <m...@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 <m...@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

> +#endif
> 
> 
> 


Reply via email to