summarylogtreecommitdiffstats
path: root/0025-rxgen-Declare-generated-PKG_OpCodeStats.patch
diff options
context:
space:
mode:
Diffstat (limited to '0025-rxgen-Declare-generated-PKG_OpCodeStats.patch')
-rw-r--r--0025-rxgen-Declare-generated-PKG_OpCodeStats.patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/0025-rxgen-Declare-generated-PKG_OpCodeStats.patch b/0025-rxgen-Declare-generated-PKG_OpCodeStats.patch
new file mode 100644
index 000000000000..e74a7bfb8214
--- /dev/null
+++ b/0025-rxgen-Declare-generated-PKG_OpCodeStats.patch
@@ -0,0 +1,70 @@
+From 53c988023e7e6087026d6ed795ed4a13ea39cb94 Mon Sep 17 00:00:00 2001
+From: Cheyenne Wills <cwills@sinenomine.net>
+Date: Tue, 5 Mar 2024 07:40:08 -0700
+Subject: [PATCH 25/29] rxgen: Declare generated PKG_OpCodeStats()
+
+The function {PKG}_OpCodeStats() is generated by rxgen, however a
+prototype for the function is not generated.
+
+The functions h_ProcMainBody_setup() and h_HeadofOldStyleProc_setup()
+in rpc_parse.c emit prototypes for {PKG}_ExecuteRequest() and
+{PKG}_TranslateOpCode(), but do not emit a prototype for
+{PKG}_OpCodeStats().
+
+Update rxgen to emit a function prototype for {PKG}_OpCodeStats() in the
+generated header file.
+
+Use a variable to point to "PackagePrefix[PackageIndex]" in
+h_ProcMainBody_setup to improve readability.
+
+{PKG}_OpCodeStats(), specifically RXSTATS_OpCodeStats(), is flagged due
+to a missing prototype when building against a Linux 6.8 kernel (which
+sets the -Wmissing-declarations and -Wmissing-prototypes compiler flags
+as default). Linux 6.8 commit: 'Makefile.extrawarn: turn on
+missing-prototypes globally' (0fcb70851f). When building against a
+kernel with CONFIG_WERROR=y, the build fails.
+
+Reviewed-on: https://gerrit.openafs.org/15631
+Tested-by: BuildBot <buildbot@rampaginggeek.com>
+Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
+Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
+(cherry picked from commit 26bb4d143b31ba027cf2721ac731df67a174c43b)
+
+Change-Id: I9072d22d142b5b7a2f59b0cfc4026066ef1d9501
+---
+ src/rxgen/rpc_parse.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/src/rxgen/rpc_parse.c b/src/rxgen/rpc_parse.c
+index 59854f4d5..e648a6600 100644
+--- a/src/rxgen/rpc_parse.c
++++ b/src/rxgen/rpc_parse.c
+@@ -2148,10 +2148,14 @@ er_TailofOldStyleProc_setup(void)
+ static void
+ h_ProcMainBody_setup(void)
+ {
++ char *pprefix = PackagePrefix[PackageIndex];
+ f_print(fout,"\nextern int %s%sExecuteRequest(struct rx_call *);\n",
+- prefix, PackagePrefix[PackageIndex]);
++ prefix, pprefix);
+ f_print(fout,"extern char * %s%sTranslateOpCode(int op);\n", prefix,
+- PackagePrefix[PackageIndex]);
++ pprefix);
++ f_print(fout,"extern struct %s%sstats *%s%sOpCodeStats(int op);\n",
++ prefix, pprefix,
++ prefix, pprefix);
+ }
+
+ static void
+@@ -2165,6 +2169,8 @@ h_HeadofOldStyleProc_setup(void)
+ f_print(fout,"\nextern int %sOpCodeIndex(int op);\n", PackagePrefix[PackageIndex]);
+ f_print(fout, "extern char * %s%sTranslateOpCode(int op);\n",
+ prefix, pprefix);
++ f_print(fout, "extern struct %s%sstats *%s%sOpCodeStats(int op);\n",
++ prefix, pprefix, prefix, pprefix);
+ }
+
+ void
+--
+2.44.0
+