From 13b646a73f53716cba3d4a451aec96fbd72d878b Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Thu, 29 May 2025 09:30:58 +0100 Subject: [PATCH] Remove default initializer for static variables The spec dictates that static variables are initialized to 0/NULL. Remove the unnecessary explicit initialization - on older compilers this sheds a few bytes off the data section of respective binaries. Signed-off-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/358 Signed-off-by: Lucas De Marchi --- libkmod/libkmod-file-xz.c | 2 +- libkmod/libkmod-file-zlib.c | 2 +- libkmod/libkmod-file-zstd.c | 2 +- shared/util.h | 2 +- testsuite/testsuite.c | 2 +- tools/modinfo.c | 2 +- tools/modprobe.c | 26 +++++++++++++------------- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/libkmod/libkmod-file-xz.c b/libkmod/libkmod-file-xz.c index f6938770..cafe828c 100644 --- a/libkmod/libkmod-file-xz.c +++ b/libkmod/libkmod-file-xz.c @@ -33,7 +33,7 @@ static int dlopen_lzma(void) #if !DLSYM_LOCALLY_ENABLED return 0; #else - static void *dl = NULL; + static void *dl; ELF_NOTE_DLOPEN("xz", "Support for uncompressing xz-compressed modules", ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED, "liblzma.so.5"); diff --git a/libkmod/libkmod-file-zlib.c b/libkmod/libkmod-file-zlib.c index d4e0f8c3..db9fc8e3 100644 --- a/libkmod/libkmod-file-zlib.c +++ b/libkmod/libkmod-file-zlib.c @@ -36,7 +36,7 @@ static int dlopen_zlib(void) #if !DLSYM_LOCALLY_ENABLED return 0; #else - static void *dl = NULL; + static void *dl; ELF_NOTE_DLOPEN("zlib", "Support for uncompressing zlib-compressed modules", ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED, "libz.so.1"); diff --git a/libkmod/libkmod-file-zstd.c b/libkmod/libkmod-file-zstd.c index f403a01b..8f094597 100644 --- a/libkmod/libkmod-file-zstd.c +++ b/libkmod/libkmod-file-zstd.c @@ -35,7 +35,7 @@ static int dlopen_zstd(void) #if !DLSYM_LOCALLY_ENABLED return 0; #else - static void *dl = NULL; + static void *dl; ELF_NOTE_DLOPEN("zstd", "Support for uncompressing zstd-compressed modules", ELF_NOTE_DLOPEN_PRIORITY_RECOMMENDED, "libzstd.so.1"); diff --git a/shared/util.h b/shared/util.h index 5a4256a2..1f59ec44 100644 --- a/shared/util.h +++ b/shared/util.h @@ -187,7 +187,7 @@ _sentinel_ int dlsym_many(void **dlp, const char *filename, ...); #define DLSYM_ARG(symbol__) &sym_##symbol__, STRINGIFY(symbol__), /* For symbols being dynamically loaded */ -#define DECLARE_DLSYM(symbol) static typeof(symbol) *sym_##symbol = NULL +#define DECLARE_DLSYM(symbol) static typeof(symbol) *sym_##symbol /* Pointer indirection to support linking directly */ #define DECLARE_PTRSYM(symbol) static typeof(symbol) *sym_##symbol = symbol diff --git a/testsuite/testsuite.c b/testsuite/testsuite.c index 0407a7b5..8e721040 100644 --- a/testsuite/testsuite.c +++ b/testsuite/testsuite.c @@ -31,7 +31,7 @@ static const char *ANSI_HIGHLIGHT_RED_ON = "\x1B[1;31m"; static const char *ANSI_HIGHLIGHT_OFF = "\x1B[0m"; static const char *progname; -static int oneshot = 0; +static int oneshot; static const char options_short[] = "lhn"; static const struct option options[] = { { "list", no_argument, 0, 'l' }, diff --git a/tools/modinfo.c b/tools/modinfo.c index 49b790fd..75b57405 100644 --- a/tools/modinfo.c +++ b/tools/modinfo.c @@ -22,7 +22,7 @@ #include "kmod.h" static char separator = '\n'; -static const char *field = NULL; +static const char *field; struct param { struct param *next; diff --git a/tools/modprobe.c b/tools/modprobe.c index a32ccfba..a939a3b0 100644 --- a/tools/modprobe.c +++ b/tools/modprobe.c @@ -32,19 +32,19 @@ static int log_priority = LOG_CRIT; #define DEFAULT_VERBOSE LOG_WARNING static int verbose = DEFAULT_VERBOSE; -static int do_show = 0; -static int dry_run = 0; -static int ignore_loaded = 0; -static int lookup_only = 0; -static int first_time = 0; -static int ignore_commands = 0; -static int use_blacklist = 0; -static int force = 0; -static int strip_modversion = 0; -static int strip_vermagic = 0; -static int remove_holders = 0; -static unsigned long long wait_msec = 0; -static int quiet_inuse = 0; +static int do_show; +static int dry_run; +static int ignore_loaded; +static int lookup_only; +static int first_time; +static int ignore_commands; +static int use_blacklist; +static int force; +static int strip_modversion; +static int strip_vermagic; +static int remove_holders; +static unsigned long long wait_msec; +static int quiet_inuse; static const char cmdopts_s[] = "arw:RibfDcnC:d:S:sqvVh"; static const struct option cmdopts[] = { -- 2.47.3