
"Daniel P. Berrange" <berrange@redhat.com> wrote:
On Mon, Feb 02, 2009 at 06:08:15PM +0100, Jim Meyering wrote:
From: Jim Meyering <meyering@redhat.com>
* src/qemu_driver.c: Use virSetCloseExec and virSetNonBlock, rather than qemuSet* functions. Suggested by Daniel P. Berrange. * src/util.c (virSetCloseExec): Compile unconditionally. * src/util.h (virSetCloseExec): Declare
diff --git a/qemud/Makefile.am b/qemud/Makefile.am index a0c161a..372b931 100644 --- a/qemud/Makefile.am +++ b/qemud/Makefile.am @@ -107,6 +107,7 @@ libvirtd_LDADD = \ if ! WITH_DRIVER_MODULES if WITH_QEMU libvirtd_LDADD += ../src/libvirt_driver_qemu.la +libvirtd_LDADD += ../src/libvirt_util.la endif
This is not required. All the functions in util.c are provided in the libvirt.so, and exported with LIBVIRT_PRIVATE_X_X_X tag.
This patch is missing the change to libvirt_private.sym to actually add the virSetCloseExec function though.
Ah. forgot about that. Done.
@@ -182,10 +182,7 @@ int virSetNonBlock(int fd) { return 0; }
- -#ifndef WIN32 - -static int virSetCloseExec(int fd) { +int virSetCloseExec(int fd) { int flags; if ((flags = fcntl(fd, F_GETFD)) < 0) return -1; @@ -195,6 +192,8 @@ static int virSetCloseExec(int fd) { return 0; }
+#ifndef WIN32 + static int __virExec(virConnectPtr conn, const char *const*argv,
Why this change ? AFAIK, there is no close-on-exec flag in Win32, since it doesn't have any concept of exec(). The QEMU driver isn't built on Win32, so we shouldn't need to expose virSetCloseExec there anyway.
Looked like it'd be portable enough to compile even there, plus the general preference to avoid ifdef'd code in libraries. I've read up a little and see that there really is no point, so have put it back.