108 lines
4.1 KiB
Diff
108 lines
4.1 KiB
Diff
|
From ef7b8c578790d84c89f09c3236f1718725770e75 Mon Sep 17 00:00:00 2001
|
||
|
From: Cheyenne Wills <cwills@sinenomine.net>
|
||
|
Date: Wed, 07 Feb 2024 14:51:23 -0700
|
||
|
Subject: [PATCH] cf: Add function prototypes for linux conftest
|
||
|
|
||
|
The Linux 6.8 commit:
|
||
|
'Makefile.extrawarn: turn on missing-prototypes globally' (0fcb70851f)
|
||
|
|
||
|
added the compiler flags -Wmissing-declarations and -Wmissing-prototypes
|
||
|
as defaults for all kernel modules builds. This change causes configure
|
||
|
to fail for various Linux kernel tests.
|
||
|
|
||
|
Update the template used to create the conftest.c file to provide a
|
||
|
function declaration for conftest().
|
||
|
|
||
|
Use a 'static' attribute when defining functions used within tests.
|
||
|
|
||
|
Note: 2 configure tests (LINUX_INIT_WORK_AS_DATA and
|
||
|
LINUX_IOP_CREATE_TAKES_MODE_T) defined nested functions. Relocate the
|
||
|
nested functions to outside the body of conftest() to avoid compiler
|
||
|
errors due to nested function definitions.
|
||
|
|
||
|
Reviewed-on: https://gerrit.openafs.org/15614
|
||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
||
|
(cherry picked from commit 1440843b80e28db908bd8c264b8adbfb2c95b4d9)
|
||
|
|
||
|
Change-Id: I38acb7b0cb08dec8e9bca5f3792fbf981884a74c
|
||
|
Reviewed-on: https://gerrit.openafs.org/15683
|
||
|
Tested-by: BuildBot <buildbot@rampaginggeek.com>
|
||
|
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
|
||
|
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
|
||
|
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
|
||
|
---
|
||
|
|
||
|
diff --git a/src/cf/linux-test1.m4 b/src/cf/linux-test1.m4
|
||
|
index 7bb5a67..010a446 100644
|
||
|
--- a/src/cf/linux-test1.m4
|
||
|
+++ b/src/cf/linux-test1.m4
|
||
|
@@ -16,7 +16,7 @@
|
||
|
/* end confdefs.h */
|
||
|
#include <linux/module.h>
|
||
|
$1
|
||
|
-
|
||
|
+void conftest(void);
|
||
|
void conftest(void)
|
||
|
{
|
||
|
$2
|
||
|
@@ -201,7 +201,7 @@
|
||
|
CPPFLAGS="$CPPFLAGS -Werror"
|
||
|
AC_TRY_KBUILD(
|
||
|
[$4
|
||
|
- $5 op($6) { return ($5)0; };],
|
||
|
+ static $5 op($6) { return ($5)0; };],
|
||
|
[static struct $1 ops; ops.$2 = op;],
|
||
|
AS_VAR_SET([ac_linux_operation], [yes]),
|
||
|
AS_VAR_SET([ac_linux_operation], [no]))
|
||
|
diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4
|
||
|
index 3596b6a..7889c90 100644
|
||
|
--- a/src/cf/linux-test4.m4
|
||
|
+++ b/src/cf/linux-test4.m4
|
||
|
@@ -400,9 +400,9 @@
|
||
|
AC_CHECK_LINUX_BUILD([whether INIT_WORK has a _data argument],
|
||
|
[ac_cv_linux_init_work_has_data],
|
||
|
[#include <linux/kernel.h>
|
||
|
-#include <linux/workqueue.h>],
|
||
|
-[
|
||
|
-void f(struct work_struct *w) {}
|
||
|
+#include <linux/workqueue.h>
|
||
|
+static void f(struct work_struct *w) {}],
|
||
|
+[
|
||
|
struct work_struct *w;
|
||
|
int *i;
|
||
|
INIT_WORK(w,f,i);],
|
||
|
@@ -493,7 +493,7 @@
|
||
|
AC_CHECK_LINUX_BUILD([whether kmem_cache_create constructor takes a void pointer],
|
||
|
[ac_cv_linux_kmem_cache_create_ctor_takes_void],
|
||
|
[#include <linux/slab.h>
|
||
|
- void _ctor(void *v) { };],
|
||
|
+ static void _ctor(void *v) { };],
|
||
|
[kmem_cache_create(NULL, 0, 0, 0, _ctor);],
|
||
|
[KMEM_CACHE_CTOR_TAKES_VOID],
|
||
|
[define if kmem_cache_create constructor takes a single void ptr],
|
||
|
@@ -667,7 +667,7 @@
|
||
|
AC_CHECK_LINUX_BUILD([whether 4.11+ inode.i_op->getattr takes a struct path argument],
|
||
|
[ac_cv_linux_iop_getattr_takes_path_struct],
|
||
|
[#include <linux/fs.h>
|
||
|
- int _getattr(const struct path *path, struct kstat *stat, u32 request_mask,
|
||
|
+ static int _getattr(const struct path *path, struct kstat *stat, u32 request_mask,
|
||
|
unsigned int sync_mode) {return 0;};
|
||
|
struct inode_operations _i_ops;],
|
||
|
[_i_ops.getattr = _getattr;],
|
||
|
@@ -692,10 +692,10 @@
|
||
|
AC_DEFUN([LINUX_IOP_CREATE_TAKES_UMODE_T], [
|
||
|
AC_CHECK_LINUX_BUILD([whether inode.i_op->create takes a umode_t argument],
|
||
|
[ac_cv_linux_iop_create_takes_umode_t],
|
||
|
- [#include <linux/fs.h>],
|
||
|
+ [#include <linux/fs.h>
|
||
|
+ static int _create(struct inode *i, struct dentry *d, umode_t m, struct nameidata *n)
|
||
|
+ {return 0;};],
|
||
|
[static struct inode_operations _i_ops;
|
||
|
- int _create(struct inode *i, struct dentry *d, umode_t m, struct nameidata *n)
|
||
|
- {return 0;};
|
||
|
_i_ops.create = _create;],
|
||
|
[IOP_CREATE_TAKES_UMODE_T],
|
||
|
[define if inode.i_op->create takes a umode_t argument],
|