Driver module loaders current hardcode ".so" as the file
extension. On MacOS, meson uses ".dylib" as a module file extension.
This patch adds VIR_FILE_MODULE_EXT to virfile.h defined as the
hosts module extension, and updates driver module loaders to make
use of it.
Signed-off-by: Scott Shambarger <scott-libvirt(a)shambarger.net>
---
src/driver.c | 2 +-
src/locking/lock_manager.c | 2 +-
src/storage/storage_backend.c | 2 +-
src/util/virfile.h | 6 ++++++
src/util/virstoragefilebackend.c | 2 +-
5 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/driver.c b/src/driver.c
index 37bf9de392..1cacec24ff 100644
--- a/src/driver.c
+++ b/src/driver.c
@@ -55,7 +55,7 @@ virDriverLoadModule(const char *name,
if (!(modfile = virFileFindResourceFull(name,
"libvirt_driver_",
- ".so",
+ VIR_FILE_MODULE_EXT,
abs_top_builddir "/src",
DEFAULT_DRIVER_DIR,
"LIBVIRT_DRIVER_DIR")))
diff --git a/src/locking/lock_manager.c b/src/locking/lock_manager.c
index 39e482f11c..ada950e03e 100644
--- a/src/locking/lock_manager.c
+++ b/src/locking/lock_manager.c
@@ -138,7 +138,7 @@ virLockManagerPluginPtr virLockManagerPluginNew(const char *name,
} else {
if (!(modfile = virFileFindResourceFull(name,
NULL,
- ".so",
+ VIR_FILE_MODULE_EXT,
abs_top_builddir "/src",
LIBDIR "/libvirt/lock-driver",
"LIBVIRT_LOCK_MANAGER_PLUGIN_DIR")))
diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index 1f83236f2f..2bce445575 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -91,7 +91,7 @@ virStorageDriverLoadBackendModule(const char *name,
if (!(modfile = virFileFindResourceFull(name,
"libvirt_storage_backend_",
- ".so",
+ VIR_FILE_MODULE_EXT,
abs_top_builddir "/src",
STORAGE_BACKEND_MODULE_DIR,
"LIBVIRT_STORAGE_BACKEND_DIR")))
diff --git a/src/util/virfile.h b/src/util/virfile.h
index 2eec89598f..09488398c5 100644
--- a/src/util/virfile.h
+++ b/src/util/virfile.h
@@ -36,6 +36,12 @@ typedef enum {
VIR_FILE_CLOSE_DONT_LOG = 1 << 2,
} virFileCloseFlags;
+#ifdef __APPLE__
+# define VIR_FILE_MODULE_EXT ".dylib"
+#else
+# define VIR_FILE_MODULE_EXT ".so"
+#endif
+
ssize_t saferead(int fd, void *buf, size_t count) G_GNUC_WARN_UNUSED_RESULT;
ssize_t safewrite(int fd, const void *buf, size_t count)
G_GNUC_WARN_UNUSED_RESULT;
diff --git a/src/util/virstoragefilebackend.c b/src/util/virstoragefilebackend.c
index bf452a1dc5..2779b5c307 100644
--- a/src/util/virstoragefilebackend.c
+++ b/src/util/virstoragefilebackend.c
@@ -56,7 +56,7 @@ virStorageFileLoadBackendModule(const char *name,
if (!(modfile = virFileFindResourceFull(name,
"libvirt_storage_file_",
- ".so",
+ VIR_FILE_MODULE_EXT,
abs_top_builddir "/src",
STORAGE_FILE_MODULE_DIR,
"LIBVIRT_STORAGE_FILE_DIR")))
--
2.24.3 (Apple Git-128)