Patchwork Fix libfdt warnings on Darwin

login
register
mail settings
Submitter Andreas Färber
Date May 28, 2011, 2:01 p.m.
Message ID <1306591272-25851-1-git-send-email-andreas.faerber@web.de>
Download mbox | patch
Permalink /patch/97797/
State New
Headers show

Comments

Andreas Färber - May 28, 2011, 2:01 p.m.
Building with libfdt results in the following warnings on Mac OS X:

  CC    ppc-softmmu/device_tree.o
In file included from /Users/andreas/QEMU/latest64/include/libfdt.h:54,
                 from /Users/andreas/QEMU/qemu/device_tree.c:26:
/Users/andreas/QEMU/qemu/libfdt_env.h:25:20: warning: endian.h: No such file or directory
/Users/andreas/QEMU/qemu/libfdt_env.h:26:22: warning: byteswap.h: No such file or directory
/Users/andreas/QEMU/qemu/libfdt_env.h:28:5: warning: "__BYTE_ORDER" is not defined
/Users/andreas/QEMU/qemu/libfdt_env.h:28:21: warning: "__BIG_ENDIAN" is not defined

Since QEMU's copy of libfdt_env.h only uses bswap_32() and bswap_64(),
let QEMU's bswap.h take care of the headers and use its endianness define.

Cc: Hollis Blanchard <hollis@penguinppc.org>
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
---
 Tested on Darwin/ppc64 host.
 
 libfdt_env.h |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)
Alexander Graf - May 28, 2011, 2:03 p.m.
On 28.05.2011, at 16:01, Andreas Färber wrote:

> Building with libfdt results in the following warnings on Mac OS X:
> 
>  CC    ppc-softmmu/device_tree.o
> In file included from /Users/andreas/QEMU/latest64/include/libfdt.h:54,
>                 from /Users/andreas/QEMU/qemu/device_tree.c:26:
> /Users/andreas/QEMU/qemu/libfdt_env.h:25:20: warning: endian.h: No such file or directory
> /Users/andreas/QEMU/qemu/libfdt_env.h:26:22: warning: byteswap.h: No such file or directory
> /Users/andreas/QEMU/qemu/libfdt_env.h:28:5: warning: "__BYTE_ORDER" is not defined
> /Users/andreas/QEMU/qemu/libfdt_env.h:28:21: warning: "__BIG_ENDIAN" is not defined
> 
> Since QEMU's copy of libfdt_env.h only uses bswap_32() and bswap_64(),
> let QEMU's bswap.h take care of the headers and use its endianness define.
> 
> Cc: Hollis Blanchard <hollis@penguinppc.org>
> Cc: Alexander Graf <agraf@suse.de>
> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
> ---
> Tested on Darwin/ppc64 host.
> 
> libfdt_env.h |    8 ++------
> 1 files changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/libfdt_env.h b/libfdt_env.h
> index ee0419f..90d7f3b 100644
> --- a/libfdt_env.h
> +++ b/libfdt_env.h
> @@ -19,13 +19,9 @@
> #ifndef _LIBFDT_ENV_H
> #define _LIBFDT_ENV_H
> 
> -#include <stddef.h>
> -#include <stdint.h>
> -#include <string.h>
> -#include <endian.h>
> -#include <byteswap.h>
> +#include "bswap.h"
> 
> -#if __BYTE_ORDER == __BIG_ENDIAN
> +#ifdef HOST_WORDS_BIGENDIAN

Hrm. Who defines HOST_WORDS_BIGENDIAN? Shouldn't you explicitly include that header file? Or at least have a sanity check that breaks compilation if neither BIG nor LITTLE endian are defined? :)


Alex
Andreas Färber - May 28, 2011, 2:16 p.m.
Am 28.05.2011 um 16:03 schrieb Alexander Graf:

> On 28.05.2011, at 16:01, Andreas Färber wrote:
>
>> diff --git a/libfdt_env.h b/libfdt_env.h
>> index ee0419f..90d7f3b 100644
>> --- a/libfdt_env.h
>> +++ b/libfdt_env.h
>> @@ -19,13 +19,9 @@
>> #ifndef _LIBFDT_ENV_H
>> #define _LIBFDT_ENV_H
>>
>> -#include <stddef.h>
>> -#include <stdint.h>
>> -#include <string.h>
>> -#include <endian.h>
>> -#include <byteswap.h>
>> +#include "bswap.h"
>>
>> -#if __BYTE_ORDER == __BIG_ENDIAN
>> +#ifdef HOST_WORDS_BIGENDIAN
>
> Hrm. Who defines HOST_WORDS_BIGENDIAN? Shouldn't you explicitly  
> include that header file?

bswap.h includes config-host.h, why duplicate that. Let's not make  
Stefan more work. :)

> Or at least have a sanity check that breaks compilation if neither  
> BIG nor LITTLE endian are defined? :)

We don't have generic defines for BIG or LITTLE endian, cf. original  
warning message. That's why I'm checking what we do have - configure  
knows best.

Andreas
Alexander Graf - May 28, 2011, 2:20 p.m.
On 28.05.2011, at 16:16, Andreas Färber wrote:

