From 7746776a843af4e0321bd0b8a817af295c56c9fe Mon Sep 17 00:00:00 2001 From: Matt Benjamin Date: Tue, 7 Dec 2004 06:08:36 +0000 Subject: [PATCH] STABLE14-umlinux26-20041202 FIXES 16591 umlinux 26 support. i wonder what i just reverted --- acinclude.m4 | 351 ++++++++++++++++-------------- src/cf/osconf.m4 | 20 ++ src/comerr/Makefile.in | 2 +- src/config/afs_sysnames.h | 1 + src/config/param.i386_umlinux26.h | 152 +++++++++++++ src/libafs/MakefileProto.LINUX.in | 21 +- src/libafsrpc/Makefile.in | 8 +- 7 files changed, 372 insertions(+), 183 deletions(-) create mode 100644 src/config/param.i386_umlinux26.h diff --git a/acinclude.m4 b/acinclude.m4 index 3881a99b58..7675e337df 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -106,6 +106,7 @@ AC_MSG_CHECKING(your OS) system=$host case $system in *-linux*) + MKAFS_OSTYPE=LINUX if test "x$enable_redhat_buildsys" = "xyes"; then AC_DEFINE(ENABLE_REDHAT_BUILDSYS, 1, [define if you have redhat buildsystem]) @@ -156,174 +157,6 @@ case $system in SUBARCH=default fi AC_MSG_RESULT(linux) - if test "x$enable_kernel_module" = "xyes"; then - AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'` - if test "x${AFS_SYSKVERS}" = "x"; then - AC_MSG_ERROR(Couldn't guess your Linux version [2]) - fi - if test "x$enable_debug_kernel" = "xno"; then - LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer" - fi - OPENAFS_GCC_SUPPORTS_MARCH - AC_SUBST(P5PLUS_KOPTS) - OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE - OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING - OPENAFS_GCC_SUPPORTS_NO_COMMON - OPENAFS_GCC_SUPPORTS_PIPE - AC_SUBST(LINUX_GCC_KOPTS) - ifdef([OPENAFS_CONFIGURE_LIBAFS], - [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)], - [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)] - ) - LINUX_COMPLETION_H_EXISTS - LINUX_DEFINES_FOR_EACH_PROCESS - LINUX_DEFINES_PREV_TASK - LINUX_EXPORTS_TASKLIST_LOCK - LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK - LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK - LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM - LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM - LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS - LINUX_FS_STRUCT_INODE_HAS_I_DEVICES - LINUX_FS_STRUCT_INODE_HAS_I_SECURITY - LINUX_INODE_SETATTR_RETURN_TYPE - LINUX_KERNEL_LINUX_SYSCALL_H - LINUX_KERNEL_SELINUX - LINUX_KERNEL_SOCK_CREATE - LINUX_NEED_RHCONFIG - LINUX_RECALC_SIGPENDING_ARG_TYPE - LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT - LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT - LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG - LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND - LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK - LINUX_WHICH_MODULES - if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then - AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported]) - ac_cv_linux_exports_sys_call_table=no - if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then - ac_cv_linux_exports_ia32_sys_call_table=yes - fi - else - LINUX_EXPORTS_INIT_MM - LINUX_EXPORTS_KALLSYMS_ADDRESS - LINUX_EXPORTS_KALLSYMS_SYMBOL - LINUX_EXPORTS_SYS_CALL_TABLE - LINUX_EXPORTS_IA32_SYS_CALL_TABLE - LINUX_EXPORTS_SYS_CHDIR - LINUX_EXPORTS_SYS_CLOSE - LINUX_EXPORTS_SYS_WAIT4 - if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then - linux_syscall_method=none - if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then - linux_syscall_method=scan - if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then - linux_syscall_method=scan_with_kallsyms_address - fi - fi - if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then - linux_syscall_method=kallsyms_symbol - fi - if test "x$linux_syscall_method" = "xnone"; then - AC_MSG_ERROR([no available sys_call_table access method]) - fi - fi - fi - if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then - AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file]) - fi - if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then - AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file]) - fi - if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then - AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file]) - fi - if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then - AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir]) - fi - if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then - AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close]) - fi - if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then - AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4]) - fi - if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then - AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock]) - fi - if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then - AC_DEFINE(EXPORTED_SYS_CALL_TABLE) - fi - if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then - AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE) - fi - if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then - AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL) - fi - if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then - AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS) - fi - if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then - AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists]) - fi - if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then - AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined]) - fi - if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then - AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined]) - fi - if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then - AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void]) - fi - if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then - AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock]) - fi - if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then - AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask]) - fi - if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then - AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem]) - fi - if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then - AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem]) - fi - if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then - AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices]) - fi - if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then - AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security]) - fi - if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then - AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers]) - fi - if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then - AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void]) - fi - if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then - AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features]) - fi - if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then - AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create]) - fi - if test "x$ac_linux_syscall" = "xyes" ; then - AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h]) - fi - if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then - AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent]) - fi - if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then - AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent]) - fi - if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then - AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock]) - fi - if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then - AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand]) - fi - if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then - AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig]) - fi - : - fi ;; *-solaris*) MKAFS_OSTYPE=SOLARIS @@ -656,7 +489,10 @@ else ;; esac case $AFS_SYSNAME in - *_linux*) + *_linux* | *_umlinux*) + if test "x$enable_kernel_module" = "xyes"; then + AFS_SYSKVERS=`echo $LINUX_VERSION | awk -F\. '{print $[]1 $[]2}'` + fi if test "x${AFS_SYSKVERS}" = "x"; then AC_MSG_ERROR(Couldn't guess your Linux version. Please use the --with-afs-sysname option to configure an AFS sysname.) fi @@ -680,6 +516,183 @@ else AC_MSG_RESULT($AFS_SYSNAME) fi +case $AFS_SYSNAME in *_linux* | *_umlinux*) + + # Add (sub-) architecture-specific paths needed by conftests + case $AFS_SYSNAME in + *_umlinux26) + UMLINUX26_FLAGS="-I$LINUX_KERNEL_PATH/arch/um/include" + UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/tt/include" + UMLINUX26_FLAGS="$UMLINUX26_FLAGS -I$LINUX_KERNEL_PATH/arch/um/kernel/skas/include" + CPPFLAGS="$CPPFLAGS $UMLINUX26_FLAGS" + esac + + if test "x$enable_kernel_module" = "xyes"; then + if test "x$enable_debug_kernel" = "xno"; then + LINUX_GCC_KOPTS="$LINUX_GCC_KOPTS -fomit-frame-pointer" + fi + OPENAFS_GCC_SUPPORTS_MARCH + AC_SUBST(P5PLUS_KOPTS) + OPENAFS_GCC_NEEDS_NO_STRENGTH_REDUCE + OPENAFS_GCC_NEEDS_NO_STRICT_ALIASING + OPENAFS_GCC_SUPPORTS_NO_COMMON + OPENAFS_GCC_SUPPORTS_PIPE + AC_SUBST(LINUX_GCC_KOPTS) + ifdef([OPENAFS_CONFIGURE_LIBAFS], + [LINUX_BUILD_VNODE_FROM_INODE(src/config,afs)], + [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)] + ) + LINUX_COMPLETION_H_EXISTS + LINUX_DEFINES_FOR_EACH_PROCESS + LINUX_DEFINES_PREV_TASK + LINUX_EXPORTS_TASKLIST_LOCK + LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK + LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_GFP_MASK + LINUX_FS_STRUCT_INODE_HAS_I_ALLOC_SEM + LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM + LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS + LINUX_FS_STRUCT_INODE_HAS_I_DEVICES + LINUX_FS_STRUCT_INODE_HAS_I_SECURITY + LINUX_INODE_SETATTR_RETURN_TYPE + LINUX_KERNEL_LINUX_SYSCALL_H + LINUX_KERNEL_SELINUX + LINUX_KERNEL_SOCK_CREATE + LINUX_NEED_RHCONFIG + LINUX_RECALC_SIGPENDING_ARG_TYPE + LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT + LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT + LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIG + LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND + LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK + LINUX_WHICH_MODULES + if test "x$ac_cv_linux_config_modversions" = "xno" -o $AFS_SYSKVERS -ge 26; then + AC_MSG_WARN([Cannot determine sys_call_table status. assuming it isn't exported]) + ac_cv_linux_exports_sys_call_table=no + if test -f "$LINUX_KERNEL_PATH/include/asm/ia32_unistd.h"; then + ac_cv_linux_exports_ia32_sys_call_table=yes + fi + else + LINUX_EXPORTS_INIT_MM + LINUX_EXPORTS_KALLSYMS_ADDRESS + LINUX_EXPORTS_KALLSYMS_SYMBOL + LINUX_EXPORTS_SYS_CALL_TABLE + LINUX_EXPORTS_IA32_SYS_CALL_TABLE + LINUX_EXPORTS_SYS_CHDIR + LINUX_EXPORTS_SYS_CLOSE + LINUX_EXPORTS_SYS_WAIT4 + if test "x$ac_cv_linux_exports_sys_call_table" = "xno"; then + linux_syscall_method=none + if test "x$ac_cv_linux_exports_init_mm" = "xyes"; then + linux_syscall_method=scan + if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then + linux_syscall_method=scan_with_kallsyms_address + fi + fi + if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then + linux_syscall_method=kallsyms_symbol + fi + if test "x$linux_syscall_method" = "xnone"; then + AC_MSG_ERROR([no available sys_call_table access method]) + fi + fi + fi + if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then + AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file]) + fi + if test -f "$LINUX_KERNEL_PATH/include/linux/mm_inline.h"; then + AC_DEFINE(HAVE_MM_INLINE_H, 1, [define if you have mm_inline.h header file]) + fi + if test -f "$LINUX_KERNEL_PATH/include/linux/in_systm.h"; then + AC_DEFINE(HAVE_IN_SYSTM_H, 1, [define if you have in_systm.h header file]) + fi + if test "x$ac_cv_linux_exports_sys_chdir" = "xyes" ; then + AC_DEFINE(EXPORTED_SYS_CHDIR, 1, [define if your linux kernel exports sys_chdir]) + fi + if test "x$ac_cv_linux_exports_sys_close" = "xyes" ; then + AC_DEFINE(EXPORTED_SYS_CLOSE, 1, [define if your linux kernel exports sys_close]) + fi + if test "x$ac_cv_linux_exports_sys_wait4" = "xyes" ; then + AC_DEFINE(EXPORTED_SYS_WAIT4, 1, [define if your linux kernel exports sys_wait4]) + fi + if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then + AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if your linux kernel exports tasklist_lock]) + fi + if test "x$ac_cv_linux_exports_sys_call_table" = "xyes"; then + AC_DEFINE(EXPORTED_SYS_CALL_TABLE) + fi + if test "x$ac_cv_linux_exports_ia32_sys_call_table" = "xyes"; then + AC_DEFINE(EXPORTED_IA32_SYS_CALL_TABLE) + fi + if test "x$ac_cv_linux_exports_kallsyms_symbol" = "xyes"; then + AC_DEFINE(EXPORTED_KALLSYMS_SYMBOL) + fi + if test "x$ac_cv_linux_exports_kallsyms_address" = "xyes"; then + AC_DEFINE(EXPORTED_KALLSYMS_ADDRESS) + fi + if test "x$ac_cv_linux_completion_h_exists" = "xyes" ; then + AC_DEFINE(COMPLETION_H_EXISTS, 1, [define if completion_h exists]) + fi + if test "x$ac_cv_linux_defines_for_each_process" = "xyes" ; then + AC_DEFINE(DEFINED_FOR_EACH_PROCESS, 1, [define if for_each_process defined]) + fi + if test "x$ac_cv_linux_defines_prev_task" = "xyes" ; then + AC_DEFINE(DEFINED_PREV_TASK, 1, [define if prev_task defined]) + fi + if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then + AC_DEFINE(INODE_SETATTR_NOT_VOID, 1, [define if your setattr return return non-void]) + fi + if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then + AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, 1, [define if your struct address_space has page_lock]) + fi + if test "x$ac_cv_linux_fs_struct_address_space_has_gfp_mask" = "xyes"; then + AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_GFP_MASK, 1, [define if your struct address_space has gfp_mask]) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM, 1, [define if your struct inode has truncate_sem]) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_alloc_sem" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_ALLOC_SEM, 1, [define if your struct inode has alloc_sem]) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES, 1, [define if you struct inode has i_devices]) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_security" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_SECURITY, 1, [define if you struct inode has i_security]) + fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_dirty_data_buffers" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS, 1, [define if your struct inode has data_buffers]) + fi + if test "x$ac_cv_linux_func_recalc_sigpending_takes_void" = "xyes"; then + AC_DEFINE(RECALC_SIGPENDING_TAKES_VOID, 1, [define if your recalc_sigpending takes void]) + fi + if test "x$ac_cv_linux_kernel_is_selinux" = "xyes" ; then + AC_DEFINE(LINUX_KERNEL_IS_SELINUX, 1, [define if your linux kernel uses SELinux features]) + fi + if test "x$ac_cv_linux_kernel_sock_create_v" = "xyes" ; then + AC_DEFINE(LINUX_KERNEL_SOCK_CREATE_V, 1, [define if your linux kernel uses 5 arguments for sock_create]) + fi + if test "x$ac_linux_syscall" = "xyes" ; then + AC_DEFINE(HAVE_KERNEL_LINUX_SYSCALL_H, 1, [define if your linux kernel has linux/syscall.h]) + fi + if test "x$ac_cv_linux_sched_struct_task_struct_has_parent" = "xyes"; then + AC_DEFINE(STRUCT_TASK_STRUCT_HAS_PARENT, 1, [define if your struct task_struct has parent]) + fi + if test "x$ac_cv_linux_sched_struct_task_struct_has_real_parent" = "xyes"; then + AC_DEFINE(STRUCT_TASK_STRUCT_HAS_REAL_PARENT, 1, [define if your struct task_struct has real_parent]) + fi + if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then + AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock]) + fi + if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then + AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand]) + fi + if test "x$ac_cv_linux_sched_struct_task_struct_has_sig" = "xyes"; then + AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIG, 1, [define if your struct task_struct has sig]) + fi + : + fi +esac + case $AFS_SYSNAME in *_darwin*) DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4 index 0727d183e6..76d745b758 100644 --- a/src/cf/osconf.m4 +++ b/src/cf/osconf.m4 @@ -324,6 +324,26 @@ case $AFS_SYSNAME in SHLIB_LINKER="${MT_CC} -shared" ;; + i386_umlinux26) + CC="gcc -pipe" + CCOBJ="gcc -pipe" + MT_CC="gcc -pipe" + KERN_OPTMZ=-O2 + LEX="flex -l" + MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}' + MT_LIBS="-lpthread" + DBG=-g + KERN_DBG=-g + LWP_DBG=-g + LWP_OPTMZ=-O2 + OPTMZ=-O2 + PAM_CFLAGS="-g -O2 -Dlinux -DLINUX_PAM -fPIC" + SHLIB_LDFLAGS="-shared -Xlinker -x" + TXLIBS="-lncurses" + XCFLAGS="-g -O2 -D_LARGEFILE64_SOURCE" + SHLIB_LINKER="${MT_CC} -shared" + ;; + *_obsd*) LEX="flex -l" MT_CFLAGS='-DAFS_PTHREAD_ENV -pthread -D_REENTRANT ${XCFLAGS}' diff --git a/src/comerr/Makefile.in b/src/comerr/Makefile.in index e5ec12d9a1..2dba67874d 100644 --- a/src/comerr/Makefile.in +++ b/src/comerr/Makefile.in @@ -15,7 +15,7 @@ et_lex.lex.c: et_lex.lex.l compile_et: compile_et.o error_table.o case $(SYS_NAME) in \ - *_linux* ) \ + *_linux* | *_umlinux* ) \ ${CC} ${CFLAGS} -o compile_et compile_et.o error_table.o -L${TOP_LIBDIR} -lafsutil;; \ * ) \ ${CC} ${CFLAGS} -o compile_et compile_et.o error_table.o -L${TOP_LIBDIR} -lafsutil -ll;; \ diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h index 869bcd1bad..6337df5932 100644 --- a/src/config/afs_sysnames.h +++ b/src/config/afs_sysnames.h @@ -213,6 +213,7 @@ #define SYS_NAME_ID_i386_umlinux2 2800 #define SYS_NAME_ID_i386_umlinux22 2801 #define SYS_NAME_ID_i386_umlinux24 2802 +#define SYS_NAME_ID_i386_umlinux26 2803 #define SYS_NAME_ID_ppc64_linux2 2900 #define SYS_NAME_ID_ppc64_linux22 2901 diff --git a/src/config/param.i386_umlinux26.h b/src/config/param.i386_umlinux26.h new file mode 100644 index 0000000000..831eb2a2ab --- /dev/null +++ b/src/config/param.i386_umlinux26.h @@ -0,0 +1,152 @@ +#ifndef UKERNEL +/* This section for kernel libafs compiles only */ + +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel, + * it's a judgment call. If something is obviously i386 specific, use that + * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2" + * in the sysname is the current version of the client. This takes into + * account the perferred OS user space configuration as well as the kernel. + */ + +#define AFS_LINUX20_ENV 1 +#define AFS_LINUX22_ENV 1 +#define AFS_LINUX24_ENV 1 +#define AFS_LINUX26_ENV 1 +#define AFS_I386_LINUX20_ENV 1 +#define AFS_I386_LINUX22_ENV 1 +#define AFS_I386_LINUX24_ENV 1 +#define AFS_I386_LINUX26_ENV 1 +#define AFS_NONFSTRANS 1 + +#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */ +#define AFS_SYSCALL 137 +#define AFS_64BIT_IOPS_ENV 1 +#define AFS_NAMEI_ENV 1 /* User space interface to file system */ +#define AFS_64BIT_ENV 1 +#define AFS_64BIT_CLIENT 1 + +#if defined(__KERNEL__) && !defined(KDUMP_KERNEL) +#include + +#include +#ifdef CONFIG_SMP +#ifndef AFS_SMP +#define AFS_SMP 1 +#endif +#endif +/* Using "AFS_SMP" to map to however many #define's are required to get + * MP to compile for Linux + */ +#ifdef AFS_SMP +#ifndef CONFIG_SMP +#define CONFIG_SMP 1 +#endif +#ifndef CONFIG_X86_LOCAL_APIC +#define CONFIG_X86_LOCAL_APIC 1 +#endif +#ifndef __SMP__ +#define __SMP__ +#endif +#define AFS_GLOBAL_SUNLOCK +#endif + +#endif /* __KERNEL__ && !DUMP_KERNEL */ + +#include +#define AFS_USERSPACE_IP_ADDR 1 +#define RXK_LISTENER_ENV 1 +#define AFS_GCPAGS 2 /* Set to Userdisabled, allow sysctl to override */ + +#define AFSLITTLE_ENDIAN 1 +#define AFS_HAVE_FFS 1 /* Use system's ffs. */ +#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */ +#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */ + +#ifdef KERNEL +#ifndef MIN +#define MIN(A,B) ((A) < (B) ? (A) : (B)) +#endif +#ifndef MAX +#define MAX(A,B) ((A) > (B) ? (A) : (B)) +#endif +#endif /* KERNEL */ + +#ifndef KERNEL +#define __USE_LARGEFILE64 1 +#if !defined off64_t +#define off64_t __off64_t +#endif +#endif + +/* Machine / Operating system information */ +#define SYS_NAME "i386_umlinux26" +#define SYS_NAME_ID SYS_NAME_ID_i386_umlinux26 + +#endif /* AFS_PARAM_H */ + + + +#else /* !defined(UKERNEL) */ + +/* This section for user space compiles only */ + +#ifndef AFS_PARAM_H +#define AFS_PARAM_H + +/* In user space the AFS_LINUX20_ENV should be sufficient. In the kernel, + * it's a judgment call. If something is obviously i386 specific, use that + * #define instead. Note that "20" refers to the linux 2.0 kernel. The "2" + * in the sysname is the current version of the client. This takes into + * account the perferred OS user space configuration as well as the kernel. + */ + +#define UKERNEL 1 /* user space kernel */ +#define AFS_ENV 1 +#define AFS_USR_LINUX20_ENV 1 +#define AFS_USR_LINUX22_ENV 1 +#define AFS_USR_LINUX24_ENV 1 +#define AFS_USR_LINUX26_ENV 1 +#define AFS_NONFSTRANS 1 + +#define AFS_MOUNT_AFS "afs" /* The name of the filesystem type. */ +#define AFS_SYSCALL 137 +#define AFS_64BIT_IOPS_ENV 1 +#define AFS_NAMEI_ENV 1 /* User space interface to file system */ +#include + +#define AFS_USERSPACE_IP_ADDR 1 +#define RXK_LISTENER_ENV 1 +#define AFS_GCPAGS 0 /* if nonzero, garbage collect PAGs */ + + +/* Machine / Operating system information */ +#define SYS_NAME "i386_umlinux26" +#define SYS_NAME_ID SYS_NAME_ID_i386_umlinux26 +#define AFSLITTLE_ENDIAN 1 +#define AFS_HAVE_FFS 1 /* Use system's ffs. */ +#define AFS_HAVE_STATVFS 0 /* System doesn't support statvfs */ +#define AFS_VM_RDWR_ENV 1 /* read/write implemented via VM */ + +#define afsio_iov uio_iov +#define afsio_iovcnt uio_iovcnt +#define afsio_offset uio_offset +#define afsio_seg uio_segflg +#define afsio_fmode uio_fmode +#define afsio_resid uio_resid +#define AFS_UIOSYS 1 +#define AFS_UIOUSER UIO_USERSPACE +#define AFS_CLBYTES MCLBYTES +#define AFS_MINCHANGE 2 +#define VATTR_NULL usr_vattr_null + +#define AFS_DIRENT +#ifndef CMSERVERPREF +#define CMSERVERPREF +#endif + +#endif /* AFS_PARAM_H */ + +#endif /* !defined(UKERNEL) */ diff --git a/src/libafs/MakefileProto.LINUX.in b/src/libafs/MakefileProto.LINUX.in index 6d6673834e..ec8125d66e 100644 --- a/src/libafs/MakefileProto.LINUX.in +++ b/src/libafs/MakefileProto.LINUX.in @@ -49,10 +49,13 @@ DEFINES = $(COMMON_DEFINES) -DCPU=586 CCFLAGS = $(COMMON_KERN_CFLAGS) -mcmodel=kernel DEFINES = $(COMMON_DEFINES) - -CCFLAGS = $(COMMON_KERN_CFLAGS) @P5PLUS_KOPTS@ -I$(LINUX_KERNEL_PATH)/arch/um/include -I$(LINUX_KERNEL_PATH)/arch/um/kernel/tt/include -I$(LINUX_KERNEL_PATH)/arch/um/kernel/skas/include + +CCFLAGS = $(COMMON_KERN_CFLAGS) @P5PLUS_KOPTS@ -Wno-strict-prototypes -I$(LINUX_KERNEL_PATH)/arch/um/include -I$(LINUX_KERNEL_PATH)/arch/um/kernel/tt/include -I$(LINUX_KERNEL_PATH)/arch/um/kernel/skas/include DEFINES = $(COMMON_DEFINES) -DCPU=586 + +EXTRA_CFLAGS = -I$(LINUX_KERNEL_PATH)/arch/um/include -I$(LINUX_KERNEL_PATH)/arch/um/kernel/tt/include -I$(LINUX_KERNEL_PATH)/arch/um/kernel/skas/include + CCFLAGS = $(COMMON_KERN_CFLAGS) -mno-fp-regs -ffixed-8 DEFINES = $(COMMON_DEFINES) @@ -108,9 +111,9 @@ DESTDIRS=linux_destdirs include Makefile.common - + LINUX_MODULE_EXT=ko - + LINUX_MODULE_EXT=o @@ -152,6 +155,7 @@ ${COMPDIRS} ${INSTDIRS} ${DESTDIRS}: ln -fs ${LINUX_KERNEL_PATH}/include/asm-i386 asm ln -fs ${LINUX_KERNEL_PATH}/include/asm-um asm + ln -fs ${LINUX_KERNEL_PATH}/arch/um/include/sysdep ln -fs ${LINUX_KERNEL_PATH}/include/asm-x86_64 asm @@ -235,17 +239,16 @@ libafs.ep: $(LIBAFS_EP) libafs.bm: $(LIBAFS_BM) echo BM Build Complete - + ${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LIBAFS_BM}: libafs.ko cp libafs.ko $@ .FORCE: libafs.ko: .FORCE - ../$(srcdir)/make_kbuild_makefile.pl ${KDIR} $@ \ - @TOP_OBJDIR@/src/config/Makefile.config Makefile.afs Makefile.common - $(MAKE) -C ${LINUX_KERNEL_PATH} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules + env EXTRA_CFLAGS="${EXTRA_CFLAGS}" ../$(srcdir)/make_kbuild_makefile.pl ${KDIR} $@ @TOP_OBJDIR@/src/config/Makefile.config Makefile.afs Makefile.common + env EXTRA_CFLAGS="${EXTRA_CFLAGS}" $(MAKE) -C ${LINUX_KERNEL/src/libafs/${KDIR} modules - + ${LIBAFS}: $(AFSAOBJS) $(AFSNONFSOBJS) $(RM) -f $@ $(LD) -r -o $@ $(AFSAOBJS) $(AFSNONFSOBJS) diff --git a/src/libafsrpc/Makefile.in b/src/libafsrpc/Makefile.in index 7e3f8e22b4..70a6702a79 100644 --- a/src/libafsrpc/Makefile.in +++ b/src/libafsrpc/Makefile.in @@ -203,11 +203,11 @@ md4.o: ${RXKAD}/md4.c md5.o: ${RXKAD}/md5.c ${CCRULE} ${RXKAD}/md5.c -fcrypt.o: ${TOP_SRCDIR}/src/rxkad/domestic/fcrypt.c - ${CCRULE} ${TOP_SRCDIR}/src/rxkad/domestic/fcrypt.c +fcrypt.o: ${RXKAD}/domestic/fcrypt.c + ${CCRULE} ${RXKAD}/domestic/fcrypt.c -crypt_conn.o: ${TOP_SRCDIR}/src/rxkad/domestic/crypt_conn.c - ${CCRULE} ${TOP_SRCDIR}/src/rxkad/domestic/crypt_conn.c +crypt_conn.o: ${RXKAD}/domestic/crypt_conn.c + ${CCRULE} ${RXKAD}/domestic/crypt_conn.c AFS_component_version_number.o: ${TOP_OBJDIR}/src/rx/AFS_component_version_number.c ${CCRULE} ${TOP_OBJDIR}/src/rx/AFS_component_version_number.c