[PATCH] fix cleanup_lockfiles function linkage in exportd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>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







[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux