⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lustre-lnet.m4

📁 lustre 1.6.5 source code
💻 M4
📖 第 1 页 / 共 3 页
字号:
#AC_DEFUN([LN_TYPE_CPUMASK_T],[AC_MSG_CHECKING([if kernel defines cpumask_t])LB_LINUX_TRY_COMPILE([	#include <linux/sched.h>],[	return sizeof (cpumask_t);],[	AC_MSG_RESULT([yes])	AC_DEFINE(HAVE_CPUMASK_T, 1, [cpumask_t found])],[	AC_MSG_RESULT([no])])])## LN_FUNC_SHOW_TASK## we export show_task(), but not all kernels have it (yet)#AC_DEFUN([LN_FUNC_SHOW_TASK],[LB_CHECK_SYMBOL_EXPORT([show_task],[kernel/ksyms.c kernel/sched.c],[AC_DEFINE(HAVE_SHOW_TASK, 1, [show_task is exported])],[])])# check userland __u64 typeAC_DEFUN([LN_U64_LONG_LONG],[AC_MSG_CHECKING([u64 is long long type])tmp_flags="$CFLAGS"CFLAGS="$CFLAGS -Werror"AC_COMPILE_IFELSE([	#include <linux/types.h>	int main(void) {		unsigned long long *data1;		__u64 *data2;				data1 = data2;		return 0;	}],[	AC_MSG_RESULT([yes])        AC_DEFINE(HAVE_U64_LONG_LONG, 1,                  [__u64 is long long type])],[	AC_MSG_RESULT([no])])CFLAGS="$tmp_flags"])# check userland size_t typeAC_DEFUN([LN_SIZE_T_LONG],[AC_MSG_CHECKING([size_t is unsigned long type])tmp_flags="$CFLAGS"CFLAGS="$CFLAGS -Werror"AC_COMPILE_IFELSE([	#include <linux/types.h>	int main(void) {		unsigned long *data1;		size_t *data2;				data1 = data2;		return 0;	}],[	AC_MSG_RESULT([yes])        AC_DEFINE(HAVE_SIZE_T_LONG, 1,                  [size_t is long type])],[	AC_MSG_RESULT([no])])CFLAGS="$tmp_flags"])AC_DEFUN([LN_SSIZE_T_LONG],[AC_MSG_CHECKING([ssize_t is signed long type])tmp_flags="$CFLAGS"CFLAGS="$CFLAGS -Werror"AC_COMPILE_IFELSE([	#include <linux/types.h>	int main(void) {		long *data1;		ssize_t *data2;				data1 = data2;		return 0;	}],[	AC_MSG_RESULT([yes])        AC_DEFINE(HAVE_SSIZE_T_LONG, 1,                  [ssize_t is long type])],[	AC_MSG_RESULT([no])])CFLAGS="$tmp_flags"])# LN_TASKLIST_LOCK# 2.6.18 remove tasklist_lock exportAC_DEFUN([LN_TASKLIST_LOCK],[LB_CHECK_SYMBOL_EXPORT([tasklist_lock],[kernel/fork.c],[AC_DEFINE(HAVE_TASKLIST_LOCK, 1,         [tasklist_lock exported])],[])])# 2.6.19 API changes# kmem_cache_destroy(cachep) return void instead of# intAC_DEFUN([LN_KMEM_CACHE_DESTROY_INT],[AC_MSG_CHECKING([kmem_cache_destroy(cachep) return int])LB_LINUX_TRY_COMPILE([        #include <linux/slab.h>],[	int i = kmem_cache_destroy(NULL);],[        AC_MSG_RESULT(yes)        AC_DEFINE(HAVE_KMEM_CACHE_DESTROY_INT, 1,                [kmem_cache_destroy(cachep) return int])],[        AC_MSG_RESULT(NO)])])# 2.6.19 API change#panic_notifier_list use atomic_notifier operations#AC_DEFUN([LN_ATOMIC_PANIC_NOTIFIER],[AC_MSG_CHECKING([panic_notifier_list is atomic])LB_LINUX_TRY_COMPILE([	#include <linux/notifier.h>	#include <linux/kernel.h>],[	struct atomic_notifier_head panic_notifier_list;],[        AC_MSG_RESULT(yes)	AC_DEFINE(HAVE_ATOMIC_PANIC_NOTIFIER, 1,		[panic_notifier_list is atomic_notifier_head])],[        AC_MSG_RESULT(NO)])])# 2.6.20 API change INIT_WORK use 2 args and not# store data insideAC_DEFUN([LN_3ARGS_INIT_WORK],[AC_MSG_CHECKING([check INIT_WORK want 3 args])LB_LINUX_TRY_COMPILE([	#include <linux/workqueue.h>],[	struct work_struct work;	INIT_WORK(&work, NULL, NULL);],[        AC_MSG_RESULT(yes)        AC_DEFINE(HAVE_3ARGS_INIT_WORK, 1,                  [INIT_WORK use 3 args and store data inside])],[        AC_MSG_RESULT(NO)])])# 2.6.21 api change. 'register_sysctl_table' use only one argument,# instead of more old which need two.AC_DEFUN([LN_2ARGS_REGISTER_SYSCTL],[AC_MSG_CHECKING([check register_sysctl_table want 2 args])LB_LINUX_TRY_COMPILE([        #include <linux/sysctl.h>],[	return register_sysctl_table(NULL,0);],[        AC_MSG_RESULT(yes)        AC_DEFINE(HAVE_2ARGS_REGISTER_SYSCTL, 1,                  [register_sysctl_table want 2 args])],[        AC_MSG_RESULT(NO)])])# 2.6.21 marks kmem_cache_t deprecated and uses struct kmem_cache# insteadAC_DEFUN([LN_KMEM_CACHE],[AC_MSG_CHECKING([check kernel has struct kmem_cache])tmp_flags="$EXTRA_KCFLAGS"EXTRA_KCFLAGS="-Werror"LB_LINUX_TRY_COMPILE([        #include <linux/slab.h>        typedef struct kmem_cache cache_t;],[	cache_t *cachep = NULL;	kmem_cache_alloc(cachep, 0);],[        AC_MSG_RESULT(yes)        AC_DEFINE(HAVE_KMEM_CACHE, 1,                  [kernel has struct kmem_cache])],[        AC_MSG_RESULT(NO)])EXTRA_KCFLAGS="$tmp_flags"])# 2.6.23 lost dtor argumentAC_DEFUN([LN_KMEM_CACHE_CREATE_DTOR],[AC_MSG_CHECKING([check kmem_cache_create has dtor argument])LB_LINUX_TRY_COMPILE([        #include <linux/slab.h>],[	kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);],[        AC_MSG_RESULT(yes)        AC_DEFINE(HAVE_KMEM_CACHE_CREATE_DTOR, 1,                  [kmem_cache_create has dtor argument])],[        AC_MSG_RESULT(NO)])])## LN_PROG_LINUX## LNet linux kernel checks#AC_DEFUN([LN_PROG_LINUX],[LN_FUNC_CPU_ONLINELN_TYPE_GFP_TLN_TYPE_CPUMASK_TLN_CONFIG_AFFINITYLN_CONFIG_BACKOFFLN_CONFIG_PANIC_DUMPLOGLN_CONFIG_QUADRICSLN_CONFIG_GMLN_CONFIG_OPENIBLN_CONFIG_CIBLN_CONFIG_VIBLN_CONFIG_IIBLN_CONFIG_O2IBLN_CONFIG_RALNDLN_CONFIG_PTLLNDLN_CONFIG_MXLN_STRUCT_PAGE_LISTLN_STRUCT_SIGHANDLN_FUNC_SHOW_TASKLN_U64_LONG_LONGLN_SSIZE_T_LONGLN_SIZE_T_LONG# 2.6.18LN_TASKLIST_LOCK# 2.6.19LN_KMEM_CACHE_DESTROY_INTLN_ATOMIC_PANIC_NOTIFIER# 2.6.20LN_3ARGS_INIT_WORK# 2.6.21LN_2ARGS_REGISTER_SYSCTLLN_KMEM_CACHE# 2.6.23LN_KMEM_CACHE_CREATE_DTOR])## LN_PROG_DARWIN## Darwin checks#AC_DEFUN([LN_PROG_DARWIN],[LB_DARWIN_CHECK_FUNCS([get_preemption_level])])## LN_PATH_DEFAULTS## default paths for installed files#AC_DEFUN([LN_PATH_DEFAULTS],[])## LN_CONFIGURE## other configure checks#AC_DEFUN([LN_CONFIGURE],[# lnet/utils/portals.cAC_CHECK_HEADERS([netdb.h netinet/tcp.h asm/types.h endian.h sys/ioctl.h])AC_CHECK_FUNCS([gethostbyname socket connect])# lnet/utils/debug.cAC_CHECK_HEADERS([linux/version.h])AC_CHECK_TYPE([spinlock_t],	[AC_DEFINE(HAVE_SPINLOCK_T, 1, [spinlock_t is defined])],	[],	[#include <linux/spinlock.h>])# lnet/utils/wirecheck.cAC_CHECK_FUNCS([strnlen])# --------  Check for required packages  --------------## LC_CONFIG_READLINE## Build with readline#AC_MSG_CHECKING([whether to enable readline support])AC_ARG_ENABLE(readline,        AC_HELP_STRING([--disable-readline],                        [disable readline support]),        [],[enable_readline='yes'])AC_MSG_RESULT([$enable_readline])# -------- check for readline if enabled ----if test x$enable_readline = xyes ; then	LIBS_save="$LIBS"	LIBS="-lncurses $LIBS"	AC_CHECK_LIB([readline],[readline],[	LIBREADLINE="-lreadline -lncurses"	AC_DEFINE(HAVE_LIBREADLINE, 1, [readline library is available])	],[	LIBREADLINE=""	])	LIBS="$LIBS_save"else	LIBREADLINE=""fiAC_SUBST(LIBREADLINE)AC_MSG_CHECKING([if efence debugging support is requested])AC_ARG_ENABLE(efence,	AC_HELP_STRING([--enable-efence],			[use efence library]),	[],[enable_efence='no'])AC_MSG_RESULT([$enable_efence])if test "$enable_efence" = "yes" ; then	LIBEFENCE="-lefence"	AC_DEFINE(HAVE_LIBEFENCE, 1, [libefence support is requested])else	LIBEFENCE=""fiAC_SUBST(LIBEFENCE)# -------- enable acceptor libwrap (TCP wrappers) support? -------AC_MSG_CHECKING([if libwrap support is requested])AC_ARG_ENABLE([libwrap],	AC_HELP_STRING([--enable-libwrap], [use TCP wrappers]),	[case "${enableval}" in		yes) enable_libwrap=yes ;;		no) enable_libwrap=no ;;		*) AC_MSG_ERROR(bad value ${enableval} for --enable-libwrap) ;;	esac],[enable_libwrap=no])AC_MSG_RESULT([$enable_libwrap])if test x$enable_libwrap = xyes ; then	LIBWRAP="-lwrap"	AC_DEFINE(HAVE_LIBWRAP, 1, [libwrap support is requested])else	LIBWRAP=""fiAC_SUBST(LIBWRAP)# -------- check for -lpthread support ----AC_MSG_CHECKING([whether to use libpthread for lnet library])AC_ARG_ENABLE([libpthread],       	AC_HELP_STRING([--disable-libpthread],               	[disable libpthread]),       	[],[enable_libpthread=yes])if test "$enable_libpthread" = "yes" ; then	AC_CHECK_LIB([pthread], [pthread_create],		[ENABLE_LIBPTHREAD="yes"],		[ENABLE_LIBPTHREAD="no"])	if test "$ENABLE_LIBPTHREAD" = "yes" ; then		AC_MSG_RESULT([$ENABLE_LIBPTHREAD])		PTHREAD_LIBS="-lpthread"		AC_DEFINE([HAVE_LIBPTHREAD], 1, [use libpthread])	else		PTHREAD_LIBS=""		AC_MSG_RESULT([no libpthread is found])	fi	AC_SUBST(PTHREAD_LIBS)else	AC_MSG_RESULT([no (disabled explicitly)])	ENABLE_LIBPTHREAD="no"fiAC_SUBST(ENABLE_LIBPTHREAD)# ----------------------------------------# some tests for catamount-like systems# ----------------------------------------AC_ARG_ENABLE([sysio_init],	AC_HELP_STRING([--disable-sysio-init],		[call sysio init functions when initializing liblustre]),	[],[enable_sysio_init=yes])AC_MSG_CHECKING([whether to initialize libsysio])AC_MSG_RESULT([$enable_sysio_init])if test x$enable_sysio_init != xno ; then	AC_DEFINE([INIT_SYSIO], 1, [call sysio init functions])fiAC_ARG_ENABLE([urandom],	AC_HELP_STRING([--disable-urandom],		[disable use of /dev/urandom for liblustre]),	[],[enable_urandom=yes])AC_MSG_CHECKING([whether to use /dev/urandom for liblustre])AC_MSG_RESULT([$enable_urandom])if test x$enable_urandom != xno ; then	AC_DEFINE([LIBLUSTRE_USE_URANDOM], 1, [use /dev/urandom for random data])fi# -------- check for -lcap support ----if test x$enable_liblustre = xyes ; then	AC_CHECK_LIB([cap], [cap_get_proc],		[			CAP_LIBS="-lcap"			AC_DEFINE([HAVE_LIBCAP], 1, [use libcap])		],		[			CAP_LIBS=""		])	AC_SUBST(CAP_LIBS)fiLN_CONFIG_MAX_PAYLOADLN_CONFIG_UPTLLNDLN_CONFIG_USOCKLND])## LN_CONDITIONALS## AM_CONDITOINAL defines for lnet#AC_DEFUN([LN_CONDITIONALS],[AM_CONDITIONAL(BUILD_QSWLND, test x$QSWLND = "xqswlnd")AM_CONDITIONAL(BUILD_GMLND, test x$GMLND = "xgmlnd")AM_CONDITIONAL(BUILD_MXLND, test x$MXLND = "xmxlnd")AM_CONDITIONAL(BUILD_O2IBLND, test x$O2IBLND = "xo2iblnd")AM_CONDITIONAL(BUILD_OPENIBLND, test x$OPENIBLND = "xopeniblnd")AM_CONDITIONAL(BUILD_CIBLND, test x$CIBLND = "xciblnd")AM_CONDITIONAL(BUILD_IIBLND, test x$IIBLND = "xiiblnd")AM_CONDITIONAL(BUILD_VIBLND, test x$VIBLND = "xviblnd")AM_CONDITIONAL(BUILD_RALND, test x$RALND = "xralnd")AM_CONDITIONAL(BUILD_PTLLND, test x$PTLLND = "xptllnd")AM_CONDITIONAL(BUILD_UPTLLND, test x$UPTLLND = "xptllnd")AM_CONDITIONAL(BUILD_USOCKLND, test x$USOCKLND = "xusocklnd")])## LN_CONFIG_FILES## files that should be generated with AC_OUTPUT#AC_DEFUN([LN_CONFIG_FILES],[AC_CONFIG_FILES([lnet/Kernelenvlnet/Makefilelnet/autoMakefilelnet/autoconf/Makefilelnet/doc/Makefilelnet/include/Makefilelnet/include/libcfs/Makefilelnet/include/libcfs/linux/Makefilelnet/include/lnet/Makefilelnet/include/lnet/linux/Makefilelnet/klnds/Makefilelnet/klnds/autoMakefilelnet/klnds/gmlnd/Makefilelnet/klnds/mxlnd/autoMakefilelnet/klnds/mxlnd/Makefilelnet/klnds/gmlnd/autoMakefilelnet/klnds/openiblnd/Makefilelnet/klnds/openiblnd/autoMakefilelnet/klnds/o2iblnd/Makefilelnet/klnds/o2iblnd/autoMakefilelnet/klnds/ciblnd/Makefilelnet/klnds/ciblnd/autoMakefilelnet/klnds/iiblnd/Makefilelnet/klnds/iiblnd/autoMakefilelnet/klnds/viblnd/Makefilelnet/klnds/viblnd/autoMakefilelnet/klnds/qswlnd/Makefilelnet/klnds/qswlnd/autoMakefilelnet/klnds/ralnd/Makefilelnet/klnds/ralnd/autoMakefilelnet/klnds/socklnd/Makefilelnet/klnds/socklnd/autoMakefilelnet/klnds/ptllnd/Makefilelnet/klnds/ptllnd/autoMakefilelnet/libcfs/Makefilelnet/libcfs/autoMakefilelnet/libcfs/linux/Makefilelnet/lnet/Makefilelnet/lnet/autoMakefilelnet/selftest/Makefilelnet/selftest/autoMakefilelnet/ulnds/Makefilelnet/ulnds/autoMakefilelnet/ulnds/socklnd/Makefilelnet/ulnds/ptllnd/Makefilelnet/utils/Makefile])case $lb_target_os in	darwin)		AC_CONFIG_FILES([lnet/include/libcfs/darwin/Makefilelnet/include/lnet/darwin/Makefilelnet/libcfs/darwin/Makefile])		;;esac])

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -