xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	Wei Liu <wei.liu2@citrix.com>,
	George Dunlap <George.Dunlap@eu.citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Ian Jackson <ian.jackson@eu.citrix.com>, Tim Deegan <tim@xen.org>,
	Jan Beulich <JBeulich@suse.com>
Subject: [PATCH 5/6] xen/build: Use the system stddef.h and inttypes.h headers
Date: Wed, 22 Jun 2016 12:24:12 +0100	[thread overview]
Message-ID: <1466594653-28241-6-git-send-email-andrew.cooper3@citrix.com> (raw)
In-Reply-To: <1466594653-28241-1-git-send-email-andrew.cooper3@citrix.com>

These two headers must be changed in unison, because as noted in c/s 65808a8e
"libelf: check all pointer accesses", PRIxPTR is broken in Xen's local copy of
inttypes.h in 32bit builds.

This is precisely why we shouldn't have our own local copies of the standard
header files.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: George Dunlap <George.Dunlap@eu.citrix.com>
CC: Ian Jackson <ian.jackson@eu.citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Tim Deegan <tim@xen.org>
CC: Wei Liu <wei.liu2@citrix.com>
---
 xen/arch/x86/srat.c                      |   1 -
 xen/include/asm-arm/platforms/vexpress.h |   2 +-
 xen/include/asm-arm/types.h              |   5 -
 xen/include/asm-x86/types.h              |   5 -
 xen/include/xen/console.h                |   2 +-
 xen/include/xen/inttypes.h               | 248 -------------------------------
 xen/include/xen/lib.h                    |   1 -
 xen/include/xen/libelf.h                 |  10 +-
 xen/include/xen/types.h                  |   4 +-
 xen/include/xen/xenoprof.h               |   2 +-
 10 files changed, 6 insertions(+), 274 deletions(-)
 delete mode 100644 xen/include/xen/inttypes.h

diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c
index d86783e..b8cf46a 100644
--- a/xen/arch/x86/srat.c
+++ b/xen/arch/x86/srat.c
@@ -13,7 +13,6 @@
 
 #include <xen/init.h>
 #include <xen/mm.h>
-#include <xen/inttypes.h>
 #include <xen/nodemask.h>
 #include <xen/acpi.h>
 #include <xen/numa.h>
diff --git a/xen/include/asm-arm/platforms/vexpress.h b/xen/include/asm-arm/platforms/vexpress.h
index 5cf3aba..d599530 100644
--- a/xen/include/asm-arm/platforms/vexpress.h
+++ b/xen/include/asm-arm/platforms/vexpress.h
@@ -27,7 +27,7 @@
 #define SP810_ADDRESS 0x1C020000
 
 #ifndef __ASSEMBLY__
-#include <xen/inttypes.h>
+#include <xen/types.h>
 
 int vexpress_syscfg(int write, int function, int device, uint32_t *data);
 #endif
diff --git a/xen/include/asm-arm/types.h b/xen/include/asm-arm/types.h
index 09e5455..fc43fb4 100644
--- a/xen/include/asm-arm/types.h
+++ b/xen/include/asm-arm/types.h
@@ -55,11 +55,6 @@ typedef u64 register_t;
 #define PRIregister "lx"
 #endif
 
-#if defined(__SIZE_TYPE__)
-typedef __SIZE_TYPE__ size_t;
-#else
-typedef unsigned long size_t;
-#endif
 typedef signed long ssize_t;
 
 typedef char bool_t;
diff --git a/xen/include/asm-x86/types.h b/xen/include/asm-x86/types.h
index b82fa58..c37b516 100644
--- a/xen/include/asm-x86/types.h
+++ b/xen/include/asm-x86/types.h
@@ -34,11 +34,6 @@ typedef unsigned long paddr_t;
 #define INVALID_PADDR (~0UL)
 #define PRIpaddr "016lx"
 
-#if defined(__SIZE_TYPE__)
-typedef __SIZE_TYPE__ size_t;
-#else
-typedef unsigned long size_t;
-#endif
 typedef signed long ssize_t;
 
 typedef char bool_t;
diff --git a/xen/include/xen/console.h b/xen/include/xen/console.h
index ea06fd8..243031d 100644
--- a/xen/include/xen/console.h
+++ b/xen/include/xen/console.h
@@ -7,7 +7,7 @@
 #ifndef __CONSOLE_H__
 #define __CONSOLE_H__
 
-#include <xen/inttypes.h>
+#include <xen/types.h>
 #include <public/xen.h>
 
 struct xen_sysctl_readconsole;
