]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
src: add G_GNUC_NO_INLINE annotations for mocked symbols
authorDaniel P. Berrangé <berrange@redhat.com>
Tue, 4 Aug 2020 14:17:07 +0000 (15:17 +0100)
committerDaniel P. Berrangé <berrange@redhat.com>
Tue, 4 Aug 2020 16:58:08 +0000 (17:58 +0100)
We should prevent inlining of symbols from the driver .so files that are
mocked, as well as those in the main libvirt.so

This isn't fixing any currently known problem, just trying to prevent
future issues.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
scripts/mock-noinline.py
src/libxl/libxl_capabilities.h
src/qemu/qemu_command.h
src/qemu/qemu_hotplug.h
src/qemu/qemu_interface.h
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.h
src/qemu/qemu_process.h

index a8b7680c11386ce04b58babc460801166a02a855..69cf0b4b99d23c7258e029f69ca4b221bfaadcc4 100644 (file)
@@ -59,7 +59,7 @@ def scan_overrides(filename):
                 m = re.search(r'''^\w+\s*(?:\*\s*)?(\w+)\(''', line)
             if m is not None:
                 name = m.group(1)
-                if name.startswith("vir"):
+                if name.startswith("vir") or name.startswith("qemu") or name.startswith("libxl"):
                     mocked[name] = "%s:%d" % (filename, lineno)
 
 
index 9efb8364291ea2c05deaa5273dd80bfd61206118..4e8e2bb59bf03dff27d9d068d3cda3a4c8225530 100644 (file)
@@ -39,7 +39,7 @@
  * by libvirt for Xen, and cannot be used for a persistent network name.  */
 #define LIBXL_GENERATED_PREFIX_XEN "vif"
 
-bool libxlCapsHasPVUSB(void);
+bool libxlCapsHasPVUSB(void) G_GNUC_NO_INLINE;
 
 virCapsPtr
 libxlMakeCapabilities(libxl_ctx *ctx);
index b579817b4416752a588ce28385353724215437cf..89d99b111ff3548317a0f0df8feb1a52b45c79e5 100644 (file)
@@ -82,7 +82,7 @@ int qemuBuildTLSx509BackendProps(const char *tlspath,
 
 /* Open a UNIX socket for chardev FD passing */
 int
-qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev);
+qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev) G_GNUC_NO_INLINE;
 
 /* Generate '-device' string for chardev device */
 int
@@ -254,4 +254,4 @@ qemuBuildTPMOpenBackendFDs(const char *tpmdev,
                            int *tpmfd,
                            int *cancelfd)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
-    ATTRIBUTE_NONNULL(4);
+    ATTRIBUTE_NONNULL(4) G_GNUC_NO_INLINE;
index 4a49e04a15064f577833043133d4456183606794..6287c5b5e846398e873e4a624df52421e5479360 100644 (file)
@@ -151,7 +151,7 @@ int qemuDomainSetVcpuInternal(virQEMUDriverPtr driver,
                               virBitmapPtr vcpus,
                               bool state);
 
-unsigned long long qemuDomainGetUnplugTimeout(virDomainObjPtr vm);
+unsigned long long qemuDomainGetUnplugTimeout(virDomainObjPtr vm) G_GNUC_NO_INLINE;
 
 int qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver,
                                  virDomainObjPtr vm,
index 0464b903d79edf1a6c862d0aa3f9b0311ba6ba22..3dcefc6a1211da582c079197c172224063ab6a0d 100644 (file)
@@ -54,7 +54,7 @@ int qemuInterfaceBridgeConnect(virDomainDefPtr def,
 int qemuInterfaceOpenVhostNet(virDomainDefPtr def,
                               virDomainNetDefPtr net,
                               int *vhostfd,
-                              size_t *vhostfdSize);
+                              size_t *vhostfdSize) G_GNUC_NO_INLINE;
 
 qemuSlirpPtr qemuInterfacePrepareSlirp(virQEMUDriverPtr driver,
                                        virDomainNetDefPtr net);
index 1c1b0c9b8962621cefe2c9930f29bc82f5c9f8cb..d20a15c202db6730a899f73342fe0789aca09bb5 100644 (file)
@@ -408,7 +408,7 @@ int qemuMonitorSetLink(qemuMonitorPtr mon,
 /* These APIs are for use by the internal Text/JSON monitor impl code only */
 char *qemuMonitorNextCommandID(qemuMonitorPtr mon);
 int qemuMonitorSend(qemuMonitorPtr mon,
-                    qemuMonitorMessagePtr msg);
+                    qemuMonitorMessagePtr msg) G_GNUC_NO_INLINE;
 virJSONValuePtr qemuMonitorGetOptions(qemuMonitorPtr mon)
     ATTRIBUTE_NONNULL(1);
 void qemuMonitorSetOptions(qemuMonitorPtr mon, virJSONValuePtr options)
index 84fea25983dfbddd3dc5548abdd4cde92d80e95d..098ab857be6f58606aa1857ac91a7cfd6035896f 100644 (file)
@@ -30,7 +30,7 @@
 
 int qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon,
                                  const char *line,
-                                 qemuMonitorMessagePtr msg);
+                                 qemuMonitorMessagePtr msg) G_GNUC_NO_INLINE;
 
 int qemuMonitorJSONIOProcess(qemuMonitorPtr mon,
                              const char *data,
index 125508f9fe9c746c1809df4a7390cc725f5eeed9..dbd989c32185f96313fec303dc6283c66ca36432 100644 (file)
@@ -203,9 +203,9 @@ int qemuProcessRefreshDisks(virQEMUDriverPtr driver,
                             virDomainObjPtr vm,
                             qemuDomainAsyncJob asyncJob);
 
-int qemuProcessStartManagedPRDaemon(virDomainObjPtr vm);
+int qemuProcessStartManagedPRDaemon(virDomainObjPtr vm) G_GNUC_NO_INLINE;
 
-void qemuProcessKillManagedPRDaemon(virDomainObjPtr vm);
+void qemuProcessKillManagedPRDaemon(virDomainObjPtr vm) G_GNUC_NO_INLINE;
 
 typedef struct _qemuProcessQMP qemuProcessQMP;
 typedef qemuProcessQMP *qemuProcessQMPPtr;