Btrfs-progs: Fix compiler warnings on PPC64
The kernel uses unsigned long long for u64, but PPC64 uses unsigned long by default. This results in compilation warnings such as: print-tree.c:333: warning: format '%llu' expects type 'long long unsigned int', but argument 4 has type 'u64' To fix this, the macro __KERNEL__ needs to be defined before including the file <asm/types.h>. This can be done by defining the macro in "kerncompat.h" and making it the first included file in the relevant header files; this fixes the compiler warnings on PPC64. Reviewed-by: David Sterba <dsterba@suse.cz> Signed-off-by: Wade Cline <clinew@linux.vnet.ibm.com>
This commit is contained in:
parent
91d9eec1ff
commit
0d5cfddc2c
|
@ -21,6 +21,8 @@
|
|||
#define _XOPEN_SOURCE 700
|
||||
#define _BSD_SOURCE
|
||||
|
||||
#include "kerncompat.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdint.h>
|
||||
#include <dirent.h>
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
* Boston, MA 021110-1307, USA.
|
||||
*/
|
||||
|
||||
#include "kerncompat.h"
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/stat.h>
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include "kerncompat.h"
|
||||
|
||||
#include <unistd.h>
|
||||
#include <stdint.h>
|
||||
#include <dirent.h>
|
||||
|
|
|
@ -18,6 +18,9 @@
|
|||
|
||||
#define _XOPEN_SOURCE 600
|
||||
#define _GNU_SOURCE 1
|
||||
|
||||
#include "kerncompat.h"
|
||||
|
||||
#ifndef __CHECKER__
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/mount.h>
|
||||
|
@ -31,7 +34,7 @@
|
|||
#include <unistd.h>
|
||||
#include <uuid/uuid.h>
|
||||
#include <linux/fs.h>
|
||||
#include "kerncompat.h"
|
||||
|
||||
#include "ctree.h"
|
||||
#include "disk-io.h"
|
||||
#include "volumes.h"
|
||||
|
|
12
kerncompat.h
12
kerncompat.h
|
@ -18,6 +18,7 @@
|
|||
|
||||
#ifndef __KERNCOMPAT
|
||||
#define __KERNCOMPAT
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
|
@ -57,11 +58,22 @@
|
|||
#endif
|
||||
|
||||
#ifndef __CHECKER__
|
||||
/*
|
||||
* Since we're using primitive definitions from kernel-space, we need to
|
||||
* define __KERNEL__ so that system header files know which definitions
|
||||
* to use.
|
||||
*/
|
||||
#define __KERNEL__
|
||||
#include <asm/types.h>
|
||||
typedef __u32 u32;
|
||||
typedef __u64 u64;
|
||||
typedef __u16 u16;
|
||||
typedef __u8 u8;
|
||||
/*
|
||||
* Continuing to define __KERNEL__ breaks others parts of the code, so
|
||||
* we can just undefine it now that we have the correct headers...
|
||||
*/
|
||||
#undef __KERNEL__
|
||||
#else
|
||||
typedef unsigned int u32;
|
||||
typedef unsigned int __u32;
|
||||
|
|
3
mkfs.c
3
mkfs.c
|
@ -19,6 +19,8 @@
|
|||
#define _XOPEN_SOURCE 500
|
||||
#define _GNU_SOURCE
|
||||
|
||||
#include "kerncompat.h"
|
||||
|
||||
#ifndef __CHECKER__
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/mount.h>
|
||||
|
@ -37,7 +39,6 @@
|
|||
#include <linux/fs.h>
|
||||
#include <ctype.h>
|
||||
#include <attr/xattr.h>
|
||||
#include "kerncompat.h"
|
||||
#include "ctree.h"
|
||||
#include "disk-io.h"
|
||||
#include "volumes.h"
|
||||
|
|
|
@ -18,6 +18,9 @@
|
|||
|
||||
#define _XOPEN_SOURCE 500
|
||||
#define _GNU_SOURCE 1
|
||||
|
||||
#include "kerncompat.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -25,7 +28,7 @@
|
|||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <zlib.h>
|
||||
#include "kerncompat.h"
|
||||
|
||||
#include "ctree.h"
|
||||
#include "disk-io.h"
|
||||
#include "print-tree.h"
|
||||
|
|
Loading…
Reference in New Issue