[libvirt] [PATCH 0/2] Detect misconfiguration between disk bus and disk address
by Marc Hartmayer
This patch series adds the functionality to detect a misconfiguration
between disk bus type and disk address type for disks that are using
the address type virDomainDeviceDriveAddress. It also adds a test for
it.
A check for other bus types may be needed. This may require a driver
specific function, as it is already implemented in
virDomainDeviceDefPostParse(), for example.
Marc Hartmayer (2):
conf: Detect misconfiguration between disk bus and disk address
tests: Add tests for disk configuration validation
src/conf/domain_conf.c | 46 ++++++++++++++++++++++
.../qemuxml2argv-disk-fdc-incompatible-address.xml | 22 +++++++++++
.../qemuxml2argv-disk-ide-incompatible-address.xml | 23 +++++++++++
...qemuxml2argv-disk-sata-incompatible-address.xml | 23 +++++++++++
...qemuxml2argv-disk-scsi-incompatible-address.xml | 24 +++++++++++
tests/qemuxml2argvtest.c | 8 ++++
6 files changed, 146 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-fdc-incompatible-address.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-ide-incompatible-address.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-sata-incompatible-address.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-scsi-incompatible-address.xml
--
2.5.5
8 years
[libvirt] [PATCH] Avoid compiler warnings in virCPUDefStealModel
by Jiri Denemark
Old GCC on CentOS 6 thinks vendor and vendor_id might be used
uninitialized in virCPUDefStealModel. The compiler is wrong, though.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
Pushed as a build breaker.
src/conf/cpu_conf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 9eb69c9..1bcceed 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -144,8 +144,8 @@ virCPUDefStealModel(virCPUDefPtr dst,
virCPUDefPtr src,
bool keepVendor)
{
- char *vendor;
- char *vendor_id;
+ char *vendor = NULL;
+ char *vendor_id = NULL;
if (keepVendor) {
VIR_STEAL_PTR(vendor, dst->vendor);
--
2.10.2
8 years
[libvirt] [PATCH v2 0/9] Add group_name support for <iotune>
by John Ferlan
v1: http://www.redhat.com/archives/libvir-list/2016-October/msg01336.html
Changes from v1:
Patches 3-5 are new to address review comments
Other adjustments as listed in responses to v1:
- Addressed leak in qemuDomainSetBlockIoTune from setting "group_name" defaults
- Test adjustment for separate validate routine
- Use of Escape function (patches 7 and 8)
- Use of vshCommandOptStringReq in patch 9
John Ferlan (9):
include: Add new "group_name" definition for iotune throttling
caps: Add new capability for the iotune group name
qemu: Adjust maxparams logic for qemuDomainGetBlockIoTune
qemu: Alter qemuMonitorJSONSetBlockIoThrottle command logic
qemu: Adjust various bool BlockIoTune set_ values into mask
qemu: Add support for parsing iotune group setting
conf: Add support for blkiotune group_name option
qemu: Add the group name option to the iotune command line
virsh: Add group name to blkdeviotune output
docs/formatdomain.html.in | 11 ++
docs/schemas/domaincommon.rng | 5 +
include/libvirt/libvirt-domain.h | 15 ++
src/conf/domain_conf.c | 10 ++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 13 ++
src/qemu/qemu_driver.c | 177 +++++++++++++--------
src/qemu/qemu_monitor.c | 2 +
src/qemu/qemu_monitor.h | 1 +
src/qemu/qemu_monitor_json.c | 97 ++++++-----
src/qemu/qemu_monitor_json.h | 1 +
tests/qemucapabilitiesdata/caps_2.4.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml | 1 +
.../caps_2.6.0-gicv2.aarch64.xml | 1 +
.../caps_2.6.0-gicv3.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.6.0.ppc64le.xml | 1 +
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 +
tests/qemumonitorjsontest.c | 88 +++++++---
.../qemuxml2argv-blkdeviotune-group-num.args | 32 ++++
.../qemuxml2argv-blkdeviotune-group-num.xml | 61 +++++++
tests/qemuxml2argvtest.c | 4 +
.../qemuxml2xmlout-blkdeviotune-group-num.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
tools/virsh-domain.c | 17 ++
tools/virsh.pod | 5 +-
28 files changed, 428 insertions(+), 124 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-blkdeviotune-group-num.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-blkdeviotune-group-num.xml
create mode 120000 tests/qemuxml2xmloutdata/qemuxml2xmlout-blkdeviotune-group-num.xml
--
2.7.4
8 years
[libvirt] [PATCH v3 0/2] bhyve: add e1000 nic support
by Roman Bogorodskiy
Changes since v2:
- Include missing Fabian's probes patch
Changes since v1:
- Fix indentation
- Don't leak nic_model in bhyveBuildNetArgStr, and actually
convert it to use 'goto out' to the clean up routine instead
of explicit calls to VIR_FREE for every case
- Add support for e1000 for argv2xml code, along with tests
Fabian Freyer (1):
bhyve: Separate out checks from virBhyveProbeCaps
Roman Bogorodskiy (1):
bhyve: add e1000 nic support
src/bhyve/bhyve_capabilities.c | 58 ++++++++++++++---
src/bhyve/bhyve_capabilities.h | 1 +
src/bhyve/bhyve_command.c | 74 ++++++++++++++--------
src/bhyve/bhyve_parse_command.c | 9 ++-
tests/bhyveargv2xmldata/bhyveargv2xml-e1000.args | 8 +++
tests/bhyveargv2xmldata/bhyveargv2xml-e1000.xml | 28 ++++++++
.../bhyveargv2xmldata/bhyveargv2xml-virtio-net.xml | 2 +
.../bhyveargv2xml-virtio-net4.xml | 1 +
tests/bhyveargv2xmltest.c | 1 +
.../bhyvexml2argvdata/bhyvexml2argv-net-e1000.args | 9 +++
.../bhyvexml2argv-net-e1000.ldargs | 3 +
.../bhyvexml2argvdata/bhyvexml2argv-net-e1000.xml | 22 +++++++
tests/bhyvexml2argvtest.c | 7 +-
13 files changed, 184 insertions(+), 39 deletions(-)
create mode 100644 tests/bhyveargv2xmldata/bhyveargv2xml-e1000.args
create mode 100644 tests/bhyveargv2xmldata/bhyveargv2xml-e1000.xml
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-net-e1000.args
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-net-e1000.ldargs
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-net-e1000.xml
--
2.9.2
8 years
[libvirt] [PATCH] bhyve: fix memory leaks in bhyvexml2argvtest
by Roman Bogorodskiy
* virNetDevTapCreateInBridgePort() mock: free '*ifname' before
strdupping a hardoded value to it
* testCompareXMLToArgvFiles(): unref 'conn' object in cleanup
* testCompareXMLToArgvHelper(): free 'ldargs' and 'dmargs' in
cleanup
---
tests/bhyvexml2argvmock.c | 2 ++
tests/bhyvexml2argvtest.c | 3 +++
2 files changed, 5 insertions(+)
diff --git a/tests/bhyvexml2argvmock.c b/tests/bhyvexml2argvmock.c
index 41058ca..a851632 100644
--- a/tests/bhyvexml2argvmock.c
+++ b/tests/bhyvexml2argvmock.c
@@ -1,5 +1,6 @@
#include <config.h>
+#include "viralloc.h"
#include "virstring.h"
#include "virnetdev.h"
#include "virnetdevtap.h"
@@ -29,6 +30,7 @@ int virNetDevTapCreateInBridgePort(const char *brname ATTRIBUTE_UNUSED,
virNetDevVlanPtr virtVlan ATTRIBUTE_UNUSED,
unsigned int fakeflags ATTRIBUTE_UNUSED)
{
+ VIR_FREE(*ifname);
if (VIR_STRDUP(*ifname, "vnet0") < 0)
return -1;
return 0;
diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c
index b85439b..22a902c 100644
--- a/tests/bhyvexml2argvtest.c
+++ b/tests/bhyvexml2argvtest.c
@@ -86,6 +86,7 @@ static int testCompareXMLToArgvFiles(const char *xml,
virCommandFree(cmd);
virCommandFree(ldcmd);
virDomainDefFree(vmdef);
+ virObjectUnref(conn);
return ret;
}
@@ -117,6 +118,8 @@ testCompareXMLToArgvHelper(const void *data)
cleanup:
VIR_FREE(xml);
VIR_FREE(args);
+ VIR_FREE(ldargs);
+ VIR_FREE(dmargs);
return ret;
}
--
2.9.2
8 years
[libvirt] [PATCH v3] qemu: fix libvirtd crash when querying halted cpus info
by Maxim Nestratov
It was introduced by commit 7a51d9ebb, which started to use
monitor commands without job acquiring, which is unsafe and leads
to simultaneous access to vm->mon structure by different threads.
Crash backtrace is the following (shortened):
Program received signal SIGSEGV, Segmentation fault.
qemuMonitorSend (mon=mon@entry=0x7f4ef4000d20, msg=msg@entry=0x7f4f18e78640) at qemu/qemu_monitor.c:1011
1011 while (!mon->msg->finished) {
0 qemuMonitorSend () at qemu/qemu_monitor.c:1011
1 0x00007f691abdc720 in qemuMonitorJSONCommandWithFd () at qemu/qemu_monitor_json.c:298
2 0x00007f691abde64a in qemuMonitorJSONCommand at qemu/qemu_monitor_json.c:328
3 qemuMonitorJSONQueryCPUs at qemu/qemu_monitor_json.c:1408
4 0x00007f691abcaebd in qemuMonitorGetCPUInfo g@entry=false) at qemu/qemu_monitor.c:1931
5 0x00007f691ab96863 in qemuDomainRefreshVcpuHalted at qemu/qemu_domain.c:6309
6 0x00007f691ac0af99 in qemuDomainGetStatsVcpu at qemu/qemu_driver.c:18945
7 0x00007f691abef921 in qemuDomainGetStats at qemu/qemu_driver.c:19469
8 qemuConnectGetAllDomainStats at qemu/qemu_driver.c:19559
9 0x00007f693382e806 in virConnectGetAllDomainStats at libvirt-domain.c:11546
10 0x00007f6934470c40 in remoteDispatchConnectGetAllDomainStats at remote.c:6267
(gdb) p mon->msg
$1 = (qemuMonitorMessagePtr) 0x0
This change fixes it by calling qemuDomainRefreshVcpuHalted only when job is acquired.
Signed-off-by: Maxim Nestratov <mnestratov(a)virtuozzo.com>
---
v1-v2: don't output halted cpu info if it wasn't rathered
v2-v3: syntax-check recommendation
src/qemu/qemu_driver.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index a82e58b..05a88c2 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18978,7 +18978,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver,
virDomainObjPtr dom,
virDomainStatsRecordPtr record,
int *maxparams,
- unsigned int privflags ATTRIBUTE_UNUSED)
+ unsigned int privflags)
{
size_t i;
int ret = -1;
@@ -19005,10 +19005,16 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver,
VIR_ALLOC_N(cpuwait, virDomainDefGetVcpus(dom->def)) < 0)
goto cleanup;
- if (qemuDomainRefreshVcpuHalted(driver, dom,
- QEMU_ASYNC_JOB_NONE) == 0 &&
- VIR_ALLOC_N(cpuhalted, virDomainDefGetVcpus(dom->def)) < 0)
- goto cleanup;
+ if (HAVE_JOB(privflags) && virDomainObjIsActive(dom)) {
+ if (qemuDomainRefreshVcpuHalted(driver, dom,
+ QEMU_ASYNC_JOB_NONE) < 0) {
+ /* it's ok to be silent and go ahead, because halted vcpu info
+ * wasn't here from the beginning */
+ virResetLastError();
+ } else if (VIR_ALLOC_N(cpuhalted, virDomainDefGetVcpus(dom->def)) < 0) {
+ goto cleanup;
+ }
+ }
if (qemuDomainHelperGetVcpus(dom, cpuinfo, cpuwait,
virDomainDefGetVcpus(dom->def),
@@ -19462,7 +19468,7 @@ static struct qemuDomainGetStatsWorker qemuDomainGetStatsWorkers[] = {
{ qemuDomainGetStatsState, VIR_DOMAIN_STATS_STATE, false },
{ qemuDomainGetStatsCpu, VIR_DOMAIN_STATS_CPU_TOTAL, false },
{ qemuDomainGetStatsBalloon, VIR_DOMAIN_STATS_BALLOON, true },
- { qemuDomainGetStatsVcpu, VIR_DOMAIN_STATS_VCPU, false },
+ { qemuDomainGetStatsVcpu, VIR_DOMAIN_STATS_VCPU, true },
{ qemuDomainGetStatsInterface, VIR_DOMAIN_STATS_INTERFACE, false },
{ qemuDomainGetStatsBlock, VIR_DOMAIN_STATS_BLOCK, true },
{ qemuDomainGetStatsPerf, VIR_DOMAIN_STATS_PERF, false },
--
2.4.11
8 years
[libvirt] [PATCH v2] qemu: fix libvirtd crash when querying halted cpus info
by Maxim Nestratov
It was introduced by commit 7a51d9ebb, which started to use
monitor commands without job acquiring, which is unsafe and leads
to simultaneous access to vm->mon structure by different threads.
Crash backtrace is the following (shortened):
Program received signal SIGSEGV, Segmentation fault.
qemuMonitorSend (mon=mon@entry=0x7f4ef4000d20, msg=msg@entry=0x7f4f18e78640) at qemu/qemu_monitor.c:1011
1011 while (!mon->msg->finished) {
0 qemuMonitorSend () at qemu/qemu_monitor.c:1011
1 0x00007f691abdc720 in qemuMonitorJSONCommandWithFd () at qemu/qemu_monitor_json.c:298
2 0x00007f691abde64a in qemuMonitorJSONCommand at qemu/qemu_monitor_json.c:328
3 qemuMonitorJSONQueryCPUs at qemu/qemu_monitor_json.c:1408
4 0x00007f691abcaebd in qemuMonitorGetCPUInfo g@entry=false) at qemu/qemu_monitor.c:1931
5 0x00007f691ab96863 in qemuDomainRefreshVcpuHalted at qemu/qemu_domain.c:6309
6 0x00007f691ac0af99 in qemuDomainGetStatsVcpu at qemu/qemu_driver.c:18945
7 0x00007f691abef921 in qemuDomainGetStats at qemu/qemu_driver.c:19469
8 qemuConnectGetAllDomainStats at qemu/qemu_driver.c:19559
9 0x00007f693382e806 in virConnectGetAllDomainStats at libvirt-domain.c:11546
10 0x00007f6934470c40 in remoteDispatchConnectGetAllDomainStats at remote.c:6267
(gdb) p mon->msg
$1 = (qemuMonitorMessagePtr) 0x0
This change fixes it by calling qemuDomainRefreshVcpuHalted only when job is acquired.
Signed-off-by: Maxim Nestratov <mnestratov(a)virtuozzo.com>
---
src/qemu/qemu_driver.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index a82e58b..55b9566 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18978,7 +18978,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver,
virDomainObjPtr dom,
virDomainStatsRecordPtr record,
int *maxparams,
- unsigned int privflags ATTRIBUTE_UNUSED)
+ unsigned int privflags)
{
size_t i;
int ret = -1;
@@ -19005,10 +19005,15 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver,
VIR_ALLOC_N(cpuwait, virDomainDefGetVcpus(dom->def)) < 0)
goto cleanup;
- if (qemuDomainRefreshVcpuHalted(driver, dom,
- QEMU_ASYNC_JOB_NONE) == 0 &&
- VIR_ALLOC_N(cpuhalted, virDomainDefGetVcpus(dom->def)) < 0)
- goto cleanup;
+ if (HAVE_JOB(privflags) && virDomainObjIsActive(dom)) {
+ if (qemuDomainRefreshVcpuHalted(driver, dom,
+ QEMU_ASYNC_JOB_NONE) < 0) {
+ /* it's ok to be silent and go ahead, because halted vcpu info
+ * wasn't here from the beginning */
+ virResetLastError();
+ } else if (VIR_ALLOC_N(cpuhalted, virDomainDefGetVcpus(dom->def)) < 0)
+ goto cleanup;
+ }
if (qemuDomainHelperGetVcpus(dom, cpuinfo, cpuwait,
virDomainDefGetVcpus(dom->def),
@@ -19462,7 +19467,7 @@ static struct qemuDomainGetStatsWorker qemuDomainGetStatsWorkers[] = {
{ qemuDomainGetStatsState, VIR_DOMAIN_STATS_STATE, false },
{ qemuDomainGetStatsCpu, VIR_DOMAIN_STATS_CPU_TOTAL, false },
{ qemuDomainGetStatsBalloon, VIR_DOMAIN_STATS_BALLOON, true },
- { qemuDomainGetStatsVcpu, VIR_DOMAIN_STATS_VCPU, false },
+ { qemuDomainGetStatsVcpu, VIR_DOMAIN_STATS_VCPU, true },
{ qemuDomainGetStatsInterface, VIR_DOMAIN_STATS_INTERFACE, false },
{ qemuDomainGetStatsBlock, VIR_DOMAIN_STATS_BLOCK, true },
{ qemuDomainGetStatsPerf, VIR_DOMAIN_STATS_PERF, false },
--
2.4.11
8 years
[libvirt] [PATCH] qemu: fix libvirtd crash when querying halted cpus info
by Maxim Nestratov
It was introduced by commit 7a51d9ebb, which started to use
monitor commands without job acquiring, which is unsafe and leads
to simultaneous access to vm->mon structure by different threads.
Crash backtrace is the following (shortened):
Program received signal SIGSEGV, Segmentation fault.
qemuMonitorSend (mon=mon@entry=0x7f4ef4000d20, msg=msg@entry=0x7f4f18e78640) at qemu/qemu_monitor.c:1011
1011 while (!mon->msg->finished) {
0 qemuMonitorSend () at qemu/qemu_monitor.c:1011
1 0x00007f691abdc720 in qemuMonitorJSONCommandWithFd () at qemu/qemu_monitor_json.c:298
2 0x00007f691abde64a in qemuMonitorJSONCommand at qemu/qemu_monitor_json.c:328
3 qemuMonitorJSONQueryCPUs at qemu/qemu_monitor_json.c:1408
4 0x00007f691abcaebd in qemuMonitorGetCPUInfo g@entry=false) at qemu/qemu_monitor.c:1931
5 0x00007f691ab96863 in qemuDomainRefreshVcpuHalted at qemu/qemu_domain.c:6309
6 0x00007f691ac0af99 in qemuDomainGetStatsVcpu at qemu/qemu_driver.c:18945
7 0x00007f691abef921 in qemuDomainGetStats at qemu/qemu_driver.c:19469
8 qemuConnectGetAllDomainStats at qemu/qemu_driver.c:19559
9 0x00007f693382e806 in virConnectGetAllDomainStats at libvirt-domain.c:11546
10 0x00007f6934470c40 in remoteDispatchConnectGetAllDomainStats at remote.c:6267
(gdb) p mon->msg
$1 = (qemuMonitorMessagePtr) 0x0
This change fixes it by calling qemuDomainRefreshVcpuHalted only when job is acquired.
Signed-off-by: Maxim Nestratov <mnestratov(a)virtuozzo.com>
---
src/qemu/qemu_driver.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index dd1907b..43a546d 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18915,7 +18915,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver,
virDomainObjPtr dom,
virDomainStatsRecordPtr record,
int *maxparams,
- unsigned int privflags ATTRIBUTE_UNUSED)
+ unsigned int privflags)
{
size_t i;
int ret = -1;
@@ -18939,14 +18939,20 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver,
return -1;
if (VIR_ALLOC_N(cpuinfo, virDomainDefGetVcpus(dom->def)) < 0 ||
- VIR_ALLOC_N(cpuwait, virDomainDefGetVcpus(dom->def)) < 0)
- goto cleanup;
-
- if (qemuDomainRefreshVcpuHalted(driver, dom,
- QEMU_ASYNC_JOB_NONE) == 0 &&
+ VIR_ALLOC_N(cpuwait, virDomainDefGetVcpus(dom->def)) < 0 ||
VIR_ALLOC_N(cpuhalted, virDomainDefGetVcpus(dom->def)) < 0)
goto cleanup;
+ if (HAVE_JOB(privflags) && virDomainObjIsActive(dom)) {
+
+ if (qemuDomainRefreshVcpuHalted(driver, dom,
+ QEMU_ASYNC_JOB_NONE) < 0) {
+ /* it's ok to be silent and go ahead, because halted vcpu info
+ * wasn't here from the beginning */
+ virResetLastError();
+ }
+ }
+
if (qemuDomainHelperGetVcpus(dom, cpuinfo, cpuwait,
virDomainDefGetVcpus(dom->def),
NULL, 0, cpuhalted) < 0) {
@@ -19399,7 +19405,7 @@ static struct qemuDomainGetStatsWorker qemuDomainGetStatsWorkers[] = {
{ qemuDomainGetStatsState, VIR_DOMAIN_STATS_STATE, false },
{ qemuDomainGetStatsCpu, VIR_DOMAIN_STATS_CPU_TOTAL, false },
{ qemuDomainGetStatsBalloon, VIR_DOMAIN_STATS_BALLOON, true },
- { qemuDomainGetStatsVcpu, VIR_DOMAIN_STATS_VCPU, false },
+ { qemuDomainGetStatsVcpu, VIR_DOMAIN_STATS_VCPU, true },
{ qemuDomainGetStatsInterface, VIR_DOMAIN_STATS_INTERFACE, false },
{ qemuDomainGetStatsBlock, VIR_DOMAIN_STATS_BLOCK, true },
{ qemuDomainGetStatsPerf, VIR_DOMAIN_STATS_PERF, false },
--
2.4.11
8 years
[libvirt] [PATCH] build: update to latest gnulib
by Eric Blake
In particular, this is a quick gnulib fix for a mingw compile error.
* .gnulib: Update to latest.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
I'll be pushing this soon, as a fix for a build-breaker.
* .gnulib 5ddd9d7...0602cfd (5):
> strerror_r-posix: Another fix, for HAVE_DECL_STRERROR_R on mingw
> strptime: fix compile error in recent change
> gnulib-tool: Support for the dual "LGPLv3+ or GPLv2" license.
> strftime: tune %q
> Merge strftime.c changes from glibc
.gnulib | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.gnulib b/.gnulib
index 5ddd9d7..0602cfd 160000
--- a/.gnulib
+++ b/.gnulib
@@ -1 +1 @@
-Subproject commit 5ddd9d713d58d6c6d10494a28ceee6988d20ff98
+Subproject commit 0602cfd486655d5b5f0ebdf92f19280f6b6e984c
--
2.7.4
8 years