[libvirt] [PATCH] tests: don't try to mock __open_2 on non-GLibc builds

Daniel P. Berrangé berrange at redhat.com
Tue Aug 20 09:23:48 UTC 2019


Mocking of the __open_2 function was added in

  commit 459f071cacf30af9df93b7d090b1bda71b0ef20f
  Author: Michal Privoznik <mprivozn at redhat.com>
  Date:   Thu Aug 15 16:37:17 2019 +0200

    virpcimock: Mock __open_2()

This function only exists in glibc, however, and the mocking code runs
on systems not using glibc, such as FreeBSD. Even Linux hosts might be
using a different libc impl, though we don't actively try to support
that.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---

Pushed as a CI build fix for FreeBSD

 tests/virpcimock.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tests/virpcimock.c b/tests/virpcimock.c
index ca6cc060fd..e9a3791aea 100644
--- a/tests/virpcimock.c
+++ b/tests/virpcimock.c
@@ -32,7 +32,9 @@
 
 static int (*real_access)(const char *path, int mode);
 static int (*real_open)(const char *path, int flags, ...);
+#ifdef __GLIBC__
 static int (*real___open_2)(const char *path, int flags);
+#endif /* ! __GLIBC__ */
 static int (*real_close)(int fd);
 static DIR * (*real_opendir)(const char *name);
 static char *(*real_virFileCanonicalizePath)(const char *path);
@@ -955,7 +957,9 @@ init_syms(void)
 
     VIR_MOCK_REAL_INIT(access);
     VIR_MOCK_REAL_INIT(open);
+#ifdef __GLIBC__
     VIR_MOCK_REAL_INIT(__open_2);
+#endif /* ! __GLIBC__ */
     VIR_MOCK_REAL_INIT(close);
     VIR_MOCK_REAL_INIT(opendir);
     VIR_MOCK_REAL_INIT(virFileCanonicalizePath);
@@ -1084,6 +1088,7 @@ open(const char *path, int flags, ...)
 }
 
 
+#ifdef __GLIBC__
 /* in some cases this function may not be present in headers, so we need
  * a declaration to silence the complier */
 int
@@ -1113,7 +1118,7 @@ __open_2(const char *path, int flags)
 
     return ret;
 }
-
+#endif /* ! __GLIBC__ */
 
 DIR *
 opendir(const char *path)
-- 
2.21.0




More information about the libvir-list mailing list