Messages in this thread Patch in this message | | | From | Masahiro Yamada <> | Subject | [PATCH 2/4] modpost: add PATTERNS() helper macro | Date | Mon, 1 Aug 2022 18:39:00 +0900 |
| |
This will be useful to define a NULL-terminated array inside a function call.
Currently, string arrays passed to match() are defined in separate places:
static const char *const init_sections[] = { ALL_INIT_SECTIONS, NULL }; static const char *const text_sections[] = { ALL_TEXT_SECTIONS, NULL }; static const char *const optim_symbols[] = { "*.constprop.*", NULL };
...
/* Check for pattern 5 */ if (match(fromsec, text_sections) && match(tosec, init_sections) && match(fromsym, optim_symbols)) return 0;
With the new helper macro, you can list the patterns directly in the function call, like this:
/* Check for pattern 5 */ if (match(fromsec, PATTERNS(ALL_TEXT_SECTIONS)) && match(tosec, PATTERNS(ALL_INIT_SECTIONS)) && match(fromsym, PATTERNS("*.contprop.*"))) return 0;
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> ---
scripts/mod/modpost.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 9e8ae2636ec1..c2949a1a0d5e 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -746,6 +746,13 @@ static bool match(const char *string, const char *const patterns[]) return false; } +/* useful to pass patterns to match() directly */ +#define PATTERNS(...) \ + ({ \ + static const char *const patterns[] = {__VA_ARGS__, NULL}; \ + patterns; \ + }) + /* sections that we do not want to do full section mismatch check on */ static const char *const section_white_list[] = { -- 2.34.1
| |