[lvm-devel] [PATCH] libdevmapper.h: make this include file standard-compliant
Mikulas Patocka
mpatocka at redhat.com
Sat Mar 16 16:22:23 UTC 2013
libdevmapper.h: make this include file standard-compliant
This file may be included by other programs, so it should be compliant
with the C standard.
* use __linux__ instead of linux - __linux__ is always defined, linux is
not defined when gcc runs in standard-compliant mode (with -std=c89 or
-std=c99) because the C standard doesn't allow polluting namespace
with arbitrary defines.
* the inline keyword is not present in the c89 standard (with gcc
-std=c89). If the compiler runs in c89 mode, use __inline__ (which is
gcc extension), or nothing at all if we don't use gcc.
Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
---
libdm/libdevmapper.h | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
Index: LVM2.2.02.98/libdm/libdevmapper.h
===================================================================
--- LVM2.2.02.98.orig/libdm/libdevmapper.h 2013-03-16 02:10:56.000000000 +0100
+++ LVM2.2.02.98/libdm/libdevmapper.h 2013-03-16 02:20:51.000000000 +0100
@@ -21,7 +21,7 @@
#include <sys/types.h>
#include <sys/stat.h>
-#ifdef linux
+#ifdef __linux__
# include <linux/types.h>
#endif
@@ -940,7 +940,13 @@ int dm_bit_get_next(dm_bitset_t bs, int
memcpy((bs1) + 1, (bs2) + 1, ((*(bs1) / DM_BITS_PER_INT) + 1) * sizeof(int))
/* Returns number of set bits */
-static inline unsigned hweight32(uint32_t i)
+static
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901
+inline
+#elif defined(__GNUC__)
+__inline__
+#endif
+unsigned hweight32(uint32_t i)
{
unsigned r = (i & 0x55555555) + ((i >> 1) & 0x55555555);
More information about the lvm-devel
mailing list