diff options
Diffstat (limited to '0025-rxgen-Declare-generated-PKG_OpCodeStats.patch')
-rw-r--r-- | 0025-rxgen-Declare-generated-PKG_OpCodeStats.patch | 70 |
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 + |