> Am 28.05.2011 um 16:03 schrieb Alexander Graf:
> 
>> On 28.05.2011, at 16:01, Andreas Färber wrote:
>> 
>>> diff --git a/libfdt_env.h b/libfdt_env.h
>>> index ee0419f..90d7f3b 100644
>>> --- a/libfdt_env.h
>>> +++ b/libfdt_env.h
>>> @@ -19,13 +19,9 @@
>>> #ifndef _LIBFDT_ENV_H
>>> #define _LIBFDT_ENV_H
>>> 
>>> -#include <stddef.h>
>>> -#include <stdint.h>
>>> -#include <string.h>
>>> -#include <endian.h>
>>> -#include <byteswap.h>
>>> +#include "bswap.h"
>>> 
>>> -#if __BYTE_ORDER == __BIG_ENDIAN
>>> +#ifdef HOST_WORDS_BIGENDIAN
>> 
>> Hrm. Who defines HOST_WORDS_BIGENDIAN? Shouldn't you explicitly include that header file?
> 
> bswap.h includes config-host.h, why duplicate that. Let's not make Stefan more work. :)

Ah, then everything's fine :). Please make sure to test it on a little endian (Linux) box as well :)

Acked-by: Alexander Graf <agraf@suse.de>


Alex
Andreas Färber - May 29, 2011, 1:33 p.m.
Am 28.05.2011 um 16:01 schrieb Andreas Färber:

> Building with libfdt results in the following warnings on Mac OS X:
>
>  CC    ppc-softmmu/device_tree.o
> In file included from /Users/andreas/QEMU/latest64/include/libfdt.h: 
> 54,
>                 from /Users/andreas/QEMU/qemu/device_tree.c:26:
> /Users/andreas/QEMU/qemu/libfdt_env.h:25:20: warning: endian.h: No  
> such file or directory
> /Users/andreas/QEMU/qemu/libfdt_env.h:26:22: warning: byteswap.h: No  
> such file or directory
> /Users/andreas/QEMU/qemu/libfdt_env.h:28:5: warning: "__BYTE_ORDER"  
> is not defined
> /Users/andreas/QEMU/qemu/libfdt_env.h:28:21: warning: "__BIG_ENDIAN"  
> is not defined
>
> Since QEMU's copy of libfdt_env.h only uses bswap_32() and bswap_64(),
> let QEMU's bswap.h take care of the headers and use its endianness  
> define.
>
> Cc: Hollis Blanchard <hollis@penguinppc.org>
> Cc: Alexander Graf <agraf@suse.de>
> Signed-off-by: Andreas Färber <andreas.faerber@web.de>
> ---
> Tested on Darwin/ppc64 host.

More specifically, compile-tested on Darwin/ppc64 and now on Linux/ 
armv7l host.

>
> libfdt_env.h |    8 ++------
> 1 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/libfdt_env.h b/libfdt_env.h
> index ee0419f..90d7f3b 100644
> --- a/libfdt_env.h
> +++ b/libfdt_env.h
> @@ -19,13 +19,9 @@
> #ifndef _LIBFDT_ENV_H
> #define _LIBFDT_ENV_H
>
> -#include <stddef.h>
> -#include <stdint.h>
> -#include <string.h>
> -#include <endian.h>
> -#include <byteswap.h>
> +#include "bswap.h"
>
> -#if __BYTE_ORDER == __BIG_ENDIAN
> +#ifdef HOST_WORDS_BIGENDIAN
> #define fdt32_to_cpu(x)		(x)
> #define cpu_to_fdt32(x)		(x)
> #define fdt64_to_cpu(x)		(x)
> -- 
> 1.7.3.4
>
>
Andreas Färber - June 1, 2011, 11:24 p.m.
Am 28.05.2011 um 16:20 schrieb Alexander Graf:

> On 28.05.2011, at 16:16, Andreas Färber wrote:
>
>> Am 28.05.2011 um 16:03 schrieb Alexander Graf:
>>
>>> On 28.05.2011, at 16:01, Andreas Färber wrote:
>>>
>>>> diff --git a/libfdt_env.h b/libfdt_env.h
>>>> index ee0419f..90d7f3b 100644
>>>> --- a/libfdt_env.h
>>>> +++ b/libfdt_env.h
>>>> @@ -19,13 +19,9 @@
>>>> #ifndef _LIBFDT_ENV_H
>>>> #define _LIBFDT_ENV_H
>>>>
>>>> -#include <stddef.h>
>>>> -#include <stdint.h>
>>>> -#include <string.h>
>>>> -#include <endian.h>
>>>> -#include <byteswap.h>
>>>> +#include "bswap.h"
>>>>
>>>> -#if __BYTE_ORDER == __BIG_ENDIAN
>>>> +#ifdef HOST_WORDS_BIGENDIAN
>>>
>>> Hrm. Who defines HOST_WORDS_BIGENDIAN? Shouldn't you explicitly  
>>> include that header file?
>>
>> bswap.h includes config-host.h, why duplicate that. Let's not make  
>> Stefan more work. :)
>
> Ah, then everything's fine :). Please make sure to test it on a  
> little endian (Linux) box as well :)
>
> Acked-by: Alexander Graf <agraf@suse.de>

Thanks, applied to cocoa branch.

Andreas

Patch

diff --git a/libfdt_env.h b/libfdt_env.h
index ee0419f..90d7f3b 100644
--- a/libfdt_env.h
+++ b/libfdt_env.h
@@ -19,13 +19,9 @@ 
 #ifndef _LIBFDT_ENV_H
 #define _LIBFDT_ENV_H
 
-#include <stddef.h>
-#include <stdint.h>
-#include <string.h>
-#include <endian.h>
-#include <byteswap.h>
+#include "bswap.h"
 
-#if __BYTE_ORDER == __BIG_ENDIAN
+#ifdef HOST_WORDS_BIGENDIAN
 #define fdt32_to_cpu(x)		(x)
 #define cpu_to_fdt32(x)		(x)
 #define fdt64_to_cpu(x)		(x)