From 5d194403e96d97f82681b5e7d96ddf8e48858cb7 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 29 Nov 2011 15:20:48 -0800 Subject: contrib/uuid: Make sure that uuid_types.h are generated per system specific. Just the same way e2fsprogs maintains. This avoids unnecessary problems for different architectures. Change-Id: I3911998373756707996afb7b926ec0780ea18b81 BUG: 3833 Signed-off-by: Harshavardhana Reviewed-on: http://review.gluster.com/764 Tested-by: Gluster Build System Reviewed-by: Jeff Darcy Reviewed-by: Amar Tumballi --- configure.ac | 17 +++++++++++++++ contrib/uuid/uuid_types.h | 50 -------------------------------------------- contrib/uuid/uuid_types.h.in | 50 ++++++++++++++++++++++++++++++++++++++++++++ libglusterfs/src/Makefile.am | 5 ++++- 4 files changed, 71 insertions(+), 51 deletions(-) delete mode 100644 contrib/uuid/uuid_types.h create mode 100644 contrib/uuid/uuid_types.h.in diff --git a/configure.ac b/configure.ac index ac73858c0e..d2b034dcb5 100644 --- a/configure.ac +++ b/configure.ac @@ -136,6 +136,7 @@ AC_CONFIG_FILES([Makefile extras/init.d/glusterd-SuSE extras/benchmarking/Makefile contrib/fuse-util/Makefile + contrib/uuid/uuid_types.h xlators/nfs/Makefile xlators/nfs/server/Makefile xlators/nfs/server/src/Makefile @@ -173,6 +174,22 @@ if test "x${LEX}" != "xflex" -a "x${FLEX}" != "xlex"; then AC_MSG_ERROR([Flex or lex required to build glusterfs.]) fi +dnl +dnl Word sizes... +dnl +AC_CHECK_SIZEOF(short) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long) +AC_CHECK_SIZEOF(long long) +SIZEOF_SHORT=$ac_cv_sizeof_short +SIZEOF_INT=$ac_cv_sizeof_int +SIZEOF_LONG=$ac_cv_sizeof_long +SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long +AC_SUBST(SIZEOF_SHORT) +AC_SUBST(SIZEOF_INT) +AC_SUBST(SIZEOF_LONG) +AC_SUBST(SIZEOF_LONG_LONG) + # YACC needs a check AC_PROG_YACC if test "x${YACC}" = "xbyacc" -o "x${YACC}" = "xyacc" -o "x${YACC}" = "x"; then diff --git a/contrib/uuid/uuid_types.h b/contrib/uuid/uuid_types.h deleted file mode 100644 index 3e2290b468..0000000000 --- a/contrib/uuid/uuid_types.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * If linux/types.h is already been included, assume it has defined - * everything we need. (cross fingers) Other header files may have - * also defined the types that we need. - */ -#if (!defined(_STDINT_H) && !defined(_UUID_STDINT_H)) -#define _UUID_STDINT_H - -typedef unsigned char uint8_t; -typedef signed char int8_t; - -#if (4 == 8) -typedef int int64_t; -typedef unsigned int uint64_t; -#elif (8 == 8) -typedef long int64_t; -typedef unsigned long uint64_t; -#elif (8 == 8) -#if defined(__GNUC__) -typedef __signed__ long long int64_t; -#else -typedef signed long long int64_t; -#endif -typedef unsigned long long uint64_t; -#endif - -#if (4 == 2) -typedef int int16_t; -typedef unsigned int uint16_t; -#elif (2 == 2) -typedef short int16_t; -typedef unsigned short uint16_t; -#else - ?==error: undefined 16 bit type -#endif - -#if (4 == 4) -typedef int int32_t; -typedef unsigned int uint32_t; -#elif (8 == 4) -typedef long int32_t; -typedef unsigned long uint32_t; -#elif (2 == 4) -typedef short int32_t; -typedef unsigned short uint32_t; -#else - ?== error: undefined 32 bit type -#endif - -#endif diff --git a/contrib/uuid/uuid_types.h.in b/contrib/uuid/uuid_types.h.in new file mode 100644 index 0000000000..f21ff4ee18 --- /dev/null +++ b/contrib/uuid/uuid_types.h.in @@ -0,0 +1,50 @@ +/* + * If linux/types.h is already been included, assume it has defined + * everything we need. (cross fingers) Other header files may have + * also defined the types that we need. + */ +#if (!defined(_STDINT_H) && !defined(_UUID_STDINT_H)) +#define _UUID_STDINT_H + +typedef unsigned char uint8_t; +typedef signed char int8_t; + +#if (@SIZEOF_INT@ == 8) +typedef int int64_t; +typedef unsigned int uint64_t; +#elif (@SIZEOF_LONG@ == 8) +typedef long int64_t; +typedef unsigned long uint64_t; +#elif (@SIZEOF_LONG_LONG@ == 8) +#if defined(__GNUC__) +typedef __signed__ long long int64_t; +#else +typedef signed long long int64_t; +#endif +typedef unsigned long long uint64_t; +#endif + +#if (@SIZEOF_INT@ == 2) +typedef int int16_t; +typedef unsigned int uint16_t; +#elif (@SIZEOF_SHORT@ == 2) +typedef short int16_t; +typedef unsigned short uint16_t; +#else + ?==error: undefined 16 bit type +#endif + +#if (@SIZEOF_INT@ == 4) +typedef int int32_t; +typedef unsigned int uint32_t; +#elif (@SIZEOF_LONG@ == 4) +typedef long int32_t; +typedef unsigned long uint32_t; +#elif (@SIZEOF_SHORT@ == 4) +typedef short int32_t; +typedef unsigned short uint32_t; +#else + ?== error: undefined 32 bit type +#endif + +#endif diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am index 98be5b2d90..0af9774336 100644 --- a/libglusterfs/src/Makefile.am +++ b/libglusterfs/src/Makefile.am @@ -11,6 +11,8 @@ libglusterfs_la_LIBADD = @LEXLIB@ lib_LTLIBRARIES = libglusterfs.la +CONTRIB_BUILDDIR = $(top_builddir)/contrib + libglusterfs_la_SOURCES = dict.c graph.lex.c y.tab.c xlator.c logging.c \ hashfn.c defaults.c common-utils.c timer.c inode.c call-stub.c \ compat.c fd.c compat-errno.c event.c mem-pool.c gf-dirent.c syscall.c \ @@ -30,7 +32,7 @@ noinst_HEADERS = common-utils.h defaults.h dict.h glusterfs.h hashfn.h \ checksum.h daemon.h $(CONTRIBDIR)/md5/md5.h $(CONTRIBDIR)/rbtree/rb.h \ rbthash.h iatt.h latency.h mem-types.h $(CONTRIBDIR)/uuid/uuidd.h \ $(CONTRIBDIR)/uuid/uuid.h $(CONTRIBDIR)/uuid/uuidP.h \ - $(CONTRIBDIR)/uuid/uuid_types.h syncop.h graph-utils.h trie.h run.h \ + $(CONTRIB_BUILDDIR)/uuid/uuid_types.h syncop.h graph-utils.h trie.h run.h \ options.h EXTRA_DIST = graph.l graph.y @@ -45,3 +47,4 @@ y.tab.c y.tab.h: graph.y $(YACC) -d $(srcdir)/graph.y CLEANFILES = graph.lex.c y.tab.c y.tab.h yacc.stamp +CONFIG_CLEAN_FILES = $(CONTRIB_BUILDDIR)/uuid/uuid_types.h -- cgit