From 573357cc5cac550efcef893815b2804fc5612602 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Mon, 14 Aug 2006 23:13:58 +0000 Subject: [PATCH] STABLE14-linux-gpl-only-tests-20060813 don't try to use gpl-only kernel symbols (cherry picked from commit 3017c8dc541afbaed68f9399c348bbdfa7529f9b) --- acinclude.m4 | 10 +++++++--- src/afs/LINUX/osi_probe.c | 12 ++++++++++++ src/cf/linux-test1.m4 | 3 +++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 116224613..ec94aeaec 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -604,6 +604,10 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) LINUX_REFRIGERATOR LINUX_LINUX_KEYRING_SUPPORT LINUX_KEY_ALLOC_NEEDS_STRUCT_TASK + LINUX_EXPORTS_SYS_CHDIR + LINUX_EXPORTS_SYS_CLOSE + LINUX_EXPORTS_SYS_OPEN + LINUX_EXPORTS_SYS_WAIT4 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]) @@ -617,9 +621,6 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) 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 @@ -649,6 +650,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*) 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_open" = "xyes" ; then + AC_DEFINE(EXPORTED_SYS_OPEN, 1, [define if your linux kernel exports sys_open]) + 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 diff --git a/src/afs/LINUX/osi_probe.c b/src/afs/LINUX/osi_probe.c index ee10cb68e..3b30fdd61 100644 --- a/src/afs/LINUX/osi_probe.c +++ b/src/afs/LINUX/osi_probe.c @@ -231,7 +231,9 @@ extern SYSCALLTYPE sys_call_table_emu[] __attribute__((weak)); extern asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count) __attribute__((weak)); extern asmlinkage long sys_close(unsigned int) __attribute__((weak)); +#if defined(EXPORTED_SYS_CHDIR) extern asmlinkage long sys_chdir(const char *) __attribute__((weak)); +#endif extern asmlinkage ssize_t sys_write(unsigned int, const char *, size_t) __attribute__((weak)); #ifdef AFS_LINUX26_ENV extern asmlinkage long sys_wait4(pid_t, int *, int, struct rusage *) __attribute__((weak)); @@ -239,7 +241,9 @@ extern asmlinkage long sys_wait4(pid_t, int *, int, struct rusage *) __attribute extern asmlinkage long sys_wait4(pid_t, unsigned int *, int, struct rusage *) __attribute__((weak)); #endif extern asmlinkage long sys_exit (int) __attribute__((weak)); +#if defined(EXPORTED_SYS_OPEN) extern asmlinkage long sys_open (const char *, int, int) __attribute__((weak)); +#endif extern asmlinkage long sys_ioctl(unsigned int, unsigned int, unsigned long) __attribute__((weak)); @@ -300,14 +304,20 @@ typedef struct { /* On PPC64 and SPARC64, we need to omit the ones that might match both tables */ static tryctl main_try[] = { #if !defined(AFS_PPC64_LINUX20_ENV) && !defined(AFS_SPARC64_LINUX20_ENV) +#if defined(EXPORTED_SYS_CHDIR) { "scan: close+chdir+write", __NR_close, &sys_close, __NR_chdir, &sys_chdir, __NR_write, &sys_write }, +#endif #endif { "scan: close+wait4", __NR_close, &sys_close, __NR_wait4, &sys_wait4, -1, 0 }, #if !defined(AFS_PPC64_LINUX20_ENV) && !defined(AFS_SPARC64_LINUX20_ENV) +#if defined(EXPORTED_SYS_CHDIR) { "scan: close+chdir", __NR_close, &sys_close, __NR_chdir, &sys_chdir, -1, 0 }, +#endif #endif { "scan: close+ioctl", __NR_close, &sys_close, __NR_ioctl, &sys_ioctl, -1, 0 }, +#if defined(EXPORTED_SYS_OPEN) { "scan: exit+open", __NR_exit, &sys_exit, __NR_open, &sys_open, -1, 0 }, +#endif { 0 } }; @@ -590,8 +600,10 @@ static probectl main_probe = { /* syscall pairs/triplets to probe */ static tryctl ia32_try[] = { +#if defined(EXPORTED_SYS_CHDIR) { "scan: close+chdir+write", __NR_ia32_close, &sys_close, __NR_ia32_chdir, &sys_chdir, __NR_ia32_write, &sys_write }, { "scan: close+chdir", __NR_ia32_close, &sys_close, __NR_ia32_chdir, &sys_chdir, -1, 0 }, +#endif { 0 } }; diff --git a/src/cf/linux-test1.m4 b/src/cf/linux-test1.m4 index 3934c9077..7deea944f 100644 --- a/src/cf/linux-test1.m4 +++ b/src/cf/linux-test1.m4 @@ -11,12 +11,15 @@ CFLAGS += $CPPFLAGS obj-m += conftest.o _ACEOF cat >conftest.c <<\_ACEOF +#include $1 void conftest(void) { $2 } + +MODULE_LICENSE("http://www.openafs.org/dl/license10.html"); _ACEOF cd .. fi -- 2.39.5