From f773b423cc61f3ca18af5337101c158a52aaae2c Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Mon, 3 Dec 2018 14:33:12 +0100 Subject: includes: Replace QEMU_GNUC_PREREQ with "__has_builtin || !defined(__clang__)" Since we require GCC version 4.8 or newer now, we can be sure that the builtin functions are always available on GCC. And for Clang, we can check the availablility with __has_builtin instead. Reviewed-by: Richard Henderson Signed-off-by: Thomas Huth --- include/qemu/compiler.h | 2 +- include/qemu/host-utils.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index 6b92710487..1593bca41d 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -127,7 +127,7 @@ #define __has_builtin(x) 0 /* compatibility with non-clang compilers */ #endif -#if __has_builtin(__builtin_assume_aligned) || QEMU_GNUC_PREREQ(4, 7) +#if __has_builtin(__builtin_assume_aligned) || !defined(__clang__) #define HAS_ASSUME_ALIGNED #endif diff --git a/include/qemu/host-utils.h b/include/qemu/host-utils.h index 38da849be9..4cd170e6cd 100644 --- a/include/qemu/host-utils.h +++ b/include/qemu/host-utils.h @@ -207,7 +207,7 @@ static inline int cto64(uint64_t val) */ static inline int clrsb32(uint32_t val) { -#if QEMU_GNUC_PREREQ(4, 7) +#if __has_builtin(__builtin_clrsb) || !defined(__clang__) return __builtin_clrsb(val); #else return clz32(val ^ ((int32_t)val >> 1)) - 1; @@ -223,7 +223,7 @@ static inline int clrsb32(uint32_t val) */ static inline int clrsb64(uint64_t val) { -#if QEMU_GNUC_PREREQ(4, 7) +#if __has_builtin(__builtin_clrsbll) || !defined(__clang__) return __builtin_clrsbll(val); #else return clz64(val ^ ((int64_t)val >> 1)) - 1; -- cgit v1.2.3 From 78751ea855f89b5a352ccc332162fed3ad4c9496 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Mon, 3 Dec 2018 13:18:28 +0100 Subject: Remove QEMU_ARTIFICIAL macro The code that used it has already been removed a while ago with commit dc41aa7d34989b552ef ("tcg: Remove GET_TCGV_* and MAKE_TCGV_*"). Reviewed-by: Richard Henderson Signed-off-by: Thomas Huth --- include/qemu/compiler.h | 6 ------ 1 file changed, 6 deletions(-) (limited to 'include') diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index 1593bca41d..261842beae 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -28,12 +28,6 @@ #define QEMU_SENTINEL __attribute__((sentinel)) -#if QEMU_GNUC_PREREQ(4, 3) -#define QEMU_ARTIFICIAL __attribute__((always_inline, artificial)) -#else -#define QEMU_ARTIFICIAL -#endif - #if defined(_WIN32) # define QEMU_PACKED __attribute__((gcc_struct, packed)) #else -- cgit v1.2.3 From 2b4c1125ac3db2734222ff43c25388a16aca4a99 Mon Sep 17 00:00:00 2001 From: BALATON Zoltan Date: Wed, 28 Nov 2018 20:27:06 +0100 Subject: i2c: Move typedef of bitbang_i2c_interface to i2c.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clang 3.4 considers duplicate typedef in ppc4xx_i2c.h and bitbang_i2c.h an error even if they are identical. Move it to a common place to allow building with this clang version. Reported-by: Thomas Huth Signed-off-by: BALATON Zoltan Acked-by: David Gibson Reviewed-by: Philippe Mathieu-Daudé Signed-off-by: Thomas Huth --- include/hw/i2c/i2c.h | 2 ++ include/hw/i2c/ppc4xx_i2c.h | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/hw/i2c/i2c.h b/include/hw/i2c/i2c.h index 5dc166158b..cf4c45a98f 100644 --- a/include/hw/i2c/i2c.h +++ b/include/hw/i2c/i2c.h @@ -82,6 +82,8 @@ int i2c_recv(I2CBus *bus); DeviceState *i2c_create_slave(I2CBus *bus, const char *name, uint8_t addr); +typedef struct bitbang_i2c_interface bitbang_i2c_interface; + /* lm832x.c */ void lm832x_key_event(DeviceState *dev, int key, int state); diff --git a/include/hw/i2c/ppc4xx_i2c.h b/include/hw/i2c/ppc4xx_i2c.h index 0891a9c948..b3450bacf7 100644 --- a/include/hw/i2c/ppc4xx_i2c.h +++ b/include/hw/i2c/ppc4xx_i2c.h @@ -31,9 +31,6 @@ #include "hw/sysbus.h" #include "hw/i2c/i2c.h" -/* from hw/i2c/bitbang_i2c.h */ -typedef struct bitbang_i2c_interface bitbang_i2c_interface; - #define TYPE_PPC4xx_I2C "ppc4xx-i2c" #define PPC4xx_I2C(obj) OBJECT_CHECK(PPC4xxI2CState, (obj), TYPE_PPC4xx_I2C) -- cgit v1.2.3