Crazy patches (Nightmare of <stdint.h>)
Subsystems (13)
cover Crazy patches (Nightmare of <stdint.h>)
Commit 0d296cc2d3b (Provide option to avoid defining a custome version of uintptr_t) and commit 4166ecb247 (Add some standard headers external code might need) made a horrible decision.
I raised a flag in the following threads:
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/203954
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/198550/focus=205880
It looks like Simon is not understanding me. Nor does anybody else have any interest in this topic.
This series is here to show what will happen next
and how horrible it is.
Masahiro Yamada (7):
types.h: define (u)int8_t, (u)int16_t, (u)int32_t based on compiler
info (MAD)
types.h: define s8, s16, s32, s64, u8, u16, u32, u64 based on compiler
info (MAD)
types: defined __s8, __16, __s32, __s64, __u8, __u16, __u32, __u64
based on compiler info (MAD)
Check if compiler-provided <stdint.h> and <inttypes.h> are available
if CONFIG_USE_STDINT=y (MAD)
Replace "llx" with PRIx64 to fix warnings on sandbox (MAD) Use PRIx32 etc. to print out 32bit-width variable (MAD) Make BITS_PER_LONG compiler-dependent (MAD)
Makefile | 2 +- arch/arc/include/asm/types.h | 34 +++++ arch/arm/include/asm/types.h | 37 +++++ arch/avr32/include/asm/types.h | 36 +++++ arch/blackfin/include/asm/types.h | 36 +++++ arch/m68k/include/asm/types.h | 37 +++++ arch/microblaze/include/asm/types.h | 36 +++++ arch/mips/include/asm/types.h | 36 +++++ arch/nds32/include/asm/types.h | 36 ++++- arch/nios2/include/asm/types.h | 35 +++++ arch/openrisc/include/asm/types.h | 35 +++++ arch/powerpc/include/asm/types.h | 36 +++++ arch/sandbox/include/asm/types.h | 34 +++++ arch/sh/include/asm/types.h | 35 +++++ arch/sparc/include/asm/types.h | 35 +++++ arch/x86/include/asm/types.h | 35 +++++ common/fdt_support.c | 2 +- config.mk | 12 ++ disk/part_efi.c | 12 +- fs/fat/fat.c | 35 ++--- include/inttypes.h | 287 ------------------------------------ include/linux/types.h | 15 ++ include/u-boot/zlib.h | 2 +- scripts/gcc-have-stdint.sh | 21 +++ 24 files changed, 607 insertions(+), 314 deletions(-) delete mode 100644 include/inttypes.h create mode 100755 scripts/gcc-have-stdint.sh
Signature · 1 line
1.9.1
PATCH 1/7 types.h: define (u)int8_t, (u)int16_t, (u)int32_t based on compiler info (MAD)
The intent of this series is to show the nasty problems introduced by <stdint.h>.
Simon and I are already discussing this in the following thread:
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/203954
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/198550/focus=205880
-----
Commit 0d296cc2d3b8 (Provide option to avoid defining a custom version of uintptr_t.) introduced CONFIG_USE_STDINT. If it is enabled, <stdint.h> is included and uint64_t, u_int64_t, int64_t are defined based on the compiler-provided information. While, inconsistently, that commit left uint_{8,16,32}_t, u_int{8,16,32}t, int_{8,16,32}t to be hard-coded in include/linux/types.h.
This causes type conflicts between the typedefs defined in the compiler's <stdint.h> and the ones hard-coded in include/linux/types.h.
As you may know, 'uint32_t' is defined as 'unsigned long' in some compilers such as bare metal ARM toolchain, whereas it is defined as 'unsigned int' in kernel.org ones.
(This is also clearly mentioned in Linux's arch/arm/include/asm/types.h)
If you make a decision to use a compiler-provided <stdint.h>, we cannot hard-code the fixed-width types.
To avoid the type conflicts, we must make all of them compiler-dependent consistently.
You can reproduce this problem, for example, with a Linaro toolchain.
Visit "http://www.linaro.org/downloads/" and download "Bare-metal toolchain for Cortex-R/M and Cortex-A".
$ make USE_STDINT=1 CROSS_COMPILE=arm-none-eabi- omap4_panda_defconfig all
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
[snip]
CC lib/asm-offsets.s
In file included from /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint.h:5:0,
from include/compiler.h:117,
from include/image.h:19,
from include/common.h:82,
from lib/asm-offsets.c:15:
/opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint-gcc.h:40:24: error: conflicting types for 'int32_t'
In file included from include/common.h:21:0,
from lib/asm-offsets.c:15:
include/linux/types.h:99:17: note: previous declaration of 'int32_t' was here
In file included from /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint.h:5:0,
from include/compiler.h:117,
from include/image.h:19,
from include/common.h:82,
from lib/asm-offsets.c:15:
/opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint-gcc.h:52:25: error: conflicting types for 'uint32_t'
In file included from include/common.h:21:0,
from lib/asm-offsets.c:15:
include/linux/types.h:105:17: note: previous declaration of 'uint32_t' was here---
include/linux/types.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
include/linux/types.h +15 -0
@@ -91,18 +91,33 @@ typedef unsigned long ulong;#ifndef __BIT_TYPES_DEFINED__#define __BIT_TYPES_DEFINED__ +#if defined(CONFIG_USE_STDINT ) +typedef __UINT8_TYPE__ u_int8_t ; +typedef __INT8_TYPE__ int8_t ; +typedef __UINT16_TYPE__ u_int16_t ; +typedef __INT16_TYPE__ int16_t ; +typedef __UINT32_TYPE__ u_int32_t ; +typedef __INT32_TYPE__ int32_t ; +#else typedef __u8 u_int8_t ;typedef __s8 int8_t ;typedef __u16 u_int16_t ;typedef __s16 int16_t ;typedef __u32 u_int32_t ;typedef __s32 int32_t ; +#endif #endif /* !(__BIT_TYPES_DEFINED__) */ +#if defined(CONFIG_USE_STDINT ) +typedef __UINT8_TYPE__ uint8_t ; +typedef __UINT16_TYPE__ uint16_t ; +typedef __UINT32_TYPE__ uint32_t ; +#else typedef __u8 uint8_t ;typedef __u16 uint16_t ;typedef __u32 uint32_t ; +#endif #if defined(__GNUC__) && !defined(__STRICT_ANSI__) && \ (!defined(CONFIG_USE_STDINT ) || !defined(__INT64_TYPE__))
Signature · 1 line
1.9.1
PATCH 1/7 types.h: define (u)int8_t, (u)int16_t, (u)int32_t based on compiler info (MAD)
Hi Masahiro,
Quoted 6 lines · Masahiro Yamada
The intent of this series is to show the nasty problems introduced by <
stdint.h>.Simon and I are already discussing this in the following thread:
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/203954
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/198550/focus=205880
I'll reply on that thread but I will add a few comments on each patch as well.
Quoted 10 lines
-----Commit
0d296cc2d3b8(Provide option to avoid defining a custom version ofuintptr_t.) introducedCONFIG_USE_STDINT. If it is enabled, <stdint.h> is included anduint64_t,u_int64_t,int64_tare defined based on the compiler-provided information. While, inconsistently, that commit left uint_{8,16,32}_t, u_int{8,16,32}t, int_{8,16,32}t to be hard-coded ininclude/linux/types.h.
Quoted 7 lines
This causes type conflicts between the typedefs defined in the compiler's <
stdint.h> and the ones hard-coded ininclude/linux/types.h.As you may know, '
uint32_t' is defined as 'unsigned long' in some compilers such as bare metal ARM toolchain, whereas it is defined as 'unsigned int' in kernel.org ones.
(This is also clearly mentioned in Linux'sarch/arm/include/asm/types.h)
In that file, it actually redefines the types so that stdint.h can be included. Are you suggesting that we should follow the same route?
That suggests that Gabe's implementation is not correct, but not that the whole concept is wrong.
* As the typedefs for these types in 'stdint.h' are based on builtin defines
* supplied by GCC, we can tweak these to align with the kernel's idea of those
* types, so 'linux/types.h' and 'stdint.h' can be safely included from the same
* source file (provided that -ffreestanding is used).
Quoted 26 lines
If you make a decision to use a compiler-provided <
stdint.h>, we cannot hard-code the fixed-width types.
To avoid the type conflicts, we must make all of them compiler-dependent consistently.You can reproduce this problem, for example, with a Linaro toolchain.
Visit "http://www.linaro.org/downloads/" and download "Bare-metal toolchain for Cortex-R/M and Cortex-A".
$ make USE_STDINT=1 CROSS_COMPILE=arm-none-eabi- omap4_panda_defconfig all HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o [snip] CC lib/asm-offsets.s In file included from /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint.h:5:0, from include/compiler.h:117, from include/image.h:19, from include/common.h:82, from lib/asm-offsets.c:15: /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint-gcc.h:40:24: error: conflicting types for 'int32_t' In file included from include/common.h:21:0, from lib/asm-offsets.c:15: include/linux/types.h:99:17: note: previous declaration of 'int32_t' was here In file included from /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint.h:5:0,
Quoted 8 lines
from include/compiler.h:117,
from include/image.h:19,
from include/common.h:82,
from lib/asm-offsets.c:15:
/opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint-gcc.h:52:25: error: conflicting types for 'uint32_t'
In file included from include/common.h:21:0,
from lib/asm-offsets.c:15:
include/linux/types.h:105:17: note: previous declaration of 'uint32_t' was hereI suspect I have not tested this toolchain, so have not see this problem. Perhaps this compiler cannot support stdint.h?
In any case I don't think it is necessary to fiddle with the 8, 16, 32-bit types, so this patch is not needed.
Quoted 50 lines
Signed-off-by Masahiro Yamada <[email protected]>Cc Gabe Black <[email protected]>Cc Simon Glass <[email protected]>Cc Bill Richardson <[email protected]>Cc Tom Rini <[email protected]>---
include/linux/types.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+)include/linux/types.h +15
-1@@ -91,18 +91,33 @@ typedef unsigned long ulong;#ifndef __BIT_TYPES_DEFINED__#define __BIT_TYPES_DEFINED__ +#if defined(CONFIG_USE_STDINT ) +typedef __UINT8_TYPE__ u_int8_t ; +typedef __INT8_TYPE__ int8_t ; +typedef __UINT16_TYPE__ u_int16_t ; +typedef __INT16_TYPE__ int16_t ; +typedef __UINT32_TYPE__ u_int32_t ; +typedef __INT32_TYPE__ int32_t ; +#else typedef __u8 u_int8_t ;typedef __s8 int8_t ;typedef __u16 u_int16_t ;typedef __s16 int16_t ;typedef __u32 u_int32_t ;typedef __s32 int32_t ; +#endif #endif /* !(__BIT_TYPES_DEFINED__) */ +#if defined(CONFIG_USE_STDINT ) +typedef __UINT8_TYPE__ uint8_t ; +typedef __UINT16_TYPE__ uint16_t ; +typedef __UINT32_TYPE__ uint32_t ; +#else typedef __u8 uint8_t ;typedef __u16 uint16_t ;typedef __u32 uint32_t ; +#endif #if defined(__GNUC__) && !defined(__STRICT_ANSI__) && \ (!defined(CONFIG_USE_STDINT ) || !defined(__INT64_TYPE__)) --
Quoted 2 lines
1.9.1
Regards,
Simon
PATCH 1/7 types.h: define (u)int8_t, (u)int16_t, (u)int32_t based on compiler info (MAD)
Hi Simon,
Quoted 25 lines · On Mon, 22 Dec 2014 21:41:48 -0700 Simon Glass <[email protected]> wrote:
Hi Masahiro,
Quoted 6 lines · Masahiro Yamada
The intent of this series is to show the nasty problems introduced by <
stdint.h>.Simon and I are already discussing this in the following thread:
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/203954
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/198550/focus=205880I'll reply on that thread but I will add a few comments on each patch as well.
Quoted 13 lines
-----Commit
0d296cc2d3b8(Provide option to avoid defining a custom version ofuintptr_t.) introducedCONFIG_USE_STDINT. If it is enabled, <stdint.h> is included anduint64_t,u_int64_t,int64_tare defined based on the compiler-provided information. While, inconsistently, that commit left uint_{8,16,32}_t, u_int{8,16,32}t, int_{8,16,32}t to be hard-coded ininclude/linux/types.h.This causes type conflicts between the typedefs defined in the compiler's <
stdint.h> and the ones hard-coded ininclude/linux/types.h.
Quoted 7 lines
Quoted 4 lines
As you may know, '
uint32_t' is defined as 'unsigned long' in some compilers such as bare metal ARM toolchain, whereas it is defined as 'unsigned int' in kernel.org ones.
(This is also clearly mentioned in Linux'sarch/arm/include/asm/types.h)In that file, it actually redefines the types so that
stdint.hcan be included. Are you suggesting that we should follow the same route?
No.
What I wanted you to notice was the type conflicts. This matrix:
* int32_t uint32_t uintptr_t * bare metal GCC long unsigned long unsigned int * glibc GCC int unsigned int unsigned int * kernel int unsigned int unsigned long
Undefing __UINT32_TYPE__ etc. is an ugly workaround.
The best way is to avoid including <stdint.h>.
Quoted 7 lines
That suggests that Gabe's implementation is not correct, but not that the whole concept is wrong.
* As the typedefs for these types in '
stdint.h' are based on builtin defines
* supplied by GCC, we can tweak these to align with the kernel's idea of those
* types, so 'linux/types.h' and 'stdint.h' can be safely included from the same
* source file (provided that -ffreestanding is used).
Accoding to Documentation/arm/kernel_mode_neon.txt, the kernel deos not want to include <stdint.h>.
It wants to <arm_neon.h> but unfortunately <arm_neon.h> is including <stdint.h>.
That is the difference: it looks like you like to include <stdint.h>.
Quoted 35 lines
Quoted 26 lines
If you make a decision to use a compiler-provided <
stdint.h>, we cannot hard-code the fixed-width types.
To avoid the type conflicts, we must make all of them compiler-dependent consistently.You can reproduce this problem, for example, with a Linaro toolchain.
Visit "http://www.linaro.org/downloads/" and download "Bare-metal toolchain for Cortex-R/M and Cortex-A".
$ make USE_STDINT=1 CROSS_COMPILE=arm-none-eabi- omap4_panda_defconfig all HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o [snip] CC lib/asm-offsets.s In file included from /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint.h:5:0, from include/compiler.h:117, from include/image.h:19, from include/common.h:82, from lib/asm-offsets.c:15: /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint-gcc.h:40:24: error: conflicting types for 'int32_t' In file included from include/common.h:21:0, from lib/asm-offsets.c:15: include/linux/types.h:99:17: note: previous declaration of 'int32_t' was here In file included from /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint.h:5:0,Quoted 8 lines
from include/compiler.h:117, from include/image.h:19, from include/common.h:82, from lib/asm-offsets.c:15: /opt/gcc-arm-none-eabi-4_7-2013q1/bin/../lib/gcc/arm-none-eabi/4.7.3/include/stdint-gcc.h:52:25: error: conflicting types for 'uint32_t' In file included from include/common.h:21:0, from lib/asm-offsets.c:15: include/linux/types.h:105:17: note: previous declaration of 'uint32_t' was here
Quoted 2 lines
I suspect I have not tested this toolchain, so have not see this problem. Perhaps this compiler cannot support
stdint.h?
It does support stdint.h.
It is not the compiler's fault, but your and Gabe's fault.
Quoted 3 lines
In any case I don't think it is necessary to fiddle with the 8, 16, 32-bit types, so this patch is not needed.
As I wrote in another reply, please answer:
Why do you want to change the 64bit-types only?
Best Regards
Masahiro Yamada
PATCH 2/7 types.h: define s8, s16, s32, s64, u8, u16, u32, u64 based on compiler info (MAD)
In reply to Masahiro YamadaIf CONFIG_USE_STDINT is defined, (u)int_{8,16,32,64}_t are provided by <stdint.h>. s{8,16,32,64}, u{8,16,32,64} must be consistent with them.
For example, some compilers define "uint32_t" as "unsigned long" and some define it as "unsigned int". "u32" should have the compatible type with "uint32_t".
We cannot hard-code its definition when CONFIG_USE_STDINT is enabled. If we want to use <stdint.h>, it must be consistent everywhere.
---
arch/arc/include/asm/types.h | 14 ++++++++++++++ arch/arm/include/asm/types.h | 16 ++++++++++++++++ arch/avr32/include/asm/types.h | 16 ++++++++++++++++ arch/blackfin/include/asm/types.h | 16 ++++++++++++++++ arch/m68k/include/asm/types.h | 16 ++++++++++++++++ arch/microblaze/include/asm/types.h | 16 ++++++++++++++++ arch/mips/include/asm/types.h | 16 ++++++++++++++++ arch/nds32/include/asm/types.h | 16 ++++++++++++++++ arch/nios2/include/asm/types.h | 16 ++++++++++++++++ arch/openrisc/include/asm/types.h | 16 ++++++++++++++++ arch/powerpc/include/asm/types.h | 16 ++++++++++++++++ arch/sandbox/include/asm/types.h | 14 ++++++++++++++ arch/sh/include/asm/types.h | 16 ++++++++++++++++ arch/sparc/include/asm/types.h | 14 ++++++++++++++ arch/x86/include/asm/types.h | 14 ++++++++++++++ 15 files changed, 232 insertions(+)
arch/arc/include/asm/types.h +14 -0
@@ -31,6 +31,19 @@ typedef unsigned long long __u64;/* * These aren't exported outside the kernel to avoid name space clashes */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else typedef signed char s8 ;typedef unsigned char u8 ;
@@ -42,6 +55,7 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif #define BITS_PER_LONG 32
arch/arm/include/asm/types.h +16 -0
@@ -27,6 +27,20 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -39,6 +53,8 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif +#ifdef CONFIG_ARM64 #define BITS_PER_LONG 64#else /* CONFIG_ARM64 */
arch/avr32/include/asm/types.h +16 -0
@@ -39,6 +39,20 @@ __extension__ typedef unsigned long long __u64;#ifndef __ASSEMBLY__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else + typedef __signed__ char s8;typedef unsigned char u8 ;
@@ -51,6 +65,8 @@ typedef unsigned int u32;typedef __signed__ long long s64 ;typedef unsigned long long u64 ; +#endif +/* Dma addresses are 32-bits wide. */ typedef u32 dma_addr_t ;
arch/blackfin/include/asm/types.h +16 -0
@@ -44,6 +44,20 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -56,6 +70,8 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif +#define BITS_PER_LONG 32/* Dma addresses are 32-bits wide. */
arch/m68k/include/asm/types.h +16 -0
@@ -27,6 +27,20 @@ typedef struct {/* * These aren't exported outside the kernel to avoid name space clashes */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -39,6 +53,8 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif +#define BITS_PER_LONG 32/* DMA addresses are 32-bits wide */
arch/microblaze/include/asm/types.h +16 -0
@@ -35,6 +35,20 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -47,6 +61,8 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif +#define BITS_PER_LONG 32/* Dma addresses are 32-bits wide. */
arch/mips/include/asm/types.h +16 -0
@@ -46,6 +46,20 @@ typedef unsigned long long __u64;#ifndef __ASSEMBLY__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else + typedef __signed char s8;typedef unsigned char u8 ;
@@ -58,6 +72,8 @@ typedef unsigned int u32;typedef __signed__ long long s64 ;typedef unsigned long long u64 ; +#endif +#if (defined(CONFIG_HIGHMEM ) && defined(CONFIG_64BIT_PHYS_ADDR )) \ || defined(CONFIG_64BIT )typedef u64 dma_addr_t ;
arch/nds32/include/asm/types.h +16 -0
@@ -37,6 +37,20 @@ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -49,6 +63,8 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif +#define BITS_PER_LONG 32#include <stddef.h>
arch/nios2/include/asm/types.h +16 -0
@@ -35,6 +35,20 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -47,6 +61,8 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif +#define BITS_PER_LONG 32/* Dma addresses are 32-bits wide. */
arch/openrisc/include/asm/types.h +16 -0
@@ -41,6 +41,20 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -53,6 +67,8 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif +#define BITS_PER_LONG 32/* Dma addresses are 32-bits wide. */
arch/powerpc/include/asm/types.h +16 -0
@@ -27,6 +27,20 @@ typedef struct {/* * These aren't exported outside the kernel to avoid name space clashes */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -39,6 +53,8 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#endif +#define BITS_PER_LONG 32#ifdef CONFIG_PHYS_64BIT
arch/sandbox/include/asm/types.h +14 -0
@@ -33,6 +33,18 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -42,6 +54,8 @@ typedef unsigned short u16;typedef signed int s32 ;typedef unsigned int u32 ; +#endif +#if !defined(CONFIG_USE_STDINT ) || !defined(__INT64_TYPE__)typedef signed long long s64 ;typedef unsigned long long u64 ;
arch/sh/include/asm/types.h +16 -0
@@ -35,6 +35,20 @@ __extension__ typedef unsigned long long __u64;#ifndef __ASSEMBLY__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; + +#else typedef __signed__ char s8;typedef unsigned char u8 ;
@@ -48,6 +62,8 @@ typedef unsigned int u32;typedef __signed__ long long s64 ;typedef unsigned long long u64 ; +#endif +/* Dma addresses are 32-bits wide. */ typedef u32 dma_addr_t ;
arch/sparc/include/asm/types.h +14 -0
@@ -34,6 +34,20 @@ typedef struct {/* * These aren't exported outside the kernel to avoid name space clashes */ + +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +typedef __INT64_TYPE__ s64 ; +typedef __UINT64_TYPE__ u64 ; +typedef signed char s8 ;typedef unsigned char u8 ;
arch/x86/include/asm/types.h +14 -0
@@ -27,6 +27,18 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ s8 ; +typedef __UINT8_TYPE__ u8 ; + +typedef __INT16_TYPE__ s16 ; +typedef __UINT16_TYPE__ u16 ; + +typedef __INT32_TYPE__ s32 ; +typedef __UINT32_TYPE__ u32 ; + +#else +typedef signed char s8 ;typedef unsigned char u8 ;
@@ -36,6 +48,8 @@ typedef unsigned short u16;typedef signed int s32 ;typedef unsigned int u32 ; +#endif +#if !defined(CONFIG_USE_STDINT ) || !defined(__INT64_TYPE__)typedef signed long long s64 ;typedef unsigned long long u64 ;
Signature · 1 line
1.9.1
PATCH 3/7 types: defined __s8, __16, __s32, __s64, __u8, __u16, __u32, __u64 based on compiler info (MAD)
In reply to Masahiro YamadaFor the same reason as the last commit, keep the typedefs of __s{8,16,32,64} and __u{8,16,32,64} compatible with other types.
---
arch/arc/include/asm/types.h | 16 ++++++++++++++++ arch/arm/include/asm/types.h | 17 +++++++++++++++++ arch/avr32/include/asm/types.h | 16 ++++++++++++++++ arch/blackfin/include/asm/types.h | 16 ++++++++++++++++ arch/m68k/include/asm/types.h | 17 +++++++++++++++++ arch/microblaze/include/asm/types.h | 16 ++++++++++++++++ arch/mips/include/asm/types.h | 16 ++++++++++++++++ arch/nds32/include/asm/types.h | 16 +++++++++++++++- arch/nios2/include/asm/types.h | 15 +++++++++++++++ arch/openrisc/include/asm/types.h | 15 +++++++++++++++ arch/powerpc/include/asm/types.h | 16 ++++++++++++++++ arch/sandbox/include/asm/types.h | 16 ++++++++++++++++ arch/sh/include/asm/types.h | 15 +++++++++++++++ arch/sparc/include/asm/types.h | 17 +++++++++++++++++ arch/x86/include/asm/types.h | 17 +++++++++++++++++ 15 files changed, 240 insertions(+), 1 deletion(-)
arch/arc/include/asm/types.h +16 -0
@@ -14,6 +14,21 @@ typedef unsigned short umode_t;* header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else + typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -27,6 +42,7 @@ typedef unsigned int __u32;typedef __signed__ long long __s64 ;typedef unsigned long long __u64 ;#endif +#endif /* * These aren't exported outside the kernel to avoid name space clashes
arch/arm/include/asm/types.h +17 -0
@@ -8,6 +8,21 @@ typedef unsigned short umode_t;* header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else + typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -22,6 +37,8 @@ __extension__ typedef __signed__ long long __s64; __extension__typedef unsigned long long __u64 ;#endif +#endif +/* * These aren't exported outside the kernel to avoid name space clashes */
arch/avr32/include/asm/types.h +16 -0
@@ -10,6 +10,21 @@typedef unsigned short umode_t ; +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else +/* * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space
@@ -27,6 +42,7 @@ typedef unsigned int __u32; __extension__typedef __signed__ long long __s64 ; __extension__typedef unsigned long long __u64 ;#endif +#endif #endif /* __ASSEMBLY__ */
arch/blackfin/include/asm/types.h +16 -0
@@ -23,6 +23,20 @@ typedef unsigned short umode_t;* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -39,6 +53,8 @@ __extension__ typedef __signed__ long long __s64; __extension__typedef unsigned long long __u64 ;#endif +#endif +/* * These aren't exported outside the kernel to avoid name space clashes */
arch/m68k/include/asm/types.h +17 -0
@@ -5,6 +5,21 @@typedef unsigned short umode_t ; +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else + typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -19,6 +34,8 @@ __extension__ typedef __signed__ long long __s64; __extension__typedef unsigned long long __u64 ;#endif +#endif +typedef struct {__u32 u[4 ]; } __attribute__((aligned (16 )))vector128 ;
arch/microblaze/include/asm/types.h +16 -0
@@ -15,6 +15,20 @@ typedef unsigned short umode_t;* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -30,6 +44,8 @@ __extension__ typedef __signed__ long long __s64; __extension__typedef unsigned long long __u64 ;#endif +#endif +/* * These aren't exported outside the kernel to avoid name space clashes */
arch/mips/include/asm/types.h +16 -0
@@ -17,6 +17,20 @@ typedef unsigned short umode_t;* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -35,6 +49,8 @@ typedef __signed__ long long __s64;typedef unsigned long long __u64 ;#endif +#endif +#endif /* __ASSEMBLY__ */ /*
arch/nds32/include/asm/types.h +15 -1
@@ -17,6 +17,20 @@ typedef unsigned short umode_t;* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -31,7 +45,7 @@ typedef unsigned int __u32;typedef __signed__ long long __s64 ;typedef unsigned long long __u64 ;#endif - +#endif /* * These aren't exported outside the kernel to avoid name space clashes */
arch/nios2/include/asm/types.h +15 -0
@@ -15,6 +15,20 @@ typedef unsigned short umode_t;* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -29,6 +43,7 @@ typedef unsigned int __u32; __extension__typedef __signed__ long long __s64 ; __extension__typedef unsigned long long __u64 ;#endif +#endif /* * These aren't exported outside the kernel to avoid name space clashes
arch/openrisc/include/asm/types.h +15 -0
@@ -21,6 +21,20 @@ typedef unsigned short umode_t;* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -35,6 +49,7 @@ typedef unsigned int __u32; __extension__typedef __signed__ long long __s64 ; __extension__typedef unsigned long long __u64 ;#endif +#endif /* * These aren't exported outside the kernel to avoid name space clashes
arch/powerpc/include/asm/types.h +16 -0
@@ -5,6 +5,21 @@typedef unsigned short umode_t ; +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else + typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -18,6 +33,7 @@ typedef unsigned int __u32; __extension__typedef __signed__ long long __s64 ; __extension__typedef unsigned long long __u64 ;#endif +#endif typedef struct { __u32 u[4];
arch/sandbox/include/asm/types.h +16 -0
@@ -13,6 +13,20 @@ typedef unsigned short umode_t;* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -28,6 +42,8 @@ __extension__ typedef __signed__ long long __s64; __extension__typedef unsigned long long __u64 ;#endif +#endif +/* * These aren't exported outside the kernel to avoid name space clashes */
arch/sh/include/asm/types.h +15 -0
@@ -9,6 +9,20 @@ typedef unsigned short umode_t;* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -23,6 +37,7 @@ typedef unsigned int __u32; __extension__typedef __signed__ long long __s64 ; __extension__typedef unsigned long long __u64 ;#endif +#endif #endif /* __ASSEMBLY__ */
arch/sparc/include/asm/types.h +17 -0
@@ -12,6 +12,21 @@typedef unsigned short umode_t ; +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else + typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -26,6 +41,8 @@ typedef __signed__ long long __s64;typedef unsigned long long __u64 ;#endif +#endif +typedef struct {__u32 u[4 ]; } __attribute__((aligned (16 )))vector128 ;
arch/x86/include/asm/types.h +17 -0
@@ -8,6 +8,21 @@ typedef unsigned short umode_t;* header files exported to user space */ +#if defined(CONFIG_USE_STDINT ) +typedef __INT8_TYPE__ __s8 ; +typedef __UINT8_TYPE__ __u8 ; + +typedef __INT16_TYPE__ __s16 ; +typedef __UINT16_TYPE__ __u16 ; + +typedef __INT32_TYPE__ __s32 ; +typedef __UINT32_TYPE__ __u32 ; + +typedef __INT64_TYPE__ __s64 ; +typedef __UINT64_TYPE__ __u64 ; + +#else + typedef __signed__ char __s8;typedef unsigned char __u8 ;
@@ -22,6 +37,8 @@ __extension__ typedef __signed__ long long __s64; __extension__typedef unsigned long long __u64 ;#endif +#endif +/* * These aren't exported outside the kernel to avoid name space clashes */
Signature · 1 line
1.9.1
PATCH 4/7 Check if compiler-provided <stdint.h> and <inttypes.h> are available if CONFIG_USE_STDINT=y (MAD)
In reply to Masahiro YamadaCONFIG_USE_STDINT was introduced to use compiler-provided types for fixed-width variables.
This must be consistent everywhere to avoid warnings/errors including printf() and friends.
Assume the code below
uint32_t foo;
printf("foo= %x\n", foo);If <stdint.h> is included, uint32_t is defined by the compiler. The code above only works on compilers that define "uint32_t" as "unsigned int". Actually there exist compilers that define "uint32_t" as "unsigned long".
Going forward, to print out fixed-width variables, we always have to use PRIxN like this
uint32_t foo;
printf("foo= " PRIx32 "\n", foo);Notice,
- Typedefs ( uint32_t, int32_t etc.) are provided by <stdint.h>
- Printf formats ( PRIx32, PRId32 etc.) are provided by <inttypes.h>
Also notice, it makes sense only when <stdint.h> and <inttypes.h> are provided by the same compiler.
^^^^^^^^^^^^^^^^^^
Commit 4166ecb24 (Add some standard headers external code might need) added hard-coded include/inttypes.h.
It provides hard-coded PRIx32 "x", but it does not make sense. Some compiler's <stdint.h> define "uint32_t" as "unsigned long" and expect the format string "lx" to print out "uint32_t" variable.
This commit:
- Adds scripts/gcc-have-stdint.sh to check if the compiler is providing both <stdint.h> and <inttypes.h>
- Modifies config.mk to error-out if CONFIG_USE_STDINT is enabled, but <stdint.h> or <inttyps.h> is missing
- Modifies the top Makefile to delete "-nostdinc" option and allow to include compiler-provided <inttypes.h>
- Remove hard-coded include/inttypes.h
---
Makefile | 2 +- config.mk | 12 ++ include/inttypes.h | 287 --------------------------------------------- scripts/gcc-have-stdint.sh | 21 ++++ 4 files changed, 34 insertions(+), 288 deletions(-) delete mode 100644 include/inttypes.h create mode 100755 scripts/gcc-have-stdint.sh
Makefile +1 -1
@@ -591,7 +591,7 @@ UBOOTINCLUDE := \ -I$(srctree)/arch/$(ARCH)/include \ -include $(srctree)/include/linux/kconfig.h -NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) +NOSTDINC_FLAGS += -isystem $(shell $(CC) -print-file-name=include) CHECKFLAGS += $(NOSTDINC_FLAGS) # FIX ME
config.mk +12 -0
@@ -64,6 +64,18 @@ ifneq ($(USE_STDINT),) PLATFORM_CPPFLAGS += -DCONFIG_USE_STDINT endif +ifeq ($(CONFIG_USE_STDINT),y) +HAVE_STDINT := $(shell $(CONFIG_SHELL) scripts/gcc-have-stdint.sh $(CC)) + +ifeq ($(HAVE_STDINT),) +$(warning you have enabled CONFIG_USE_STDINT (or given USE_STDINT=1 from the command line)) +$(warning but your compiler is not providing <stdint.h> or <inttypes.h>.) +$(error check your compiler.) + +endif + +endif + ######################################################################### RELFLAGS := $(PLATFORM_RELFLAGS)
include/inttypes.h deleted +0 -287
287 lines not on this page · raw message
scripts/gcc-have-stdint.sh new file +21 -0
@@ -0,0 +1,21 @@ +#!/bin/sh +# +# Test if the compiler has <stdint.h> and <inttypes.> +# Kernel.org toolchains do not provide them. +# +# CONFIG_USE_STDINT makes sense only when +# both <stdint.h> and <inttypes.h> are provided by the compiler. +# +TMP="$$" + +cat <<END | $@ -Werror -x c - -c -o $TMP >/dev/null 2>&1 && echo "y" +#include <stdint.h> +#include <inttypes.h> + +int main(void) +{ + return 0; +} +END + +rm -f $TMP
Signature · 1 line
1.9.1
PATCH 4/7 Check if compiler-provided <stdint.h> and <inttypes.h> are available if CONFIG_USE_STDINT=y (MAD)
Hi Masahiro,
Quoted 42 lines · Masahiro Yamada
CONFIG_USE_STDINTwas introduced to use compiler-provided types for fixed-width variables.
This must be consistent everywhere to avoid warnings/errors includingprintf()and friends.Assume the code below
uint32_tfoo;printf("foo= %x\n", foo);If <
stdint.h> is included,uint32_tis defined by the compiler. The code above only works on compilers that define "uint32_t" as "unsigned int". Actually there exist compilers that define "uint32_t" as "unsigned long".Going forward, to print out fixed-width variables, we always have to use PRIxN like this
uint32_tfoo;printf("foo= " PRIx32 "\n", foo);Notice,
- Typedefs (
uint32_t,int32_tetc.) are provided by <stdint.h>
- Printf formats ( PRIx32, PRId32 etc.) are provided by <inttypes.h>Also notice, it makes sense only when <
stdint.h> and <inttypes.h> are provided by the same compiler.
^^^^^^^^^^^^^^^^^^Commit
4166ecb24(Add some standard headers external code might need) added hard-codedinclude/inttypes.h.
It provides hard-coded PRIx32 "x", but it does not make sense. Some compiler's <stdint.h> define "uint32_t" as "unsigned long" and expect the format string "lx" to print out "uint32_t" variable.This commit:
- Addsscripts/gcc-have-stdint.shto check if the compiler is providing both <stdint.h> and <inttypes.h>
Quoted 7 lines
- Modifies config.mk to error-out if
CONFIG_USE_STDINTis enabled, but <stdint.h> or <inttyps.h> is missing- Modifies the top
Makefileto delete "-nostdinc" option and allow to include compiler-provided <inttypes.h>- Remove hard-coded
include/inttypes.h
This patch looks good to me except that I don't understand why you are removing inttypes.h? Where will the PRI defines come from? Or is it because you are fixing things such that the defines are not needed anymore?
Quoted 8 lines
Signed-off-by Masahiro Yamada <[email protected]>Cc Gabe Black <[email protected]>Cc Simon Glass <[email protected]>Cc Bill Richardson <[email protected]>Cc Tom Rini <[email protected]>---
Quoted 8 lines
Makefile | 2 +- config.mk | 12 ++ include/inttypes.h | 287 --------------------------------------------- scripts/gcc-have-stdint.sh | 21 ++++ 4 files changed, 34 insertions(+), 288 deletions(-) delete mode 100644 include/inttypes.h create mode 100755 scripts/gcc-have-stdint.sh
[snip]
Regards,
Simon
PATCH 4/7 Check if compiler-provided <stdint.h> and <inttypes.h> are available if CONFIG_USE_STDINT=y (MAD)
Hi Simon,
Quoted 51 lines · On Mon, 22 Dec 2014 21:46:26 -0700 Simon Glass <[email protected]> wrote:
Hi Masahiro,
Quoted 48 lines · Masahiro Yamada
CONFIG_USE_STDINTwas introduced to use compiler-provided types for fixed-width variables.
This must be consistent everywhere to avoid warnings/errors includingprintf()and friends.Assume the code below
uint32_tfoo;printf("foo= %x\n", foo);If <
stdint.h> is included,uint32_tis defined by the compiler. The code above only works on compilers that define "uint32_t" as "unsigned int". Actually there exist compilers that define "uint32_t" as "unsigned long".Going forward, to print out fixed-width variables, we always have to use PRIxN like this
uint32_tfoo;printf("foo= " PRIx32 "\n", foo);Notice,
- Typedefs (
uint32_t,int32_tetc.) are provided by <stdint.h>
- Printf formats ( PRIx32, PRId32 etc.) are provided by <inttypes.h>Also notice, it makes sense only when <
stdint.h> and <inttypes.h> are provided by the same compiler.
^^^^^^^^^^^^^^^^^^Commit
4166ecb24(Add some standard headers external code might need) added hard-codedinclude/inttypes.h.
It provides hard-coded PRIx32 "x", but it does not make sense. Some compiler's <stdint.h> define "uint32_t" as "unsigned long" and expect the format string "lx" to print out "uint32_t" variable.This commit:
- Addsscripts/gcc-have-stdint.shto check if the compiler is providing both <stdint.h> and <inttypes.h>- Modifies config.mk to error-out if
CONFIG_USE_STDINTis enabled, but <stdint.h> or <inttyps.h> is missing- Modifies the top
Makefileto delete "-nostdinc" option and allow to include compiler-provided <inttypes.h>
Quoted 6 lines
Quoted 1 line
- Remove hard-coded
include/inttypes.hThis patch looks good to me except that I don't understand why you are removing
inttypes.h? Where will the PRI defines come from? Or is it because you are fixing things such that the defines are not needed anymore?
According to this question, I am afraid you are not understanding <inttypes.h> very well. Maybe is this page useful?
http://pubs.opengroup.org/onlinepubs/009695399/basedefs/inttypes.h.html
My commit description has also answered your question:
Notice,
- Typedefs ( uint32_t, int32_t etc.) are provided by <stdint.h>
- Printf formats ( PRIx32, PRId32 etc.) are provided by <inttypes.h>
Also notice, it makes sense only when <stdint.h> and <inttypes.h> are provided by the same compiler.
Best Regards
Masahiro Yamada
PATCH 5/7 Replace "llx" with PRIx64 to fix warnings on sandbox (MAD)
In reply to Masahiro YamadaThese must be fixed to fix sandbox at least. (Horrible things are happening on the other boards, of course.)
If we include <stdint.h>, we do not know 64bit-types are defined as "unsigned long long" or "unsigned long".
(As for my 64bit GCC, __UINT64_TYPE__ is "long unsigned int")
We cannot hard-code "%llx" in printf() or friends anymore. We must always use PRIx64 etc.
(As Documentation/printk-formats.txt clearly says, Linux Kernel always uses "%llx" to print 64bit variables, and U-Boot used to do that. But we lost the convenience by commit 0d296cc and commit 4166ecb24)
---
common/fdt_support.c | 2 +- disk/part_efi.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-)
common/fdt_support.c +1 -1
@@ -1533,7 +1533,7 @@ int fdt_setup_simplefb_node(void *fdt, int node, u64 base_address, u32 width,if (ret <0 )return ret; -snprintf (name,sizeof (name),"framebuffer@%llx" , base_address); +snprintf (name,sizeof (name),"framebuffer@%" PRIx64, base_address); ret =fdt_set_name (fdt, node, name);if (ret <0 )return ret;
disk/part_efi.c +6 -6
@@ -113,7 +113,7 @@ void print_part_efi(block_dev_desc_t * dev_desc)if (!is_pte_valid (&gpt_pte[i]))break ; -printf ("%3d\t0x%08llx\t0x%08llx\t\"%s\"\n" , (i +1 ), +printf ("%3d\t0x%08" PRIx64"\t0x%08" PRIx64"\t\"%s\"\n" , (i +1 ),le64_to_cpu (gpt_pte[i].starting_lba),le64_to_cpu (gpt_pte[i].ending_lba),print_efiname (&gpt_pte[i]));
@@ -530,7 +530,7 @@ static int is_gpt_valid(block_dev_desc_t *dev_desc, u64 lba,/* Check the GPT header signature */ if (le64_to_cpu (pgpt_head->signature) !=GPT_HEADER_SIGNATURE ) {printf ("GUID Partition Table Header signature is wrong:" -"0x%llX != 0x%llX\n" , +"0x%" PRIX64 " != 0x%llX\n" ,le64_to_cpu (pgpt_head->signature),GPT_HEADER_SIGNATURE );return 0 ;
@@ -554,7 +554,7 @@ static int is_gpt_valid(block_dev_desc_t *dev_desc, u64 lba,/* Check that the my_lba entry points to the LBA that contains the GPT */ if (le64_to_cpu (pgpt_head->my_lba) != lba) { -printf ("GPT: my_lba incorrect: %llX != %" PRIX64 "\n" , +printf ("GPT: my_lba incorrect: %" PRIX64 " != %" PRIX64 "\n" ,le64_to_cpu (pgpt_head->my_lba), lba);return 0 ;
@@ -563,17 +563,17 @@ static int is_gpt_valid(block_dev_desc_t *dev_desc, u64 lba,/* Check the first_usable_lba and last_usable_lba are within the disk. */ lastlba = (u64 )dev_desc->lba;if (le64_to_cpu (pgpt_head->first_usable_lba) > lastlba) { -printf ("GPT: first_usable_lba incorrect: %llX > %" PRIX64 "\n" , +printf ("GPT: first_usable_lba incorrect: %" PRIX64 " > %" PRIX64 "\n" ,le64_to_cpu (pgpt_head->first_usable_lba), lastlba);return 0 ; }if (le64_to_cpu (pgpt_head->last_usable_lba) > lastlba) { -printf ("GPT: last_usable_lba incorrect: %llX > %" PRIX64 "\n" , +printf ("GPT: last_usable_lba incorrect: %" PRIx64" > %" PRIX64 "\n" ,le64_to_cpu (pgpt_head->last_usable_lba), lastlba);return 0 ; } -debug ("GPT: first_usable_lba: %llX last_usable_lba %llX last lba %" +debug ("GPT: first_usable_lba: %" PRIx64"last_usable_lba %" PRIX64 " last lba %" PRIX64 "\n" ,le64_to_cpu (pgpt_head->first_usable_lba),le64_to_cpu (pgpt_head->last_usable_lba), lastlba);
Signature · 1 line
1.9.1
PATCH 5/7 Replace "llx" with PRIx64 to fix warnings on sandbox (MAD)
Dear Masahiro Yamada,
Quoted 7 lines · In message <[email protected]> you…
These must be fixed to fix sandbox at least. (Horrible things are happening on the other boards, of course.)
If we include <
stdint.h>, we do not know 64bit-types are defined as "unsigned long long" or "unsigned long".
(As for my 64bit GCC,__UINT64_TYPE__is "long unsigned int")
Quoted 6 lines
We cannot hard-code "%llx" in
printf()or friends anymore. We must always use PRIx64 etc.(As
Documentation/printk-formats.txtclearly says, Linux Kernel always uses "%llx" to print 64bit variables, and U-Boot used to do that. But we lost the convenience by commit 0d296cc and commit4166ecb24)
I think we should reconsider these two commits, then.
The use of the PRIx?? macros is really ugly and makes the code very hard to read. This alone should be reason to avoid that - in addition we deviate from the Linux kernel, so adapting code from there becomes much more difficult.
I think we should especially strive to maintain compatibility with Linux code.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If the facts don't fit the theory, change the facts.
-- Albert EinsteinPATCH 5/7 Replace "llx" with PRIx64 to fix warnings on sandbox (MAD)
In reply to Masahiro YamadaHi Masahiro,
Quoted 7 lines · Masahiro Yamada
These must be fixed to fix sandbox at least. (Horrible things are happening on the other boards, of course.)
If we include <
stdint.h>, we do not know 64bit-types are defined as "unsigned long long" or "unsigned long".
(As for my 64bit GCC,__UINT64_TYPE__is "long unsigned int")
Quoted 6 lines
We cannot hard-code "%llx" in
printf()or friends anymore. We must always use PRIx64 etc.(As
Documentation/printk-formats.txtclearly says, Linux Kernel always uses "%llx" to print 64bit variables, and U-Boot used to do that. But we lost the convenience by commit 0d296cc and commit4166ecb24)
I think we should study how the kernel does this - basically by redefining __UIN32_TYPE__, etc. as far as I understand it. From what you are saying, I gather that the PRI defines will then not be needed.
Quoted 7 lines
Signed-off-by Masahiro Yamada <[email protected]>Cc Gabe Black <[email protected]>Cc Simon Glass <[email protected]>Cc Bill Richardson <[email protected]>Cc Tom Rini <[email protected]>---
Regards,
Simon
PATCH 6/7 Use PRIx32 etc. to print out 32bit-width variable (MAD)
In reply to Masahiro YamadaIf <stdint.h> is included, the definition of fixed-width types are compiler-dependent.
For example, some compilers use "unsigned long" and some compilers use "unsigned int" for 32bit width typedefs.
That means, we can no longer use hard-code "%x" or "%d" to print 32bit-width variables.
We use printf() everywhere to print 32bit variables.
This commit only fixes fs/fat/fat.c because I cannot imagine how many days I have to spend to eliminate all the warnings. (Of course, I do not think we should do such ridiculous things.)
Just in case, I put the warnings I got for Panda board below:
$ make USE_STDINT=1 CROSS_COMPILE=arm-none-eabi- omap4_panda_defconfig all # # configuration written to .config # # # configuration written to spl/.config # scripts/kconfig/conf --silentoldconfig Kconfig scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config.h GEN include/autoconf.mk GEN include/autoconf.mk.dep GEN spl/include/autoconf.mk CHK include/config/uboot.release UPD include/config/uboot.release CHK include/generated/version_autogenerated.h UPD include/generated/version_autogenerated.h CHK include/generated/timestamp_autogenerated.h UPD include/generated/timestamp_autogenerated.h CC lib/asm-offsets.s GEN include/generated/generic-asm-offsets.h CC arch/arm/lib/asm-offsets.s GEN include/generated/asm-offsets.h LD arch/arm/cpu/built-in.o CC arch/arm/cpu/armv7/cache_v7.o arch/arm/cpu/armv7/cache_v7.c: In function 'v7_dcache_inval_range': arch/arm/cpu/armv7/cache_v7.c:174:4: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/cache_v7.c:185:4: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] CC arch/arm/cpu/armv7/cpu.o CC arch/arm/cpu/armv7/syslib.o AS arch/arm/cpu/armv7/lowlevel_init.o CC arch/arm/cpu/armv7/omap-common/reset.o CC arch/arm/cpu/armv7/omap-common/timer.o arch/arm/cpu/armv7/omap-common/timer.c: In function 'timer_init': arch/arm/cpu/armv7/omap-common/timer.c:39:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c:41:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c:45:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c: In function '__udelay': arch/arm/cpu/armv7/omap-common/timer.c:64:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c:67:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c: In function 'get_timer_masked': arch/arm/cpu/armv7/omap-common/timer.c:79:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC arch/arm/cpu/armv7/omap-common/utils.o CC arch/arm/cpu/armv7/omap-common/hwinit-common.o In file included from arch/arm/cpu/armv7/omap-common/hwinit-common.c:18:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/hwinit-common.c: In function 'omap_rev_string': arch/arm/cpu/armv7/omap-common/hwinit-common.c:73:9: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/hwinit-common.c:73:9: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/hwinit-common.c:73:9: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/hwinit-common.c: In function 'wait_for_command_complete': arch/arm/cpu/armv7/omap-common/hwinit-common.c:159:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/hwinit-common.c: In function 'watchdog_init': arch/arm/cpu/armv7/omap-common/hwinit-common.c:171:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/hwinit-common.c:173:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC arch/arm/cpu/armv7/omap-common/clocks-common.o In file included from arch/arm/cpu/armv7/omap-common/clocks-common.c:24:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'setup_post_dividers': arch/arm/cpu/armv7/omap-common/clocks-common.c:80:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:82:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:84:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:86:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:88:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:90:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:92:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:94:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:96:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:98:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'do_bypass_dpll': arch/arm/cpu/armv7/omap-common/clocks-common.c:105:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:105:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'do_lock_dpll': arch/arm/cpu/armv7/omap-common/clocks-common.c:125:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:125:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'check_for_lock': arch/arm/cpu/armv7/omap-common/clocks-common.c:144:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'do_setup_dpll': arch/arm/cpu/armv7/omap-common/clocks-common.c:220:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:252:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'configure_mpu_dpll': arch/arm/cpu/armv7/omap-common/clocks-common.c:332:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:332:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC arch/arm/cpu/armv7/omap-common/emif-common.o In file included from arch/arm/cpu/armv7/omap-common/emif-common.c:13:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'set_lpmode_selfrefresh': arch/arm/cpu/armv7/omap-common/emif-common.c:27:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:31:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:34:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'get_mr': arch/arm/cpu/armv7/omap-common/emif-common.c:59:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:61:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:63:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:64:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:64:2: warning: format '%d' expects argument of type 'int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:64:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:64:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'set_mr': arch/arm/cpu/armv7/omap-common/emif-common.c:79:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:80:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'emif_reset_phy': arch/arm/cpu/armv7/omap-common/emif-common.c:88:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:90:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'lpddr2_init': arch/arm/cpu/armv7/omap-common/emif-common.c:129:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:129:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:135:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:135:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:141:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:142:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:150:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:151:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:154:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:154:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'emif_update_timings': arch/arm/cpu/armv7/omap-common/emif-common.c:166:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:167:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:168:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:169:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:172:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:174:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:175:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:177:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:178:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:180:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:183:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:186:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:189:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'omap5_ddr3_leveling': arch/arm/cpu/armv7/omap-common/emif-common.c:199:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:211:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:214:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:218:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:222:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:225:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:235:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:241:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'ddr3_init': arch/arm/cpu/armv7/omap-common/emif-common.c:261:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:264:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:265:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:266:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:268:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:269:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:277:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:278:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:280:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:281:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:286:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'do_sdram_init': arch/arm/cpu/armv7/omap-common/emif-common.c:1010:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:1082:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'emif_post_init_config': arch/arm/cpu/armv7/omap-common/emif-common.c:1096:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'dmm_init': arch/arm/cpu/armv7/omap-common/emif-common.c:1186:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1187:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1188:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1189:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1191:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1193:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1195:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1197:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1204:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1206:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1208:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1210:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'do_bug0039_workaround': arch/arm/cpu/armv7/omap-common/emif-common.c:1270:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'sdram_init': arch/arm/cpu/armv7/omap-common/emif-common.c:1303:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:1345:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:1345:5: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] CC arch/arm/cpu/armv7/omap-common/vc.o CC arch/arm/cpu/armv7/omap-common/abb.o CC arch/arm/cpu/armv7/omap-common/omap-cache.o CC arch/arm/cpu/armv7/omap-common/boot-common.o AS arch/arm/cpu/armv7/omap-common/lowlevel_init.o CC arch/arm/cpu/armv7/omap-common/mem-common.o arch/arm/cpu/armv7/omap-common/mem-common.c: In function 'enable_gpmc_cs_config': arch/arm/cpu/armv7/omap-common/mem-common.c:56:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:59:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:60:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:61:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:62:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:63:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:64:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:66:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c: In function 'gpmc_init': arch/arm/cpu/armv7/omap-common/mem-common.c:126:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:127:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:128:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:130:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:134:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:139:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] LD arch/arm/cpu/armv7/omap-common/built-in.o CC arch/arm/cpu/armv7/omap4/sdram_elpida.o In file included from arch/arm/cpu/armv7/omap4/sdram_elpida.c:13:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC arch/arm/cpu/armv7/omap4/hwinit.o In file included from arch/arm/cpu/armv7/omap4/hwinit.c:19:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC arch/arm/cpu/armv7/omap4/emif.o In file included from arch/arm/cpu/armv7/omap4/emif.c:13:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC arch/arm/cpu/armv7/omap4/prcm-regs.o CC arch/arm/cpu/armv7/omap4/hw_data.o LD arch/arm/cpu/armv7/omap4/built-in.o LD arch/arm/cpu/armv7/built-in.o AS arch/arm/cpu/armv7/start.o AS arch/arm/lib/vectors.o AS arch/arm/lib/crt0.o AS arch/arm/lib/relocate.o CC arch/arm/lib/bootm-fdt.o CC arch/arm/lib/bootm.o CC arch/arm/lib/cache-pl310.o arch/arm/lib/cache-pl310.c: In function 'pl310_cache_sync': arch/arm/lib/cache-pl310.c:19:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/lib/cache-pl310.c: In function 'pl310_background_op_all_ways': arch/arm/lib/cache-pl310.c:26:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/lib/cache-pl310.c: In function 'v7_outer_cache_flush_range': arch/arm/lib/cache-pl310.c:65:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/lib/cache-pl310.c: In function 'v7_outer_cache_inval_range': arch/arm/lib/cache-pl310.c:82:4: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/lib/cache-pl310.c:93:4: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/lib/cache-pl310.c:99:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC arch/arm/lib/sections.o CC arch/arm/lib/interrupts.o CC arch/arm/lib/reset.o CC arch/arm/lib/cache.o CC arch/arm/lib/cache-cp15.o LD arch/arm/lib/built-in.o AR arch/arm/lib/lib.a CC arch/arm/lib/eabi_compat.o CC board/ti/panda/panda.o board/ti/panda/panda.c: In function 'misc_init_r': board/ti/panda/panda.c:211:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:221:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:226:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:236:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:239:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:248:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] LD board/ti/panda/built-in.o CC common/main.o CC common/exports.o CC common/hash.o CC common/cli_hush.o CC common/autoboot.o CC common/board_f.o CC common/board_r.o CC common/cmd_boot.o CC common/cmd_bootm.o CC common/bootm.o CC common/bootm_os.o CC common/cmd_help.o CC common/cmd_version.o CC common/env_attr.o CC common/env_callback.o CC common/env_flags.o CC common/env_nowhere.o CC common/cmd_source.o CC common/cmd_bdinfo.o CC common/cmd_console.o CC common/cmd_echo.o CC common/cmd_exit.o CC common/cmd_ext4.o CC common/cmd_ext2.o CC common/cmd_fat.o CC common/cmd_fdt.o common/cmd_fdt.c: In function 'fdt_value_setenv': common/cmd_fdt.c:60:3: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c: In function 'do_fdt': common/cmd_fdt.c:138:11: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:193:11: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:473:32: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:475:10: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:475:10: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:477:10: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:479:10: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:481:10: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:482:3: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] common/cmd_fdt.c:484:10: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:487:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:490:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:493:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:539:6: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:539:6: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:539:6: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:539:6: warning: format '%x' expects argument of type 'unsigned int', but argument 6 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c: In function 'fdt_valid': common/cmd_fdt.c:685:6: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c:691:6: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c: In function 'print_data': common/cmd_fdt.c:883:6: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] common/cmd_fdt.c: In function 'fdt_print': common/cmd_fdt.c:1015:5: warning: format '%X' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] CC common/fdt_support.o common/fdt_support.c: In function 'of_bus_default_map': common/fdt_support.c:975:2: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'u64' [-Wformat] common/fdt_support.c:975:2: warning: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'u64' [-Wformat] common/fdt_support.c:975:2: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'u64' [-Wformat] common/fdt_support.c: In function 'of_translate_one': common/fdt_support.c:1054:2: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'u64' [-Wformat] common/fdt_support.c: In function 'fdt_verify_alias_address': common/fdt_support.c:1385:10: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u64' [-Wformat] common/fdt_support.c:1385:10: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'u64' [-Wformat] common/fdt_support.c: In function 'fdt_setup_simplefb_node': common/fdt_support.c:1536:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u64' [-Wformat] CC common/cmd_fs.o CC common/cmd_gpio.o CC common/cmd_i2c.o CC common/cmd_itest.o CC common/cmd_load.o CC common/cmd_mem.o common/cmd_mem.c: In function 'mod_mem': common/cmd_mem.c:1148:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] CC common/cmd_misc.o CC common/cmd_mmc.o common/cmd_mmc.c: In function 'do_mmc_read': common/cmd_mmc.c:303:9: warning: format '%d' expects argument of type 'int', but argument 3 has type 'u32' [-Wformat] common/cmd_mmc.c:303:9: warning: format '%d' expects argument of type 'int', but argument 4 has type 'u32' [-Wformat] common/cmd_mmc.c:308:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] common/cmd_mmc.c: In function 'do_mmc_write': common/cmd_mmc.c:331:9: warning: format '%d' expects argument of type 'int', but argument 3 has type 'u32' [-Wformat] common/cmd_mmc.c:331:9: warning: format '%d' expects argument of type 'int', but argument 4 has type 'u32' [-Wformat] common/cmd_mmc.c:338:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] common/cmd_mmc.c: In function 'do_mmc_erase': common/cmd_mmc.c:359:9: warning: format '%d' expects argument of type 'int', but argument 3 has type 'u32' [-Wformat] common/cmd_mmc.c:359:9: warning: format '%d' expects argument of type 'int', but argument 4 has type 'u32' [-Wformat] common/cmd_mmc.c:366:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] CC common/cmd_net.o CC common/cmd_pcmcia.o CC common/cmd_spi.o CC common/cmd_test.o CC common/cmd_usb.o CC common/usb.o CC common/usb_hub.o CC common/usb_storage.o CC common/cmd_ximg.o CC common/cmd_spl.o CC common/flash.o CC common/splash.o CC common/cmd_nvedit.o CC common/env_common.o CC common/console.o CC common/dlmalloc.o CC common/image.o common/image.c: In function 'image_print_contents': common/image.c:308:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] common/image.c:309:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] common/image.c: In function 'genimg_print_size': common/image.c:505:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] CC common/image-fdt.o CC common/memsize.o CC common/stdio.o CC common/cli_simple.o CC common/cli.o CC common/cli_readline.o CC common/command.o CC common/s_record.o CC common/xyzModem.o CC common/cmd_disk.o LD common/built-in.o CC disk/part.o CC disk/part_dos.o LD disk/built-in.o LD drivers/block/built-in.o LD drivers/crypto/fsl/built-in.o LD drivers/crypto/built-in.o LD drivers/dfu/built-in.o LD drivers/hwmon/built-in.o CC drivers/input/input.o LD drivers/input/built-in.o LD drivers/memory/built-in.o LD drivers/misc/built-in.o CC drivers/pcmcia/tqm8xx_pcmcia.o LD drivers/pcmcia/built-in.o LD drivers/pwm/built-in.o CC drivers/rtc/date.o LD drivers/rtc/built-in.o LD drivers/soc/built-in.o LD drivers/sound/built-in.o LD drivers/thermal/built-in.o LD drivers/tpm/built-in.o LD drivers/twserial/built-in.o LD drivers/video/built-in.o LD drivers/watchdog/built-in.o LD drivers/built-in.o LD drivers/dma/built-in.o CC drivers/gpio/omap_gpio.o LD drivers/gpio/built-in.o CC drivers/i2c/i2c_core.o CC drivers/i2c/omap24xx_i2c.o LD drivers/i2c/built-in.o CC drivers/mmc/mmc.o CC drivers/mmc/omap_hsmmc.o drivers/mmc/omap_hsmmc.c: In function 'mmc_reset_controller_fsm': drivers/mmc/omap_hsmmc.c:308:5: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] drivers/mmc/omap_hsmmc.c: In function 'omap_hsmmc_send_cmd': drivers/mmc/omap_hsmmc.c:335:5: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] CC drivers/mmc/mmc_write.o LD drivers/mmc/built-in.o LD drivers/mtd/built-in.o LD drivers/mtd/onenand/built-in.o LD drivers/mtd/spi/built-in.o LD drivers/net/built-in.o LD drivers/net/phy/built-in.o LD drivers/pci/built-in.o CC drivers/power/twl6030.o LD drivers/power/built-in.o LD drivers/power/battery/built-in.o LD drivers/power/fuel_gauge/built-in.o LD drivers/power/mfd/built-in.o LD drivers/power/pmic/built-in.o CC drivers/serial/serial.o CC drivers/serial/serial_ns16550.o CC drivers/serial/ns16550.o CC drivers/serial/usbtty.o LD drivers/serial/built-in.o CC drivers/spi/spi.o CC drivers/spi/omap3_spi.o drivers/spi/omap3_spi.c: In function 'omap3_spi_write': drivers/spi/omap3_spi.c:248:12: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/spi/omap3_spi.c: In function 'omap3_spi_read': drivers/spi/omap3_spi.c:303:12: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/spi/omap3_spi.c: In function 'omap3_spi_txrx': drivers/spi/omap3_spi.c:357:12: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/spi/omap3_spi.c:375:12: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] LD drivers/spi/built-in.o CC drivers/usb/eth/usb_ether.o CC drivers/usb/eth/smsc95xx.o drivers/usb/eth/smsc95xx.c: In function 'smsc95xx_write_reg': drivers/usb/eth/smsc95xx.c:165:3: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c:165:3: warning: format '%d' expects argument of type 'int', but argument 3 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c: In function 'smsc95xx_read_reg': drivers/usb/eth/smsc95xx.c:183:3: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c: In function 'smsc95xx_set_csums': drivers/usb/eth/smsc95xx.c:418:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c: In function 'smsc95xx_init': drivers/usb/eth/smsc95xx.c:522:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c:532:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c:556:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c:566:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c:572:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c:589:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c:599:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c: In function 'smsc95xx_recv': drivers/usb/eth/smsc95xx.c:752:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] drivers/usb/eth/smsc95xx.c:758:4: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] LD drivers/usb/eth/built-in.o CC drivers/usb/gadget/core.o CC drivers/usb/gadget/ep0.o LD drivers/usb/gadget/built-in.o CC drivers/usb/host/ehci-hcd.o drivers/usb/host/ehci-hcd.c: In function 'ehci_submit_async': drivers/usb/host/ehci-hcd.c:591:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c:607:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c:637:3: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] drivers/usb/host/ehci-hcd.c:637:3: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'u32' [-Wformat] drivers/usb/host/ehci-hcd.c:637:3: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'u32' [-Wformat] drivers/usb/host/ehci-hcd.c: In function 'usb_lowlevel_init': drivers/usb/host/ehci-hcd.c:1028:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c:1059:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c:1059:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c: In function 'poll_int_queue': drivers/usb/host/ehci-hcd.c:1323:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c:1336:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c: In function 'destroy_int_queue': drivers/usb/host/ehci-hcd.c:1358:3: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c: In function 'submit_int_msg': drivers/usb/host/ehci-hcd.c:1414:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] drivers/usb/host/ehci-hcd.c:1414:3: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] CC drivers/usb/host/ehci-omap.o drivers/usb/host/ehci-omap.c: In function 'omap_uhh_reset': drivers/usb/host/ehci-omap.c:34:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:37:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:42:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:52:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:60:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:69:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c: In function 'omap_ehci_tll_reset': drivers/usb/host/ehci-omap.c:81:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:84:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c: In function 'omap_ehci_hcd_init': drivers/usb/host/ehci-omap.c:204:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:209:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:217:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:267:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/host/ehci-omap.c:284:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] LD drivers/usb/host/built-in.o LD drivers/usb/musb-new/built-in.o CC drivers/usb/musb/musb_udc.o CC drivers/usb/musb/musb_core.o CC drivers/usb/musb/omap3.o drivers/usb/musb/omap3.c: In function 'musb_platform_init': drivers/usb/musb/omap3.c:110:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/musb/omap3.c:114:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/musb/omap3.c:117:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] drivers/usb/musb/omap3.c:119:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] LD drivers/usb/musb/built-in.o LD drivers/usb/phy/built-in.o LD drivers/usb/ulpi/built-in.o CC fs/fs.o CC fs/ext4/ext4fs.o CC fs/ext4/ext4_common.o fs/ext4/ext4_common.c: In function 'ext4fs_iterate_dir': fs/ext4/ext4_common.c:2011:6: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] fs/ext4/ext4_common.c: In function 'ext4fs_mount': fs/ext4/ext4_common.c:2230:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] fs/ext4/ext4_common.c:2230:2: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Wformat] CC fs/ext4/dev.o LD fs/ext4/built-in.o CC fs/fat/fat_write.o In file included from fs/fat/fat_write.c:18:0: fs/fat/fat.c: In function 'get_fatent': fs/fat/fat.c:187:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat.c:187:2: warning: format '%d' expects argument of type 'int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat.c:187:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type '__u32' [-Wformat] fs/fat/fat.c:187:2: warning: format '%d' expects argument of type 'int', but argument 6 has type '__u32' [-Wformat] fs/fat/fat.c:248:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat.c:248:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat.c: In function 'get_cluster': fs/fat/fat.c:272:2: warning: format '%d' expects argument of type 'int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:272:2: warning: format '%d' expects argument of type 'int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat.c: In function 'get_contents': fs/fat/fat.c:353:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:383:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:399:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:426:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c: In function 'get_dentfromdir': fs/fat/fat.c:639:10: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:695:8: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:717:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:726:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c: In function 'do_fat_read_at': fs/fat/fat.c:877:2: warning: format '%d' expects argument of type 'int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat.c:879:2: warning: format '%d' expects argument of type 'int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:879:2: warning: format '%d' expects argument of type 'int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat.c:879:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat] fs/fat/fat.c:917:4: warning: format '%d' expects argument of type 'int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:979:10: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:1036:8: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:1059:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:1160:2: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'get_fatent_value': fs/fat/fat_write.c:145:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c:168:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat_write.c:168:2: warning: format '%d' expects argument of type 'int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat_write.c:168:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type '__u32' [-Wformat] fs/fat/fat_write.c:168:2: warning: format '%d' expects argument of type 'int', but argument 6 has type '__u32' [-Wformat] fs/fat/fat_write.c:236:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat_write.c:236:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat_write.c:236:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'determine_fatent': fs/fat/fat_write.c:537:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat_write.c:537:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'set_cluster': fs/fat/fat_write.c:560:2: warning: format '%d' expects argument of type 'int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c:560:2: warning: format '%d' expects argument of type 'int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'set_contents': fs/fat/fat_write.c:697:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c:742:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'find_directory_entry': fs/fat/fat_write.c:885:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c:921:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] CC fs/fat/file.o LD fs/fat/built-in.o LD fs/built-in.o CC lib/libfdt/fdt.o CC lib/libfdt/fdt_ro.o CC lib/libfdt/fdt_rw.o CC lib/libfdt/fdt_strerror.o CC lib/libfdt/fdt_sw.o CC lib/libfdt/fdt_wip.o CC lib/libfdt/fdt_empty_tree.o CC lib/libfdt/fdt_addresses.o LD lib/libfdt/built-in.o CC lib/zlib/zlib.o LD lib/zlib/built-in.o CC lib/circbuf.o CC lib/crc7.o CC lib/crc8.o CC lib/crc16.o CC lib/gunzip.o CC lib/initcall.o CC lib/lmb.o CC lib/ldiv.o CC lib/net_utils.o CC lib/qsort.o CC lib/strmhz.o CC lib/list_sort.o CC lib/hashtable.o CC lib/errno.o CC lib/display_options.o lib/display_options.c: In function 'print_size': lib/display_options.c:42:3: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'long long unsigned int' [-Wformat] lib/display_options.c: In function 'print_buffer': lib/display_options.c:128:4: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] CC lib/crc32.o CC lib/ctype.o CC lib/div64.o CC lib/hang.o CC lib/linux_compat.o CC lib/linux_string.o CC lib/string.o CC lib/time.o CC lib/vsprintf.o LD lib/built-in.o CC net/arp.o CC net/bootp.o CC net/eth.o CC net/net.o CC net/ping.o CC net/tftp.o net/tftp.c: In function 'TftpStart': net/tftp.c:722:4: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] net/tftp.c:722:4: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat] net/tftp.c:722:4: warning: format '%X' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Wformat] net/tftp.c:722:4: warning: format '%X' expects argument of type 'unsigned int', but argument 6 has type 'long unsigned int' [-Wformat] LD net/built-in.o LD test/built-in.o LD test/dm/built-in.o CC examples/standalone/hello_world.o CC examples/standalone/stubs.o LD examples/standalone/libstubs.o LD examples/standalone/hello_world OBJCOPY examples/standalone/hello_world.srec OBJCOPY examples/standalone/hello_world.bin LDS u-boot.lds LD u-boot OBJCOPY u-boot.bin MKIMAGE u-boot.img OBJCOPY u-boot.srec CC spl/arch/arm/cpu/armv7/cache_v7.o arch/arm/cpu/armv7/cache_v7.c: In function 'v7_dcache_inval_range': arch/arm/cpu/armv7/cache_v7.c:174:4: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/cache_v7.c:185:4: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] CC spl/arch/arm/cpu/armv7/cpu.o CC spl/arch/arm/cpu/armv7/syslib.o AS spl/arch/arm/cpu/armv7/lowlevel_init.o CC spl/arch/arm/cpu/armv7/omap-common/reset.o CC spl/arch/arm/cpu/armv7/omap-common/timer.o arch/arm/cpu/armv7/omap-common/timer.c: In function 'timer_init': arch/arm/cpu/armv7/omap-common/timer.c:39:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c:41:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c:45:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c: In function '__udelay': arch/arm/cpu/armv7/omap-common/timer.c:64:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c:67:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/timer.c: In function 'get_timer_masked': arch/arm/cpu/armv7/omap-common/timer.c:79:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC spl/arch/arm/cpu/armv7/omap-common/utils.o CC spl/arch/arm/cpu/armv7/omap-common/hwinit-common.o In file included from arch/arm/cpu/armv7/omap-common/hwinit-common.c:18:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/hwinit-common.c: In function 'omap_rev_string': arch/arm/cpu/armv7/omap-common/hwinit-common.c:73:9: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/hwinit-common.c:73:9: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/hwinit-common.c:73:9: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/hwinit-common.c: In function 'wait_for_command_complete': arch/arm/cpu/armv7/omap-common/hwinit-common.c:159:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/hwinit-common.c: In function 'watchdog_init': arch/arm/cpu/armv7/omap-common/hwinit-common.c:171:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/hwinit-common.c:173:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC spl/arch/arm/cpu/armv7/omap-common/clocks-common.o In file included from arch/arm/cpu/armv7/omap-common/clocks-common.c:24:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'setup_post_dividers': arch/arm/cpu/armv7/omap-common/clocks-common.c:80:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:82:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:84:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:86:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:88:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:90:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:92:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:94:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:96:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:98:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'do_bypass_dpll': arch/arm/cpu/armv7/omap-common/clocks-common.c:105:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:105:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'wait_for_bypass': arch/arm/cpu/armv7/omap-common/clocks-common.c:117:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'do_lock_dpll': arch/arm/cpu/armv7/omap-common/clocks-common.c:125:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:125:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'wait_for_lock': arch/arm/cpu/armv7/omap-common/clocks-common.c:136:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'check_for_lock': arch/arm/cpu/armv7/omap-common/clocks-common.c:144:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'do_setup_dpll': arch/arm/cpu/armv7/omap-common/clocks-common.c:220:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:231:4: warning: format '%d' expects argument of type 'int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:231:4: warning: format '%d' expects argument of type 'int', but argument 4 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:231:4: warning: format '%d' expects argument of type 'int', but argument 5 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:231:4: warning: format '%d' expects argument of type 'int', but argument 6 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:252:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'omap_ddr_clk': arch/arm/cpu/armv7/omap-common/clocks-common.c:276:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:298:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'configure_mpu_dpll': arch/arm/cpu/armv7/omap-common/clocks-common.c:332:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c:332:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'do_scale_vcore': arch/arm/cpu/armv7/omap-common/clocks-common.c:465:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:465:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:469:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'optimize_vcore_voltage': arch/arm/cpu/armv7/omap-common/clocks-common.c:492:10: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:498:10: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:498:10: warning: format '%d' expects argument of type 'int', but argument 4 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:502:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:502:2: warning: format '%d' expects argument of type 'int', but argument 5 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:502:2: warning: format '%d' expects argument of type 'int', but argument 6 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'enable_clock_domain': arch/arm/cpu/armv7/omap-common/clocks-common.c:549:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'wait_for_clk_enable': arch/arm/cpu/armv7/omap-common/clocks-common.c:565:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c:565:5: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/clocks-common.c: In function 'enable_clock_module': arch/arm/cpu/armv7/omap-common/clocks-common.c:576:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] CC spl/arch/arm/cpu/armv7/omap-common/emif-common.o In file included from arch/arm/cpu/armv7/omap-common/emif-common.c:13:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'set_lpmode_selfrefresh': arch/arm/cpu/armv7/omap-common/emif-common.c:27:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:31:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:34:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'get_mr': arch/arm/cpu/armv7/omap-common/emif-common.c:59:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:61:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:63:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:64:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:64:2: warning: format '%d' expects argument of type 'int', but argument 3 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:64:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:64:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'set_mr': arch/arm/cpu/armv7/omap-common/emif-common.c:79:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:80:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'emif_reset_phy': arch/arm/cpu/armv7/omap-common/emif-common.c:88:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:90:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'lpddr2_init': arch/arm/cpu/armv7/omap-common/emif-common.c:129:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:129:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:135:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:135:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:141:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:142:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:150:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:151:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:154:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:154:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'emif_update_timings': arch/arm/cpu/armv7/omap-common/emif-common.c:166:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:167:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:168:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:169:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:172:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:174:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:175:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:177:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:178:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:180:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:183:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:186:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:189:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'omap5_ddr3_leveling': arch/arm/cpu/armv7/omap-common/emif-common.c:199:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:211:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:214:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:218:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:222:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:225:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:235:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:241:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'ddr3_init': arch/arm/cpu/armv7/omap-common/emif-common.c:261:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:264:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:265:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:266:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:268:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:269:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:277:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:278:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:280:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:281:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:286:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'do_sdram_init': arch/arm/cpu/armv7/omap-common/emif-common.c:1010:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:1082:2: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'emif_post_init_config': arch/arm/cpu/armv7/omap-common/emif-common.c:1096:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'dmm_init': arch/arm/cpu/armv7/omap-common/emif-common.c:1186:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1187:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1188:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1189:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1191:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1193:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1195:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1197:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1204:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1206:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1208:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c:1210:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'do_bug0039_workaround': arch/arm/cpu/armv7/omap-common/emif-common.c:1270:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/emif-common.c: In function 'sdram_init': arch/arm/cpu/armv7/omap-common/emif-common.c:1303:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:1345:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] arch/arm/cpu/armv7/omap-common/emif-common.c:1345:5: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] CC spl/arch/arm/cpu/armv7/omap-common/vc.o CC spl/arch/arm/cpu/armv7/omap-common/abb.o CC spl/arch/arm/cpu/armv7/omap-common/omap-cache.o CC spl/arch/arm/cpu/armv7/omap-common/boot-common.o arch/arm/cpu/armv7/omap-common/boot-common.c: In function 'jump_to_image_no_args': arch/arm/cpu/armv7/omap-common/boot-common.c:141:2: warning: format '%X' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] AS spl/arch/arm/cpu/armv7/omap-common/lowlevel_init.o CC spl/arch/arm/cpu/armv7/omap-common/mem-common.o arch/arm/cpu/armv7/omap-common/mem-common.c: In function 'enable_gpmc_cs_config': arch/arm/cpu/armv7/omap-common/mem-common.c:56:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:59:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:60:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:61:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:62:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:63:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:64:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:66:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c: In function 'gpmc_init': arch/arm/cpu/armv7/omap-common/mem-common.c:126:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:127:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:128:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:130:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:134:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] arch/arm/cpu/armv7/omap-common/mem-common.c:139:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] LD spl/arch/arm/cpu/armv7/omap-common/built-in.o CC spl/arch/arm/cpu/armv7/omap4/sdram_elpida.o In file included from arch/arm/cpu/armv7/omap4/sdram_elpida.c:13:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC spl/arch/arm/cpu/armv7/omap4/hwinit.o In file included from arch/arm/cpu/armv7/omap4/hwinit.c:19:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC spl/arch/arm/cpu/armv7/omap4/emif.o In file included from arch/arm/cpu/armv7/omap4/emif.c:13:0: ./arch/arm/include/asm/emif.h: In function 'get_emif_rev': ./arch/arm/include/asm/emif.h:1165:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] ./arch/arm/include/asm/emif.h: In function 'emif_sdram_type': ./arch/arm/include/asm/emif.h:1179:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] CC spl/arch/arm/cpu/armv7/omap4/prcm-regs.o CC spl/arch/arm/cpu/armv7/omap4/hw_data.o LD spl/arch/arm/cpu/armv7/omap4/built-in.o LD spl/arch/arm/cpu/armv7/built-in.o AS spl/arch/arm/cpu/armv7/start.o LD spl/arch/arm/cpu/built-in.o AS spl/arch/arm/lib/vectors.o AS spl/arch/arm/lib/crt0.o CC spl/arch/arm/lib/spl.o CC spl/arch/arm/lib/sections.o CC spl/arch/arm/lib/interrupts.o CC spl/arch/arm/lib/reset.o CC spl/arch/arm/lib/cache.o CC spl/arch/arm/lib/cache-cp15.o LD spl/arch/arm/lib/built-in.o AR spl/arch/arm/lib/lib.a CC spl/arch/arm/lib/eabi_compat.o CC spl/board/ti/panda/panda.o board/ti/panda/panda.c: In function 'misc_init_r': board/ti/panda/panda.c:211:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:221:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:226:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:236:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:239:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] board/ti/panda/panda.c:248:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] LD spl/board/ti/panda/built-in.o CC spl/common/spl/spl.o common/spl/spl.c: In function 'spl_parse_image_header': common/spl/spl.c:100:3: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'u32' [-Wformat] common/spl/spl.c:100:3: warning: format '%d' expects argument of type 'int', but argument 5 has type 'u32' [-Wformat] common/spl/spl.c:105:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__be32' [-Wformat] common/spl/spl.c: In function 'jump_to_image_no_args': common/spl/spl.c:118:2: warning: format '%X' expects argument of type 'unsigned int', but argument 2 has type 'u32' [-Wformat] common/spl/spl.c: In function 'board_init_r': common/spl/spl.c:169:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] common/spl/spl.c:234:3: warning: format '%d' expects argument of type 'int', but argument 2 has type 'u32' [-Wformat] CC spl/common/spl/spl_mmc.o CC spl/common/spl/spl_fat.o CC spl/common/spl/spl_ext.o common/spl/spl_ext.c: In function 'spl_load_image_ext': common/spl/spl_ext.c:35:3: warning: format '%d' expects argument of type 'int', but argument 3 has type 's32' [-Wformat] common/spl/spl_ext.c:59:10: warning: format '%d' expects argument of type 'int', but argument 4 has type 's32' [-Wformat] LD spl/common/spl/built-in.o CC spl/common/cmd_nvedit.o CC spl/common/env_common.o CC spl/common/console.o CC spl/common/dlmalloc.o CC spl/common/image.o common/image.c: In function 'image_print_contents': common/image.c:308:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] common/image.c:309:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] common/image.c: In function 'genimg_print_size': common/image.c:505:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] CC spl/common/image-fdt.o CC spl/common/memsize.o CC spl/common/stdio.o CC spl/common/cli_simple.o CC spl/common/cli.o CC spl/common/cli_readline.o CC spl/common/command.o CC spl/common/s_record.o CC spl/common/xyzModem.o CC spl/common/cmd_disk.o LD spl/common/built-in.o CC spl/disk/part.o CC spl/disk/part_dos.o LD spl/disk/built-in.o LD spl/drivers/i2c/built-in.o CC spl/drivers/gpio/omap_gpio.o LD spl/drivers/gpio/built-in.o CC spl/drivers/mmc/mmc.o CC spl/drivers/mmc/omap_hsmmc.o drivers/mmc/omap_hsmmc.c: In function 'mmc_reset_controller_fsm': drivers/mmc/omap_hsmmc.c:308:5: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] drivers/mmc/omap_hsmmc.c: In function 'omap_hsmmc_send_cmd': drivers/mmc/omap_hsmmc.c:335:5: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'u32' [-Wformat] LD spl/drivers/mmc/built-in.o CC spl/drivers/serial/serial.o CC spl/drivers/serial/serial_ns16550.o CC spl/drivers/serial/ns16550.o LD spl/drivers/serial/built-in.o CC spl/fs/ext4/ext4fs.o CC spl/fs/ext4/ext4_common.o fs/ext4/ext4_common.c: In function 'ext4fs_iterate_dir': fs/ext4/ext4_common.c:2011:6: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat] fs/ext4/ext4_common.c: In function 'ext4fs_mount': fs/ext4/ext4_common.c:2230:2: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat] fs/ext4/ext4_common.c:2230:2: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Wformat] CC spl/fs/ext4/dev.o LD spl/fs/ext4/built-in.o CC spl/fs/fat/fat_write.o In file included from fs/fat/fat_write.c:18:0: fs/fat/fat.c: In function 'get_fatent': fs/fat/fat.c:187:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat.c:187:2: warning: format '%d' expects argument of type 'int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat.c:187:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type '__u32' [-Wformat] fs/fat/fat.c:187:2: warning: format '%d' expects argument of type 'int', but argument 6 has type '__u32' [-Wformat] fs/fat/fat.c:248:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat.c:248:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat.c: In function 'get_cluster': fs/fat/fat.c:272:2: warning: format '%d' expects argument of type 'int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:272:2: warning: format '%d' expects argument of type 'int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat.c: In function 'get_contents': fs/fat/fat.c:353:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:383:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:399:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:426:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c: In function 'get_dentfromdir': fs/fat/fat.c:639:10: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:695:8: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:717:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:726:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c: In function 'do_fat_read_at': fs/fat/fat.c:877:2: warning: format '%d' expects argument of type 'int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat.c:879:2: warning: format '%d' expects argument of type 'int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:879:2: warning: format '%d' expects argument of type 'int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat.c:879:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat] fs/fat/fat.c:917:4: warning: format '%d' expects argument of type 'int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:979:10: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:1036:8: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:1059:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat.c:1160:2: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'get_fatent_value': fs/fat/fat_write.c:145:3: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c:168:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat_write.c:168:2: warning: format '%d' expects argument of type 'int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat_write.c:168:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type '__u32' [-Wformat] fs/fat/fat_write.c:168:2: warning: format '%d' expects argument of type 'int', but argument 6 has type '__u32' [-Wformat] fs/fat/fat_write.c:236:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat_write.c:236:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat_write.c:236:2: warning: format '%x' expects argument of type 'unsigned int', but argument 5 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'determine_fatent': fs/fat/fat_write.c:537:2: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat_write.c:537:2: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'set_cluster': fs/fat/fat_write.c:560:2: warning: format '%d' expects argument of type 'int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c:560:2: warning: format '%d' expects argument of type 'int', but argument 3 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'set_contents': fs/fat/fat_write.c:697:5: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c:742:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c: In function 'find_directory_entry': fs/fat/fat_write.c:885:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] fs/fat/fat_write.c:921:4: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type '__u32' [-Wformat] LD spl/fs/fat/built-in.o LD spl/fs/built-in.o CC spl/lib/hashtable.o CC spl/lib/errno.o CC spl/lib/display_options.o lib/display_options.c: In function 'print_size': lib/display_options.c:42:3: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'long long unsigned int' [-Wformat] lib/display_options.c: In function 'print_buffer': lib/display_options.c:128:4: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat] CC spl/lib/crc32.o CC spl/lib/ctype.o CC spl/lib/div64.o CC spl/lib/hang.o CC spl/lib/linux_compat.o CC spl/lib/linux_string.o CC spl/lib/string.o CC spl/lib/time.o CC spl/lib/vsprintf.o LD spl/lib/built-in.o LDS spl/u-boot-spl.lds LD spl/u-boot-spl OBJCOPY spl/u-boot-spl.bin MKIMAGE MLO
---
fs/fat/fat.c | 35 ++++++++++++++++++----------------- include/u-boot/zlib.h | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-)
fs/fat/fat.c +18 -17
@@ -9,6 +9,7 @@* SPDX-License-Identifier: GPL-2.0+ */ +#include <inttypes.h> #include <common.h> #include <config.h> #include <exports.h>
@@ -184,7 +185,7 @@ static __u32 get_fatent(fsdata *mydata, __u32 entry)return ret; } -debug ("FAT%d: entry: 0x%04x = %d, offset: 0x%04x = %d\n" , +debug ("FAT%d: entry: 0x%04" PRIx32" = %" PRId32", offset: 0x%04" PRIx32" = %" PRId32"\n" , mydata->fatsize, entry, entry, offset, offset);/* Read a new block of FAT entries into the cache. */
@@ -245,7 +246,7 @@ static __u32 get_fatent(fsdata *mydata, __u32 entry) }break ; } -debug ("FAT%d: ret: %08x, offset: %04x\n" , +debug ("FAT%d: ret: %08" PRIx32", offset: %04" PRIx32"\n" , mydata->fatsize, ret, offset);return ret;
@@ -269,7 +270,7 @@ get_cluster(fsdata *mydata, __u32 clustnum, __u8 *buffer, unsigned long size) startsect = mydata->rootdir_sect; } -debug ("gc - clustnum: %d, startsect: %d\n" , clustnum, startsect); +debug ("gc - clustnum: %" PRId32", startsect: %" PRId32"\n" , clustnum, startsect);if ((unsigned long )buffer & (ARCH_DMA_MINALIGN -1 )) {ALLOC_CACHE_ALIGN_BUFFER (__u8, tmpbuf, mydata->sect_size);
@@ -350,7 +351,7 @@ static int get_contents(fsdata *mydata, dir_entry *dentptr, loff_t pos,while (actsize <= pos) { curclust =get_fatent (mydata, curclust);if (CHECK_CLUST (curclust, mydata->fatsize)) { -debug ("curclust: 0x%x\n" , curclust); +debug ("curclust: 0x%" PRIx32"\n" , curclust);debug ("Invalid FAT entry\n" );return 0 ; }
@@ -380,7 +381,7 @@ static int get_contents(fsdata *mydata, dir_entry *dentptr, loff_t pos, curclust =get_fatent (mydata, curclust);if (CHECK_CLUST (curclust, mydata->fatsize)) { -debug ("curclust: 0x%x\n" , curclust); +debug ("curclust: 0x%" PRIx32"\n" , curclust);debug ("Invalid FAT entry\n" );return 0 ; }
@@ -396,7 +397,7 @@ static int get_contents(fsdata *mydata, dir_entry *dentptr, loff_t pos,if ((newclust -1 ) != endclust) goto getit;if (CHECK_CLUST (newclust, mydata->fatsize)) { -debug ("curclust: 0x%x\n" , newclust); +debug ("curclust: 0x%" PRIx32"\n" , newclust);debug ("Invalid FAT entry\n" );return 0 ; }
@@ -423,7 +424,7 @@ getit: curclust =get_fatent (mydata, endclust);if (CHECK_CLUST (curclust, mydata->fatsize)) { -debug ("curclust: 0x%x\n" , curclust); +debug ("curclust: 0x%" PRIx32"\n" , curclust);printf ("Invalid FAT entry\n" );return 0 ; }
@@ -633,7 +634,7 @@ static dir_entry *get_dentfromdir(fsdata *mydata, int startsect, }if (doit) {if (dirc ==' ' ) { -printf (" %8u %s%c\n" , +printf (" %8" PRIu32"%s%c\n" ,FAT2CPU32 (dentptr->size), l_name, dirc);
@@ -690,7 +691,7 @@ static dir_entry *get_dentfromdir(fsdata *mydata, int startsect,if (doit) {if (dirc ==' ' ) { -printf (" %8u %s%c\n" , +printf (" %8" PRIu32"%s%c\n" ,FAT2CPU32 (dentptr->size), s_name, dirc); }else {
@@ -714,7 +715,7 @@ static dir_entry *get_dentfromdir(fsdata *mydata, int startsect,debug ("DentName: %s" , s_name);debug (", start: 0x%x" ,START (dentptr)); -debug (", size: 0x%x %s\n" , +debug (", size: 0x%" PRIx32" %s\n" ,FAT2CPU32 (dentptr->size), (dentptr->attr &ATTR_DIR ) ?"(DIR)" :"" );
@@ -723,7 +724,7 @@ static dir_entry *get_dentfromdir(fsdata *mydata, int startsect, curclust =get_fatent (mydata, curclust);if (CHECK_CLUST (curclust, mydata->fatsize)) { -debug ("curclust: 0x%x\n" , curclust); +debug ("curclust: 0x%" PRIx32"\n" , curclust);printf ("Invalid FAT entry\n" );return NULL ; }
@@ -874,7 +875,7 @@ int do_fat_read_at(const char *filename, loff_t pos, void *buffer,if (vfat_enabled)debug ("VFAT Support enabled\n" ); -debug ("FAT%d, fat_sect: %d, fatlength: %d\n" , +debug ("FAT%d, fat_sect: %d, fatlength: %" PRId32"\n" , mydata->fatsize, mydata->fat_sect, mydata->fatlength); debug("Rootdir begins at cluster: %d, sector: %d, offset: %x\n" "Data begins at: %d\n",
@@ -914,7 +915,7 @@ int do_fat_read_at(const char *filename, loff_t pos, void *buffer,int i;if (j ==0 ) { -debug ("FAT read sect=%d, clust_size=%d, DIRENTSPERBLOCK=%zd\n" , +debug ("FAT read sect=%" PRId32", clust_size=%d, DIRENTSPERBLOCK=%zd\n" , cursect, mydata->clust_size,DIRENTSPERBLOCK ); if (disk_read(cursect,
@@ -973,7 +974,7 @@ int do_fat_read_at(const char *filename, loff_t pos, void *buffer, }if (doit) {if (dirc ==' ' ) { -printf (" %8u %s%c\n" , +printf (" %8" PRIu32" %s%c\n" ,FAT2CPU32 (dentptr->size), l_name, dirc);
@@ -1031,7 +1032,7 @@ int do_fat_read_at(const char *filename, loff_t pos, void *buffer, }if (doit) {if (dirc ==' ' ) { -printf (" %8u %s%c\n" , +printf (" %8" PRIu32" %s%c\n" ,FAT2CPU32 (dentptr->size), s_name, dirc); }else {
@@ -1056,7 +1057,7 @@ int do_fat_read_at(const char *filename, loff_t pos, void *buffer,debug ("RootName: %s" , s_name);debug (", start: 0x%x" ,START (dentptr)); -debug (", size: 0x%x %s\n" , +debug (", size: 0x%" PRIx32" %s\n" ,FAT2CPU32 (dentptr->size), isdir ?"(DIR)" :"" );
@@ -1157,7 +1158,7 @@ rootdir_done: }else { ret =get_contents (mydata, dentptr, pos, buffer, maxsize, size); } -debug ("Size: %u, got: %llu\n" ,FAT2CPU32 (dentptr->size), *size); +debug ("Size: %" PRIu32", got: %llu\n" ,FAT2CPU32 (dentptr->size), *size); exit:free (mydata->fatbuf);
include/u-boot/zlib.h +1 -1
@@ -694,7 +694,7 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. */ -ZEXTERN uInt ZEXPORT crc32 OF((uInt crc, const Bytef *buf, uInt len)); +ZEXTERN uint32_t ZEXPORT crc32 OF((uint32_t crc, const Bytef *buf, uInt len));/* Update a running CRC-32 with the bytes buf[0..len-1] and return the updated CRC-32. If buf is NULL, this function returns the required initial
Signature · 1 line
1.9.1
PATCH 6/7 Use PRIx32 etc. to print out 32bit-width variable (MAD)
Hi Masahiro,
Quoted 9 lines · Masahiro Yamada
If <
stdint.h> is included, the definition of fixed-width types are compiler-dependent.For example, some compilers use "unsigned long" and some compilers use "unsigned int" for 32bit width typedefs.
That means, we can no longer use hard-code "%x" or "%d" to print 32bit-width variables.
Quoted 7 lines
We use
printf()everywhere to print 32bit variables.This commit only fixes
fs/fat/fat.cbecause I cannot imagine how many days I have to spend to eliminate all the warnings. (Of course, I do not think we should do such ridiculous things.)Just in case, I put the warnings I got for Panda board below:
Yes indeed, this patch is ugly. We need to keep 32-bit types consistent. I felt it was possible to live with 64-bit types being inconsistent because 64-bit printf()s are so rare. But it would be better to avoid the inconsistency altogether.
Regards,
Simon
PATCH 7/7 Make BITS_PER_LONG compiler-dependent (MAD)
In reply to Masahiro YamadaLinux expects "unsigned long" has the same bit-width as the pointer, i.e. the size of "unsigned long" is 4 on 32-bit compilers (ILP32) and it is 8 on 64-bit compilers (LLP64).
It provides us the convenience in return of the limitation that LP64 data model is not supported.
U-Boot used to follow Linux's way, but it does not now.
Including <stdint.h> means the width of "long" type is provided by the compiler.
Use __SIZEOF_LONG__ instead of hard-coding BITS_PER_LONG.
---
arch/arc/include/asm/types.h | 4 ++++ arch/arm/include/asm/types.h | 4 ++++ arch/avr32/include/asm/types.h | 4 ++++ arch/blackfin/include/asm/types.h | 4 ++++ arch/m68k/include/asm/types.h | 4 ++++ arch/microblaze/include/asm/types.h | 4 ++++ arch/mips/include/asm/types.h | 4 ++++ arch/nds32/include/asm/types.h | 4 ++++ arch/nios2/include/asm/types.h | 4 ++++ arch/openrisc/include/asm/types.h | 4 ++++ arch/powerpc/include/asm/types.h | 4 ++++ arch/sandbox/include/asm/types.h | 4 ++++ arch/sh/include/asm/types.h | 4 ++++ arch/sparc/include/asm/types.h | 4 ++++ arch/x86/include/asm/types.h | 4 ++++ 15 files changed, 60 insertions(+)
arch/arc/include/asm/types.h +4 -0
@@ -73,7 +73,11 @@ typedef signed long long s64;typedef unsigned long long u64 ;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif /* Dma addresses are 32-bits wide. */
arch/arm/include/asm/types.h +4 -0
@@ -72,11 +72,15 @@ typedef unsigned long long u64;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #ifdef CONFIG_ARM64 #define BITS_PER_LONG 64#else /* CONFIG_ARM64 */ #define BITS_PER_LONG 32#endif /* CONFIG_ARM64 */ +#endif /* Dma addresses are 32-bits wide. */
arch/avr32/include/asm/types.h +4 -0
@@ -51,7 +51,11 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif #ifndef __ASSEMBLY__
arch/blackfin/include/asm/types.h +4 -0
@@ -88,7 +88,11 @@ typedef unsigned long long u64;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif /* Dma addresses are 32-bits wide. */
arch/m68k/include/asm/types.h +4 -0
@@ -72,7 +72,11 @@ typedef unsigned long long u64;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif /* DMA addresses are 32-bits wide */ typedef u32 dma_addr_t ;
arch/microblaze/include/asm/types.h +4 -0
@@ -79,7 +79,11 @@ typedef unsigned long long u64;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif /* Dma addresses are 32-bits wide. */
arch/mips/include/asm/types.h +4 -0
@@ -58,7 +58,11 @@ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG _MIPS_SZLONG +#endif #ifndef __ASSEMBLY__
arch/nds32/include/asm/types.h +4 -0
@@ -79,7 +79,11 @@ typedef unsigned long long u64;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif #include <stddef.h>
arch/nios2/include/asm/types.h +4 -0
@@ -78,7 +78,11 @@ typedef unsigned long long u64;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif /* Dma addresses are 32-bits wide. */
arch/openrisc/include/asm/types.h +4 -0
@@ -84,7 +84,11 @@ typedef unsigned long long u64;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif /* Dma addresses are 32-bits wide. */
arch/powerpc/include/asm/types.h +4 -0
@@ -71,7 +71,11 @@ typedef unsigned long long u64;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif #ifdef CONFIG_PHYS_64BIT typedef unsigned long long dma_addr_t ;
arch/sandbox/include/asm/types.h +4 -0
@@ -80,7 +80,11 @@ typedef __INT64_TYPE__ s64;typedef __UINT64_TYPE__ u64 ;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG CONFIG_SANDBOX_BITS_PER_LONG +#endif typedef unsigned long dma_addr_t ;typedef u32 phys_addr_t ;
arch/sh/include/asm/types.h +4 -0
@@ -46,7 +46,11 @@ __extension__ typedef unsigned long long __u64;*/ #ifdef __KERNEL__ +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif #ifndef __ASSEMBLY__
arch/sparc/include/asm/types.h +4 -0
@@ -77,7 +77,11 @@ typedef unsigned int u32;typedef signed long long s64 ;typedef unsigned long long u64 ; +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif /* DMA addresses are 32-bits wide */ typedef u32 dma_addr_t ;
arch/x86/include/asm/types.h +4 -0
@@ -75,7 +75,11 @@ typedef __INT64_TYPE__ s64;typedef __UINT64_TYPE__ u64 ;#endif +#ifdef CONFIG_USE_STDINT +#define BITS_PER_LONG ((__SIZEOF_LONG__) * 8) +#else #define BITS_PER_LONG 32 +#endif /* Dma addresses are 32-bits wide. */
Signature · 1 line
1.9.1
PATCH 7/7 Make BITS_PER_LONG compiler-dependent (MAD)
Hi Masahiro,
Quoted 6 lines · Masahiro Yamada
Linux expects "unsigned long" has the same bit-width as the pointer, i.e. the size of "unsigned long" is 4 on 32-bit compilers (ILP32) and it is 8 on 64-bit compilers (LLP64).
It provides us the convenience in return of the limitation that LP64 data model is not supported.
Quoted 7 lines
U-Boot used to follow Linux's way, but it does not now.
Including <
stdint.h> means the width of "long" type is provided by the compiler.Use
__SIZEOF_LONG__instead of hard-codingBITS_PER_LONG.
From what I can tell the size of the types is no different with and without stdint.h. It is just the names of the typedefs that are used for each type that changes. So if we follow the kernel approach, maybe this patch isn't needed either?
Quoted 7 lines
Signed-off-by Masahiro Yamada <[email protected]>Cc Gabe Black <[email protected]>Cc Simon Glass <[email protected]>Cc Bill Richardson <[email protected]>Cc Tom Rini <[email protected]>---
Quoted 17 lines
arch/arc/include/asm/types.h | 4 ++++ arch/arm/include/asm/types.h | 4 ++++ arch/avr32/include/asm/types.h | 4 ++++ arch/blackfin/include/asm/types.h | 4 ++++ arch/m68k/include/asm/types.h | 4 ++++ arch/microblaze/include/asm/types.h | 4 ++++ arch/mips/include/asm/types.h | 4 ++++ arch/nds32/include/asm/types.h | 4 ++++ arch/nios2/include/asm/types.h | 4 ++++ arch/openrisc/include/asm/types.h | 4 ++++ arch/powerpc/include/asm/types.h | 4 ++++ arch/sandbox/include/asm/types.h | 4 ++++ arch/sh/include/asm/types.h | 4 ++++ arch/sparc/include/asm/types.h | 4 ++++ arch/x86/include/asm/types.h | 4 ++++ 15 files changed, 60 insertions(+)
[snip]
Regards,
Simon
cover Crazy patches (Nightmare of <stdint.h>)
In reply to Masahiro YamadaDear Masahiro,
Quoted 4 lines · In message <[email protected]> you…
Commit
0d296cc2d3b(Provide option to avoid defining a custome version ofuintptr_t) and commit4166ecb247(Add some standard headers external code might need) made a horrible decision.
I fully agree with that statement.
Quoted 2 lines
It looks like Simon is not understanding me. Nor does anybody else have any interest in this topic.
Sorry, I missed that, largely for personal reasons (resulting in even harder than usual lack of time).
Quoted 2 lines
This series is here to show what will happen next
and how horrible it is.
Yes, it is horrible, and we should not do that. I just commented on patch 5/7, but the applies to the whole series:
We should reconsider the aforementioned commits (read: revert and/or replace with a more sensible implementation).
We should really make sure to 1) keep the code readable and
2) especially keep the code compatible with Linux coding.
Best regards,
Wolfgang Denk
Signature · 7 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de I believe you find life such a problem because you think there are the good people and the bad people. You're wrong, of course. There are, always and only, the bad people, but some of them are on oppo- site sides. - Terry Pratchett, _Guards! Guards!_