src: add G_GNUC_NO_INLINE annotations for mocked symbols

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>
This commit is contained in:
Daniel P. Berrangé
2020-08-04 15:17:07 +01:00
parent e960bedee9
commit ba6d9264c6
8 changed files with 10 additions and 10 deletions

View File

@@ -59,7 +59,7 @@ def scan_overrides(filename):
m = re.search(r'''^\w+\s*(?:\*\s*)?(\w+)\(''', line) m = re.search(r'''^\w+\s*(?:\*\s*)?(\w+)\(''', line)
if m is not None: if m is not None:
name = m.group(1) 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) mocked[name] = "%s:%d" % (filename, lineno)

View File

@@ -39,7 +39,7 @@
* by libvirt for Xen, and cannot be used for a persistent network name. */ * by libvirt for Xen, and cannot be used for a persistent network name. */
#define LIBXL_GENERATED_PREFIX_XEN "vif" #define LIBXL_GENERATED_PREFIX_XEN "vif"
bool libxlCapsHasPVUSB(void); bool libxlCapsHasPVUSB(void) G_GNUC_NO_INLINE;
virCapsPtr virCapsPtr
libxlMakeCapabilities(libxl_ctx *ctx); libxlMakeCapabilities(libxl_ctx *ctx);

View File

@@ -82,7 +82,7 @@ int qemuBuildTLSx509BackendProps(const char *tlspath,
/* Open a UNIX socket for chardev FD passing */ /* Open a UNIX socket for chardev FD passing */
int int
qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev); qemuOpenChrChardevUNIXSocket(const virDomainChrSourceDef *dev) G_GNUC_NO_INLINE;
/* Generate '-device' string for chardev device */ /* Generate '-device' string for chardev device */
int int
@@ -254,4 +254,4 @@ qemuBuildTPMOpenBackendFDs(const char *tpmdev,
int *tpmfd, int *tpmfd,
int *cancelfd) int *cancelfd)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
ATTRIBUTE_NONNULL(4); ATTRIBUTE_NONNULL(4) G_GNUC_NO_INLINE;

View File

@@ -151,7 +151,7 @@ int qemuDomainSetVcpuInternal(virQEMUDriverPtr driver,
virBitmapPtr vcpus, virBitmapPtr vcpus,
bool state); bool state);
unsigned long long qemuDomainGetUnplugTimeout(virDomainObjPtr vm); unsigned long long qemuDomainGetUnplugTimeout(virDomainObjPtr vm) G_GNUC_NO_INLINE;
int qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver, int qemuHotplugAttachDBusVMState(virQEMUDriverPtr driver,
virDomainObjPtr vm, virDomainObjPtr vm,

View File

@@ -54,7 +54,7 @@ int qemuInterfaceBridgeConnect(virDomainDefPtr def,
int qemuInterfaceOpenVhostNet(virDomainDefPtr def, int qemuInterfaceOpenVhostNet(virDomainDefPtr def,
virDomainNetDefPtr net, virDomainNetDefPtr net,
int *vhostfd, int *vhostfd,
size_t *vhostfdSize); size_t *vhostfdSize) G_GNUC_NO_INLINE;
qemuSlirpPtr qemuInterfacePrepareSlirp(virQEMUDriverPtr driver, qemuSlirpPtr qemuInterfacePrepareSlirp(virQEMUDriverPtr driver,
virDomainNetDefPtr net); virDomainNetDefPtr net);

View File

@@ -408,7 +408,7 @@ int qemuMonitorSetLink(qemuMonitorPtr mon,
/* These APIs are for use by the internal Text/JSON monitor impl code only */ /* These APIs are for use by the internal Text/JSON monitor impl code only */
char *qemuMonitorNextCommandID(qemuMonitorPtr mon); char *qemuMonitorNextCommandID(qemuMonitorPtr mon);
int qemuMonitorSend(qemuMonitorPtr mon, int qemuMonitorSend(qemuMonitorPtr mon,
qemuMonitorMessagePtr msg); qemuMonitorMessagePtr msg) G_GNUC_NO_INLINE;
virJSONValuePtr qemuMonitorGetOptions(qemuMonitorPtr mon) virJSONValuePtr qemuMonitorGetOptions(qemuMonitorPtr mon)
ATTRIBUTE_NONNULL(1); ATTRIBUTE_NONNULL(1);
void qemuMonitorSetOptions(qemuMonitorPtr mon, virJSONValuePtr options) void qemuMonitorSetOptions(qemuMonitorPtr mon, virJSONValuePtr options)

View File

@@ -30,7 +30,7 @@
int qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon, int qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon,
const char *line, const char *line,
qemuMonitorMessagePtr msg); qemuMonitorMessagePtr msg) G_GNUC_NO_INLINE;
int qemuMonitorJSONIOProcess(qemuMonitorPtr mon, int qemuMonitorJSONIOProcess(qemuMonitorPtr mon,
const char *data, const char *data,

View File

@@ -203,9 +203,9 @@ int qemuProcessRefreshDisks(virQEMUDriverPtr driver,
virDomainObjPtr vm, virDomainObjPtr vm,
qemuDomainAsyncJob asyncJob); 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 struct _qemuProcessQMP qemuProcessQMP;
typedef qemuProcessQMP *qemuProcessQMPPtr; typedef qemuProcessQMP *qemuProcessQMPPtr;