
Eric, thanks for reply but I'm having some issues now... I've pulled libvirt sources from upstream and I'm unable to compile it since it keeps saying following: CCLD libvirt_parthelper ./.libs/libvirt_util.a(libvirt_util_la-util.o): In function `virFileOperationNoFork': /home/mig/Work/virt-related/libvirt/src/util/util.c:1363: undefined reference to `rpl_open' ./.libs/libvirt_util.a(libvirt_util_la-util.o): In function `virFileReadAll': /home/mig/Work/virt-related/libvirt/src/util/util.c:1159: undefined reference to `rpl_open' ./.libs/libvirt_util.a(libvirt_util_la-util.o): In function `virFileWriteStr': /home/mig/Work/virt-related/libvirt/src/util/util.c:1184: undefined reference to `rpl_open' /home/mig/Work/virt-related/libvirt/src/util/util.c:1186: undefined reference to `rpl_open' ./.libs/libvirt_util.a(libvirt_util_la-util.o): In function `virFileOperation': /home/mig/Work/virt-related/libvirt/src/util/util.c:1519: undefined reference to `rpl_open' ./.libs/libvirt_util.a(libvirt_util_la-util.o):/home/mig/Work/virt-related/libvirt/src/util/util.c:1795: more undefined references to `rpl_open' follow collect2: ld returned 1 exit status Unfortunately I was unable to find definition of 'rpl_open' function using git grep so I don't really know what to do there. Some bug or do I miss something?
+++ b/src/xen/xend_internal.c @@ -1218,6 +1218,9 @@ xenDaemonParseSxprChar(const char *value,
if (value[0] == '/') { def->source.type = VIR_DOMAIN_CHR_TYPE_DEV; + def->data.file.path = strdup(value); + if (!def->data.file.path) + goto error; This should be goto no_memory.
To my knowledge this is not the only one issue there since this has been changed from def->data.file.path to def->source.data.file.path to compile successfully but that's fine. It seems like codebase changed so it took some time to rewrite the code for the current upstream codebase.
@@ -5958,10 +6011,22 @@ xenDaemonFormatSxpr(virConnectPtr conn, virBufferAddLit(&buf, "(parallel none)"); } if (def->serials) { - virBufferAddLit(&buf, "(serial "); - if (xenDaemonFormatSxprChr(def->serials[0],&buf)< 0) - goto error; - virBufferAddLit(&buf, ")"); + if (def->nserials> 1) { + virBufferAddLit(&buf, "(serial ("); + for (i = 0; i< def->nserials; i++) { + if (xenDaemonFormatSxprChr(def->serials[i],&buf)< 0) + goto error; + if (i< def->nserials - 1) + virBufferAddLit(&buf, " "); + } + virBufferAddLit(&buf, "))"); + } You skipped "none" as a placeholder when parsing; but I'm not sure if this generates "none" on output to match.
Basically I don't know what you mean by this. Also, when I was defining XMLs I saw that the console node copies the first serial node however how to define it if first serial node is just none? I mean the XML is like: <serial type='dev'> <source path='/dev/ttyS0'/> <target port='0'/> </serial> <serial type='dev'> <source path='/dev/ttyS1'/> <target port='1'/> </serial> <console type='dev'> <source path='/dev/ttyS0'/> <target port='0'/> </console> But what should the XML part be for case of first serial device to be none ? Michal -- Michal Novotny<minovotn@redhat.com>, RHCE Virtualization Team (xen userspace), Red Hat