common.h locally defines LONG_MAX and ULONG_MAX. But when importing
lzo library's headers, ulimit.h that is imported implicitly is also
imported so the two definitions collide, and the warning message below
is displayed.

gcc -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_LARGEFILE64_SOURCE -DVERSION='"1.4.2"' -DRELEASE_DATE='"25 January 2012"' 
-D__x86_64__ -DUSELZO  print_info.o dwarf_info.o elf_info.o erase_info.o 
sadump_info.o arch/arm.o arch/x86.o arch/x86_64.o arch/ia64.o arch/ppc64.o 
arch/s390x.o -o makedumpfile makedumpfile.c -llzo2 -ldw -lbz2 -lebl -ldl -lelf 
-lz
In file included from makedumpfile.h:37:0,
                 from makedumpfile.c:16:
common.h:23:0: warning: "LONG_MAX" redefined
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/include/limits.h:132:0: note: this is 
the location of the previous definition
common.h:24:0: warning: "ULONG_MAX" redefined
/usr/lib/gcc/x86_64-redhat-linux/4.5.1/include/limits.h:136:0: note: this is 
the location of the previous definition

To avoid this problem, check if each has already defiend before
defining it.

Signed-off-by: HATAYAMA Daisuke <[email protected]>
---

 common.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/common.h b/common.h
index a4cc2f7..6ad3ca7 100644
--- a/common.h
+++ b/common.h
@@ -20,8 +20,12 @@
 #define FALSE          (0)
 #define ERROR          (-1)
 
+#ifndef LONG_MAX
 #define LONG_MAX       ((long)(~0UL>>1))
+#endif
+#ifndef ULONG_MAX
 #define ULONG_MAX      (~0UL)
+#endif
 #define ULONGLONG_MAX  (~0ULL)
 
 #define MAX(a,b)       ((a) > (b) ? (a) : (b))


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to