>From d18643a9fe0e612e823d07cb75d36b4641033f09 Mon Sep 17 00:00:00 2001 From: John Audia <therealgraysky@xxxxxxxxx> Date: Sun, 24 Aug 2025 11:00:44 -0400 Subject: [PATCH] fix cleanup_lockfiles function linkage in exportd The cleanup_lockfiles function in utils/exportd/exportd.c was declared as 'inline void' without a proper function prototype, causing linker errors during the build process: exportd.c:(.text+0x5a): undefined reference to `cleanup_lockfiles' exportd.c:(.text.startup+0x317): undefined reference to `cleanup_lockfiles' This occurred because: 1. The inline keyword prevented the compiler from generating a callable function symbol in some build configurations 2. The function lacked a proper prototype declaration, triggering -Werror=missing-prototypes The fix changes the function to: - Remove the 'inline' keyword to ensure symbol generation - Add a proper static function prototype - Make the function 'static' since it's only used within exportd.c This resolves both the linking error and the missing prototype warning, allowing exportd to build successfully in OpenWrt's cross-compilation environment. --- utils/exportd/exportd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utils/exportd/exportd.c b/utils/exportd/exportd.c index a2e370ac506f..956e4d732f00 100644 --- a/utils/exportd/exportd.c +++ b/utils/exportd/exportd.c @@ -51,9 +51,10 @@ static char shortopts[] = "d:fghs:t:liT:"; /* * Signal handlers. */ +static void cleanup_lockfiles(void); inline static void set_signals(void); -inline void +static void cleanup_lockfiles (void) { unlink(etab.lockfn); -- 2.50.1