[PATCH] hyperv: Introduce and export 'facility' variable.

Michal Privoznik posted 1 patch 1 week, 3 days ago
src/hyperv/hyperv_wmi.c |  3 +++
src/libvirt_hyperv.syms | 11 +++++++++++
src/meson.build         |  6 ++++++
3 files changed, 20 insertions(+)
create mode 100644 src/libvirt_hyperv.syms
[PATCH] hyperv: Introduce and export 'facility' variable.
Posted by Michal Privoznik 1 week, 3 days ago
In its upstream commit [1] openwsman dropped 'facility' variable
which is documented as:

 * all processes that use the libu must define a "facility" variable somewhere
 * to satisfy this external linkage reference.
 *
 * Such variable will be used as the syslog(3) facility argument.

Well, prior to that commit, openwsman itself declared the
variable (and set it to LOG_DAEMON). Now it's up to us.

Yeah, the variable naming is terrible and also I we are not using
libu directly, but apparently libwsman.so requires it anyway:

  $ objdump -T /usr/lib64/libwsman.so | grep facility
  0000000000000000      D  *UND*  0000000000000000  Base        facility

1: https://github.com/Openwsman/openwsman/commit/d72c51f21b9c85a773b7955ac587d2d3cea982c1
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/hyperv/hyperv_wmi.c |  3 +++
 src/libvirt_hyperv.syms | 11 +++++++++++
 src/meson.build         |  6 ++++++
 3 files changed, 20 insertions(+)
 create mode 100644 src/libvirt_hyperv.syms

diff --git a/src/hyperv/hyperv_wmi.c b/src/hyperv/hyperv_wmi.c
index 0b82f1f131..040bcfec11 100644
--- a/src/hyperv/hyperv_wmi.c
+++ b/src/hyperv/hyperv_wmi.c
@@ -28,6 +28,7 @@
 #include <wsman-soap.h>
 #include <wsman-xml.h>
 #include <wsman-xml-binding.h>
+#include <u/syslog.h>
 
 #include "internal.h"
 #include "virerror.h"
@@ -47,6 +48,8 @@
 
 VIR_LOG_INIT("hyperv.hyperv_wmi");
 
+int facility = LOG_DAEMON;
+
 int
 hypervGetWmiClassList(hypervPrivate *priv, hypervWmiClassInfo *wmiInfo,
                       virBuffer *query, hypervObject **wmiClass)
diff --git a/src/libvirt_hyperv.syms b/src/libvirt_hyperv.syms
new file mode 100644
index 0000000000..60e98db473
--- /dev/null
+++ b/src/libvirt_hyperv.syms
@@ -0,0 +1,11 @@
+#
+# HyperV-specific symbols
+#
+
+# hyperv/hyperv_wmi.c
+facility;
+
+# Let emacs know we want case-insensitive sorting
+# Local Variables:
+# sort-fold-case: t
+# End:
diff --git a/src/meson.build b/src/meson.build
index b53ea2a71f..cce89fac27 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -125,6 +125,12 @@ else
   sym_files += 'libvirt_libssh2.syms'
 endif
 
+if conf.has('WITH_HYPERV')
+  used_sym_files += 'libvirt_hyperv.syms'
+else
+  sym_files += 'libvirt_hyperv.syms'
+endif
+
 # variables filled by subdirectories
 
 libvirt_libs = []
-- 
2.45.2