diff --git a/xen/include/xen/inttypes.h b/xen/include/xen/inttypes.h
deleted file mode 100644
index 28c0053..0000000
--- a/xen/include/xen/inttypes.h
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Copyright (C) 1997-2001, 2004 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; If not, see <http://www.gnu.org/licenses/>.  */
-
-/*
- *	ISO C99: 7.8 Format conversion of integer types	<inttypes.h>
- */
-
-#ifndef _XEN_INTTYPES_H
-#define _XEN_INTTYPES_H	1
-
-#include <xen/types.h>
-
-# if BITS_PER_LONG == 64
-#  define __PRI64_PREFIX	"l"
-#  define __PRIPTR_PREFIX	"l"
-# else
-#  define __PRI64_PREFIX	"ll"
-#  define __PRIPTR_PREFIX
-# endif
-
-/* Macros for printing format specifiers.  */
-
-/* Decimal notation.  */
-# define PRId8		"d"
-# define PRId16		"d"
-# define PRId32		"d"
-# define PRId64		__PRI64_PREFIX "d"
-
-# define PRIdLEAST8	"d"
-# define PRIdLEAST16	"d"
-# define PRIdLEAST32	"d"
-# define PRIdLEAST64	__PRI64_PREFIX "d"
-
-# define PRIdFAST8	"d"
-# define PRIdFAST16	__PRIPTR_PREFIX "d"
-# define PRIdFAST32	__PRIPTR_PREFIX "d"
-# define PRIdFAST64	__PRI64_PREFIX "d"
-
-
-# define PRIi8		"i"
-# define PRIi16		"i"
-# define PRIi32		"i"
-# define PRIi64		__PRI64_PREFIX "i"
-
-# define PRIiLEAST8	"i"
-# define PRIiLEAST16	"i"
-# define PRIiLEAST32	"i"
-# define PRIiLEAST64	__PRI64_PREFIX "i"
-
-# define PRIiFAST8	"i"
-# define PRIiFAST16	__PRIPTR_PREFIX "i"
-# define PRIiFAST32	__PRIPTR_PREFIX "i"
-# define PRIiFAST64	__PRI64_PREFIX "i"
-
-/* Octal notation.  */
-# define PRIo8		"o"
-# define PRIo16		"o"
-# define PRIo32		"o"
-# define PRIo64		__PRI64_PREFIX "o"
-
-# define PRIoLEAST8	"o"
-# define PRIoLEAST16	"o"
-# define PRIoLEAST32	"o"
-# define PRIoLEAST64	__PRI64_PREFIX "o"
-
-# define PRIoFAST8	"o"
-# define PRIoFAST16	__PRIPTR_PREFIX "o"
-# define PRIoFAST32	__PRIPTR_PREFIX "o"
-# define PRIoFAST64	__PRI64_PREFIX "o"
-
-/* Unsigned integers.  */
-# define PRIu8		"u"
-# define PRIu16		"u"
-# define PRIu32		"u"
-# define PRIu64		__PRI64_PREFIX "u"
-
-# define PRIuLEAST8	"u"
-# define PRIuLEAST16	"u"
-# define PRIuLEAST32	"u"
-# define PRIuLEAST64	__PRI64_PREFIX "u"
-
-# define PRIuFAST8	"u"
-# define PRIuFAST16	__PRIPTR_PREFIX "u"
-# define PRIuFAST32	__PRIPTR_PREFIX "u"
-# define PRIuFAST64	__PRI64_PREFIX "u"
-
-/* lowercase hexadecimal notation.  */
-# define PRIx8		"x"
-# define PRIx16		"x"
-# define PRIx32		"x"
-# define PRIx64		__PRI64_PREFIX "x"
-
-# define PRIxLEAST8	"x"
-# define PRIxLEAST16	"x"
-# define PRIxLEAST32	"x"
-# define PRIxLEAST64	__PRI64_PREFIX "x"
-
-# define PRIxFAST8	"x"
-# define PRIxFAST16	__PRIPTR_PREFIX "x"
-# define PRIxFAST32	__PRIPTR_PREFIX "x"
-# define PRIxFAST64	__PRI64_PREFIX "x"
-
-/* UPPERCASE hexadecimal notation.  */
-# define PRIX8		"X"
-# define PRIX16		"X"
-# define PRIX32		"X"
-# define PRIX64		__PRI64_PREFIX "X"
-
-# define PRIXLEAST8	"X"
-# define PRIXLEAST16	"X"
-# define PRIXLEAST32	"X"
-# define PRIXLEAST64	__PRI64_PREFIX "X"
-
-# define PRIXFAST8	"X"
-# define PRIXFAST16	__PRIPTR_PREFIX "X"
-# define PRIXFAST32	__PRIPTR_PREFIX "X"
-# define PRIXFAST64	__PRI64_PREFIX "X"
-
-
-/* Macros for printing `intmax_t' and `uintmax_t'.  */
-# define PRIdMAX	__PRI64_PREFIX "d"
-# define PRIiMAX	__PRI64_PREFIX "i"
-# define PRIoMAX	__PRI64_PREFIX "o"
-# define PRIuMAX	__PRI64_PREFIX "u"
-# define PRIxMAX	__PRI64_PREFIX "x"
-# define PRIXMAX	__PRI64_PREFIX "X"
-
-
-/* Macros for printing `intptr_t' and `uintptr_t'.  */
-# define PRIdPTR	__PRIPTR_PREFIX "d"
-# define PRIiPTR	__PRIPTR_PREFIX "i"
-# define PRIoPTR	__PRIPTR_PREFIX "o"
-# define PRIuPTR	__PRIPTR_PREFIX "u"
-# define PRIxPTR	__PRIPTR_PREFIX "x"
-# define PRIXPTR	__PRIPTR_PREFIX "X"
-
-
-/* Macros for scanning format specifiers.  */
-
-/* Signed decimal notation.  */
-# define SCNd8		"hhd"
-# define SCNd16		"hd"
-# define SCNd32		"d"
-# define SCNd64		__PRI64_PREFIX "d"
-
-# define SCNdLEAST8	"hhd"
-# define SCNdLEAST16	"hd"
-# define SCNdLEAST32	"d"
-# define SCNdLEAST64	__PRI64_PREFIX "d"
-
-# define SCNdFAST8	"hhd"
-# define SCNdFAST16	__PRIPTR_PREFIX "d"
-# define SCNdFAST32	__PRIPTR_PREFIX "d"
-# define SCNdFAST64	__PRI64_PREFIX "d"
-
-/* Signed decimal notation.  */
-# define SCNi8		"hhi"
-# define SCNi16		"hi"
-# define SCNi32		"i"
-# define SCNi64		__PRI64_PREFIX "i"
-
-# define SCNiLEAST8	"hhi"
-# define SCNiLEAST16	"hi"
-# define SCNiLEAST32	"i"
-# define SCNiLEAST64	__PRI64_PREFIX "i"
-
-# define SCNiFAST8	"hhi"
-# define SCNiFAST16	__PRIPTR_PREFIX "i"
-# define SCNiFAST32	__PRIPTR_PREFIX "i"
-# define SCNiFAST64	__PRI64_PREFIX "i"
-
-/* Unsigned decimal notation.  */
-# define SCNu8		"hhu"
-# define SCNu16		"hu"
-# define SCNu32		"u"
-# define SCNu64		__PRI64_PREFIX "u"
-
-# define SCNuLEAST8	"hhu"
-# define SCNuLEAST16	"hu"
-# define SCNuLEAST32	"u"
-# define SCNuLEAST64	__PRI64_PREFIX "u"
-
-# define SCNuFAST8	"hhu"
-# define SCNuFAST16	__PRIPTR_PREFIX "u"
-# define SCNuFAST32	__PRIPTR_PREFIX "u"
-# define SCNuFAST64	__PRI64_PREFIX "u"
-
-/* Octal notation.  */
-# define SCNo8		"hho"
-# define SCNo16		"ho"
-# define SCNo32		"o"
-# define SCNo64		__PRI64_PREFIX "o"
-
-# define SCNoLEAST8	"hho"
-# define SCNoLEAST16	"ho"
-# define SCNoLEAST32	"o"
-# define SCNoLEAST64	__PRI64_PREFIX "o"
-
-# define SCNoFAST8	"hho"
-# define SCNoFAST16	__PRIPTR_PREFIX "o"
-# define SCNoFAST32	__PRIPTR_PREFIX "o"
-# define SCNoFAST64	__PRI64_PREFIX "o"
-
-/* Hexadecimal notation.  */
-# define SCNx8		"hhx"
-# define SCNx16		"hx"
-# define SCNx32		"x"
-# define SCNx64		__PRI64_PREFIX "x"
-
-# define SCNxLEAST8	"hhx"
-# define SCNxLEAST16	"hx"
-# define SCNxLEAST32	"x"
-# define SCNxLEAST64	__PRI64_PREFIX "x"
-
-# define SCNxFAST8	"hhx"
-# define SCNxFAST16	__PRIPTR_PREFIX "x"
-# define SCNxFAST32	__PRIPTR_PREFIX "x"
-# define SCNxFAST64	__PRI64_PREFIX "x"
-
-
-/* Macros for scanning `intmax_t' and `uintmax_t'.  */
-# define SCNdMAX	__PRI64_PREFIX "d"
-# define SCNiMAX	__PRI64_PREFIX "i"
-# define SCNoMAX	__PRI64_PREFIX "o"
-# define SCNuMAX	__PRI64_PREFIX "u"
-# define SCNxMAX	__PRI64_PREFIX "x"
-
-/* Macros for scaning `intptr_t' and `uintptr_t'.  */
-# define SCNdPTR	__PRIPTR_PREFIX "d"
-# define SCNiPTR	__PRIPTR_PREFIX "i"
-# define SCNoPTR	__PRIPTR_PREFIX "o"
-# define SCNuPTR	__PRIPTR_PREFIX "u"
-# define SCNxPTR	__PRIPTR_PREFIX "x"
-
-#endif /* _XEN_INTTYPES_H */
diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h
index 66f1d04..10c47a9 100644
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -1,7 +1,6 @@
 #ifndef __LIB_H__
 #define __LIB_H__
 
-#include <xen/inttypes.h>
 #include <xen/types.h>
 #include <xen/xmalloc.h>
 #include <xen/string.h>
diff --git a/xen/include/xen/libelf.h b/xen/include/xen/libelf.h
index 95b5370..d430c83 100644
--- a/xen/include/xen/libelf.h
+++ b/xen/include/xen/libelf.h
@@ -83,15 +83,7 @@ typedef uintptr_t elf_ptrval;
 #define ELF_HANDLE_DECL(structname)          structname##_handle
   /* Provides a type declaration for a HANDLE. */
 
-#ifdef __XEN__
-# define ELF_PRPTRVAL "lx"
-  /*
-   * PRIxPTR is misdefined in xen/include/xen/inttypes.h, on 32-bit,
-   * to "x", when in fact uintptr_t is an unsigned long.
-   */
-#else
-# define ELF_PRPTRVAL PRIxPTR
-#endif
+#define ELF_PRPTRVAL PRIxPTR
   /* printf format a la PRId... for a PTRVAL */
 
 #define ELF_DEFINE_HANDLE(structname)                                   \
diff --git a/xen/include/xen/types.h b/xen/include/xen/types.h
index a222c6e..3ea5941 100644
--- a/xen/include/xen/types.h
+++ b/xen/include/xen/types.h
@@ -2,8 +2,10 @@
 #define __TYPES_H__
 
 /* Use the C freestanding headers. */
+#include <inttypes.h>
 #include <limits.h>
 #include <stdarg.h>
+#include <stddef.h>
 #include <stdint.h>
 
 #include <asm/types.h>
@@ -44,6 +46,4 @@ typedef __u32 __be32;
 typedef __u64 __le64;
 typedef __u64 __be64;
 
-typedef unsigned long uintptr_t;
-
 #endif /* __TYPES_H__ */
diff --git a/xen/include/xen/xenoprof.h b/xen/include/xen/xenoprof.h
index 8f045ab..7d760ca 100644
--- a/xen/include/xen/xenoprof.h
+++ b/xen/include/xen/xenoprof.h
@@ -10,7 +10,7 @@
 #ifndef __XEN_XENOPROF_H__
 #define __XEN_XENOPROF_H__
 
-#include <xen/inttypes.h>
+#include <xen/types.h>
 #include <public/xenoprof.h>
 #include <asm/xenoprof.h>
 
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  parent reply	other threads:[~2016-06-22 11:24 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-22 11:24 [PATCH 0/6] xen/build: Use system headers Andrew Cooper
2016-06-22 11:24 ` [PATCH 1/6] xen/build: Allow the use of C freestanding headers Andrew Cooper
2016-06-22 11:46   ` George Dunlap
2016-06-22 13:12   ` Tim Deegan
2016-07-13 13:46     ` Andrew Cooper
2016-07-13 15:17       ` Tim Deegan
2016-08-01  9:50         ` Jan Beulich
2016-08-01  9:52       ` Jan Beulich
2016-06-22 11:24 ` [PATCH 2/6] xen/build: Use the system stdarg.h header Andrew Cooper
2016-06-22 12:31   ` Jan Beulich
2016-06-22 11:24 ` [PATCH 3/6] xen/build: Use the system stdint.h header Andrew Cooper
2016-06-22 11:24 ` [PATCH 4/6] xen/build: Use the system limits.h header Andrew Cooper
2016-06-22 11:24 ` Andrew Cooper [this message]
2016-06-22 11:24 ` [PATCH 6/6] xen/build: Use the system stdbool.h header Andrew Cooper
2016-06-22 12:43   ` Jan Beulich
2016-06-22 13:02     ` Andrew Cooper
2016-06-22 12:26 ` [PATCH 0/6] xen/build: Use system headers Jan Beulich
2016-06-22 12:33   ` Andrew Cooper
2016-06-22 12:50     ` Jan Beulich

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=1466594653-28241-6-git-send-email-andrew.cooper3@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=George.Dunlap@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=sstabellini@kernel.org \
    --cc=tim@xen.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

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

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