master - udev: wrong line in previous commit
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=de7531d384b1b5...
Commit: de7531d384b1b505801ac232da45b9ffe58f061b
Parent: f070e3543a411d483b7c34b6ea8e6e8e0cc35edf
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Oct 30 14:28:43 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Oct 30 14:28:43 2013 +0100
udev: wrong line in previous commit
---
udev/69-dm-lvm-metad.rules.in | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/udev/69-dm-lvm-metad.rules.in b/udev/69-dm-lvm-metad.rules.in
index 8ea5c92..5b15b6f 100644
--- a/udev/69-dm-lvm-metad.rules.in
+++ b/udev/69-dm-lvm-metad.rules.in
@@ -51,6 +51,7 @@ KERNEL!="md[0-9]*", GOTO="next"
IMPORT{db}="LVM_MD_PV_ACTIVATED"
ACTION=="add", ENV{LVM_MD_PV_ACTIVATED}=="1", GOTO="lvm_scan"
ACTION=="change", ENV{LVM_MD_PV_ACTIVATED}!="1", TEST=="md/array_state", ENV{LVM_MD_PV_ACTIVATED}="1", GOTO="lvm_scan"
+ACTION=="add", KERNEL=="md[0-9]*p[0-9]*", GOTO="lvm_scan"
GOTO="lvm_end"
# Loop device:
@@ -58,7 +59,6 @@ LABEL="next"
KERNEL!="loop[0-9]*", GOTO="next"
ACTION=="add", ENV{LVM_LOOP_PV_ACTIVATED}=="1", GOTO="lvm_scan"
ACTION=="change", ENV{LVM_LOOP_PV_ACTIVATED}!="1", TEST=="loop/backing_file", ENV{LVM_LOOP_PV_ACTIVATED}="1", GOTO="lvm_scan"
-ACTION=="add", KERNEL=="md[0-9]*p[0-9]*", GOTO="lvm_scan"
GOTO="lvm_end"
# If the PV is not a special device listed above, scan only after device addition (ADD event)
9 years, 11 months
master - udev: properly trigger LVM scan for MD partitions
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=f070e3543a411d...
Commit: f070e3543a411d483b7c34b6ea8e6e8e0cc35edf
Parent: 264b5c2b1252fae5918307326c2db07752b59001
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Oct 30 14:02:38 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Oct 30 14:09:11 2013 +0100
udev: properly trigger LVM scan for MD partitions
MD can directly create partition devices without a need to run
an extra kpartx or partprobe call. We need to react to this event in
a different way as for bare MD devices - we need to handle the ADD event
for KERNEL=="md[0-9]*p[0-9]*" kernel name and trigger the LVM scanning
to update lvmetad to trigger autoactivation and so on...
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1023250
---
WHATS_NEW | 1 +
udev/69-dm-lvm-metad.rules.in | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index b8c1f15..b8a9bf7 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.104 -
===================================
+ Fix missing lvmetad scan for PVs found on MD partitions.
Respect DM_UDEV_DISABLE_OTHER_RULES_FLAG in lvmetad udev rules.
Fix clvmd message verification to not reject REMOTE flag. (2.02.100)
Compare equality of double values with DBL_EPSILON predefined constant.
diff --git a/udev/69-dm-lvm-metad.rules.in b/udev/69-dm-lvm-metad.rules.in
index 949c897..8ea5c92 100644
--- a/udev/69-dm-lvm-metad.rules.in
+++ b/udev/69-dm-lvm-metad.rules.in
@@ -58,6 +58,7 @@ LABEL="next"
KERNEL!="loop[0-9]*", GOTO="next"
ACTION=="add", ENV{LVM_LOOP_PV_ACTIVATED}=="1", GOTO="lvm_scan"
ACTION=="change", ENV{LVM_LOOP_PV_ACTIVATED}!="1", TEST=="loop/backing_file", ENV{LVM_LOOP_PV_ACTIVATED}="1", GOTO="lvm_scan"
+ACTION=="add", KERNEL=="md[0-9]*p[0-9]*", GOTO="lvm_scan"
GOTO="lvm_end"
# If the PV is not a special device listed above, scan only after device addition (ADD event)
9 years, 11 months
master - udev: no need to check DM_NOSCAN in lvmetad rules
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=264b5c2b1252fa...
Commit: 264b5c2b1252fae5918307326c2db07752b59001
Parent: db05a0cf6fde3be23ea1123a76477576923af8cc
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Tue Oct 29 13:54:14 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Tue Oct 29 13:54:14 2013 +0100
udev: no need to check DM_NOSCAN in lvmetad rules
It's covered by general DM_UDEV_DISABLE_OTHER_RULES_FLAG.
---
udev/69-dm-lvm-metad.rules.in | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/udev/69-dm-lvm-metad.rules.in b/udev/69-dm-lvm-metad.rules.in
index 34441ab..949c897 100644
--- a/udev/69-dm-lvm-metad.rules.in
+++ b/udev/69-dm-lvm-metad.rules.in
@@ -17,7 +17,6 @@
SUBSYSTEM!="block", GOTO="lvm_end"
(LVM_EXEC_RULE)
-ENV{DM_NOSCAN}=="1", GOTO="lvm_end"
ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="lvm_end"
# If the PV label got lost, inform lvmetad immediately.
9 years, 11 months
master - WHATS_NEW: commit 9d06212
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=db05a0cf6fde3b...
Commit: db05a0cf6fde3be23ea1123a76477576923af8cc
Parent: f1a42aa8ec4c6d693b57832a8575ee68b9e71b12
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Tue Oct 29 13:49:55 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Tue Oct 29 13:49:55 2013 +0100
WHATS_NEW: commit 9d06212
Other changes in previous commits 9d06212 and f1a42aa are changes
in the code that was not yet released as part of upcoming v104.
---
WHATS_NEW | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 63f97da..b8c1f15 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.104 -
===================================
+ Respect DM_UDEV_DISABLE_OTHER_RULES_FLAG in lvmetad udev rules.
Fix clvmd message verification to not reject REMOTE flag. (2.02.100)
Compare equality of double values with DBL_EPSILON predefined constant.
Use additional gcc warning flags by default.
9 years, 11 months
master - lvconvert: use LV_TEMPORARY when necessary during lvconvert to thin pool
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=f1a42aa8ec4c6d...
Commit: f1a42aa8ec4c6d693b57832a8575ee68b9e71b12
Parent: 9d0621267d644d21d3c1ad3a5268af0ef3d7eb9a
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Tue Oct 29 13:18:14 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Tue Oct 29 13:33:35 2013 +0100
lvconvert: use LV_TEMPORARY when necessary during lvconvert to thin pool
This is an addition to original patch for lvcreate - commit 039bdad.
The same principle applies to lvconvert where there are several steps
during which we need to wipe the existing LV that's being converted
to thin pool, making sure there's no other interference from outside (udev).
---
tools/lvconvert.c | 20 ++++++++++++--------
1 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index a6c1187..92a2022 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -2435,14 +2435,8 @@ static int _lvconvert_thinpool(struct cmd_context *cmd,
goto mda_write;
}
- metadata_lv->status |= LV_NOSCAN;
- if (!lv_is_active(metadata_lv) &&
- !activate_lv_local(cmd, metadata_lv)) {
- log_error("Aborting. Failed to activate thin metadata lv.");
- return 0;
- }
- if (!set_lv(cmd, metadata_lv, UINT64_C(0), 0)) {
- log_error("Aborting. Failed to wipe thin metadata lv.");
+ if (!deactivate_lv(cmd, metadata_lv)) {
+ log_error("Aborting. Failed to deactivate thin metadata lv.");
return 0;
}
@@ -2462,6 +2456,16 @@ static int _lvconvert_thinpool(struct cmd_context *cmd,
&lp->thin_chunk_size_calc_policy, &lp->chunk_size,
&lp->discards, &lp->poolmetadata_size, &lp->zero))
return_0;
+
+ metadata_lv->status |= LV_TEMPORARY;
+ if (!activate_lv_local(cmd, metadata_lv)) {
+ log_error("Aborting. Failed to activate thin metadata lv.");
+ return 0;
+ }
+ if (!set_lv(cmd, metadata_lv, UINT64_C(0), 0)) {
+ log_error("Aborting. Failed to wipe thin metadata lv.");
+ return 0;
+ }
}
if (!deactivate_lv(cmd, metadata_lv)) {
9 years, 11 months
master - udev: proper reset of DM_UDEV_DISABLE_OTHER_RULES_FLAG and honour this flag in lvmetad rules
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=9d0621267d644d...
Commit: 9d0621267d644d21d3c1ad3a5268af0ef3d7eb9a
Parent: f3a6f7073b4ca71dcc0360daa66a845490b76893
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Tue Oct 29 13:15:45 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Tue Oct 29 13:31:00 2013 +0100
udev: proper reset of DM_UDEV_DISABLE_OTHER_RULES_FLAG and honour this flag in lvmetad rules
Reset the DM_UDEV_OTHER_RULES_FLAG to original value right at the
time of dropping the DM_NOSCAN flag.
When DM_NOSCAN is set, the DM_UDEV_DISABLE_OTHER_RULES_FLAG is also set
to avoid udev processing in "other/foreign" rules. If the noscan flag
is dropped, the DM_UDEV_DISABLE_OTHER_RULES_FLAG should be reset to
its original value.
Also, lvmetad should respect the DM_UDEV_DISABLE_OTHER_RULES_FLAG
because if the volume is set with this flag it:
- definitely is not a top-level device (so makes no sense for lvmetad scanning)
- is not supposed to be scanned further (for any stacking on top of
it, including LVM stacking itself and any autoactivation of stacked LVs)
---
udev/11-dm-lvm.rules.in | 2 +-
udev/69-dm-lvm-metad.rules.in | 1 +
2 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/udev/11-dm-lvm.rules.in b/udev/11-dm-lvm.rules.in
index 5032280..9ca0375 100644
--- a/udev/11-dm-lvm.rules.in
+++ b/udev/11-dm-lvm.rules.in
@@ -32,7 +32,7 @@ IMPORT{program}="(DM_EXEC)/dmsetup splitname --nameprefixes --noheadings --rows
# uevent that follows for this LV, even an artificially generated one).
ENV{DM_SUBSYSTEM_UDEV_FLAG0}=="1", ENV{DM_NOSCAN}="1", ENV{DM_DISABLE_OTHER_RULES_FLAG_OLD}="$env{DM_UDEV_DISABLE_OTHER_RULES_FLAG}", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="1"
ENV{DM_SUBSYSTEM_UDEV_FLAG0}!="1", IMPORT{db}="DM_NOSCAN", IMPORT{db}="DM_DISABLE_OTHER_RULES_FLAG_OLD"
-ENV{DM_SUBSYSTEM_UDEV_FLAG0}!="1", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="$env{DM_DISABLE_OTHER_RULES_FLAG_OLD}", \
+ENV{DM_SUBSYSTEM_UDEV_FLAG0}!="1", ENV{DM_NOSCAN}=="1", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}="$env{DM_DISABLE_OTHER_RULES_FLAG_OLD}", \
ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG_OLD}="", ENV{DM_NOSCAN}=""
ENV{DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG}=="1", GOTO="lvm_end"
diff --git a/udev/69-dm-lvm-metad.rules.in b/udev/69-dm-lvm-metad.rules.in
index 3e303b1..34441ab 100644
--- a/udev/69-dm-lvm-metad.rules.in
+++ b/udev/69-dm-lvm-metad.rules.in
@@ -18,6 +18,7 @@ SUBSYSTEM!="block", GOTO="lvm_end"
(LVM_EXEC_RULE)
ENV{DM_NOSCAN}=="1", GOTO="lvm_end"
+ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="lvm_end"
# If the PV label got lost, inform lvmetad immediately.
# Detect the lost PV label by comparing previous ID_FS_TYPE value with current one.
9 years, 11 months
master - WHATS_NEW: commit 4c0db84
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=f3a6f7073b4ca7...
Commit: f3a6f7073b4ca71dcc0360daa66a845490b76893
Parent: 8e1f2e733ecb191a1dda149ac42e2570142a1d97
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Tue Oct 29 11:04:32 2013 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Tue Oct 29 11:04:32 2013 +0100
WHATS_NEW: commit 4c0db84
---
WHATS_NEW | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index b17fa42..63f97da 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.104 -
===================================
+ Fix clvmd message verification to not reject REMOTE flag. (2.02.100)
Compare equality of double values with DBL_EPSILON predefined constant.
Use additional gcc warning flags by default.
Add ignore_lvm_mirrors to config file to read/ignore labels on mirrors.
9 years, 11 months
master - gcc: fix comparing floating point warning
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=8e1f2e733ecb19...
Commit: 8e1f2e733ecb191a1dda149ac42e2570142a1d97
Parent: d4e5140b5284cac151d06615328dc8af21dc15c7
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Oct 25 10:38:09 2013 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri Oct 25 10:43:32 2013 +0200
gcc: fix comparing floating point warning
Since we enabled some more gcc warnings - let's adapt for
it and check for double equals with DBL_EPSILON.
Current close_enough() is far from perfect
for more details see i.e. here:
http://randomascii.wordpress.com/2012/01/11/tricks-with-the-floating-poin...
but fairly enough for lvm2 use-case.
---
WHATS_NEW | 1 +
daemons/lvmetad/lvmetad-core.c | 11 ++++++++++-
lib/display/display.c | 16 ++++++++++++----
3 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index cb3488b..b17fa42 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.104 -
===================================
+ Compare equality of double values with DBL_EPSILON predefined constant.
Use additional gcc warning flags by default.
Add ignore_lvm_mirrors to config file to read/ignore labels on mirrors.
Add internal flag for temporary LVs to properly direct udev to not interfere.
diff --git a/daemons/lvmetad/lvmetad-core.c b/daemons/lvmetad/lvmetad-core.c
index 285c8cc..03d89c9 100644
--- a/daemons/lvmetad/lvmetad-core.c
+++ b/daemons/lvmetad/lvmetad-core.c
@@ -26,6 +26,9 @@
#include <stdint.h>
#include <unistd.h>
+#include <math.h> /* fabs() */
+#include <float.h> /* DBL_EPSILON */
+
typedef struct {
log_state *log; /* convenience */
const char *log_config;
@@ -503,6 +506,12 @@ bad:
return reply_fail("out of memory");
}
+/* Test if the doubles are close enough to be considered equal */
+static int close_enough(double d1, double d2)
+{
+ return fabs(d1 - d2) < DBL_EPSILON;
+}
+
static int compare_value(struct dm_config_value *a, struct dm_config_value *b)
{
int r = 0;
@@ -514,7 +523,7 @@ static int compare_value(struct dm_config_value *a, struct dm_config_value *b)
switch (a->type) {
case DM_CFG_STRING: r = strcmp(a->v.str, b->v.str); break;
- case DM_CFG_FLOAT: r = (a->v.f == b->v.f) ? 0 : (a->v.f > b->v.f) ? 1 : -1; break;
+ case DM_CFG_FLOAT: r = close_enough(a->v.f, b->v.f) ? 0 : (a->v.f > b->v.f) ? 1 : -1; break;
case DM_CFG_INT: r = (a->v.i == b->v.i) ? 0 : (a->v.i > b->v.i) ? 1 : -1; break;
case DM_CFG_EMPTY_ARRAY: return 0;
}
diff --git a/lib/display/display.c b/lib/display/display.c
index bf4b642..d3b4d6e 100644
--- a/lib/display/display.c
+++ b/lib/display/display.c
@@ -20,6 +20,8 @@
#include "toolcontext.h"
#include "segtype.h"
#include "defaults.h"
+#include <math.h> /* fabs() */
+#include <float.h> /* DBL_EPSILON */
#define SIZE_BUF 128
@@ -41,6 +43,12 @@ static const struct {
static const int _num_policies = sizeof(_policies) / sizeof(*_policies);
+/* Test if the doubles are close enough to be considered equal */
+static int _close_enough(double d1, double d2)
+{
+ return fabs(d1 - d2) < DBL_EPSILON;
+}
+
uint64_t units_to_bytes(const char *units, char *unit_type)
{
char *ptr = NULL;
@@ -53,7 +61,7 @@ uint64_t units_to_bytes(const char *units, char *unit_type)
if (ptr == units)
return 0;
v = (uint64_t) strtoull(units, NULL, 10);
- if ((double) v == custom_value)
+ if (_close_enough((double) v, custom_value))
custom_value = 0; /* Use integer arithmetic */
units = ptr;
} else
@@ -126,10 +134,10 @@ uint64_t units_to_bytes(const char *units, char *unit_type)
return 0;
}
- if (custom_value)
- return (uint64_t) (custom_value * multiplier);
+ if (_close_enough(custom_value, 0.))
+ return v * multiplier; /* Use integer arithmetic */
else
- return v * multiplier;
+ return (uint64_t) (custom_value * multiplier);
}
char alloc_policy_char(alloc_policy_t alloc)
9 years, 11 months
master - tests: fix old-style gcc warning
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=d4e5140b5284ca...
Commit: d4e5140b5284cac151d06615328dc8af21dc15c7
Parent: 7943a13141a8379f7697ee9d8764e088a4f127c3
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Oct 25 10:37:30 2013 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri Oct 25 10:37:30 2013 +0200
tests: fix old-style gcc warning
---
test/api/vglist.c | 15 ++++++++-------
1 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/test/api/vglist.c b/test/api/vglist.c
index 0a882dc..3d23369 100644
--- a/test/api/vglist.c
+++ b/test/api/vglist.c
@@ -22,7 +22,7 @@
lvm_t handle;
vg_t vg;
-static void start() {
+static void start(void) {
handle = lvm_init(NULL);
if (!handle) {
fprintf(stderr, "Unable to lvm_init\n");
@@ -43,15 +43,16 @@ static void done(int ok) {
int main(int argc, char *argv[])
{
- if (argc != 3)
- abort();
-
lvm_str_list_t *str;
-
int i = 0;
+ struct dm_list *vgnames;
+ struct dm_list *vgids;
+
+ if (argc != 3)
+ abort();
start();
- struct dm_list *vgnames = lvm_list_vg_names(handle);
+ vgnames = lvm_list_vg_names(handle);
dm_list_iterate_items(str, vgnames) {
assert(++i <= 1);
assert(!strcmp(str->str, argv[1]));
@@ -61,7 +62,7 @@ int main(int argc, char *argv[])
i = 0;
start();
- struct dm_list *vgids = lvm_list_vg_uuids(handle);
+ vgids = lvm_list_vg_uuids(handle);
dm_list_iterate_items(str, vgids) {
assert(++i <= 1);
assert(!strcmp(str->str, argv[2]));
9 years, 11 months
master - configure: check more compile flags
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=7943a13141a837...
Commit: 7943a13141a8379f7697ee9d8764e088a4f127c3
Parent: d95751cb0b750ea698d665bd8ad8086fe9ee6945
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri Oct 25 01:00:10 2013 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri Oct 25 01:00:10 2013 +0200
configure: check more compile flags
Check for clobbered (and put few others into same league)
---
acinclude.m4 | 1 -
configure | 41 +++++++++++++++++++++++++++++++++++++++--
configure.in | 2 ++
make.tmpl.in | 12 ++++++++----
4 files changed, 49 insertions(+), 7 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index 333abb5..bf9fe09 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -24,7 +24,6 @@ AC_DEFUN([AC_TRY_CCFLAG],
AC_REQUIRE([AC_PROG_CC])
ac_save_CFLAGS=$CFLAGS
CFLAGS=$1
- AC_MSG_RESULT([KOUKEJ $name])
AC_CACHE_CHECK([whether $CC accepts $1 flag], [ac_cv_flag_$2],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
[AS_VAR_SET([ac_cv_flag_$2], [yes])],
diff --git a/configure b/configure
index 48dfdc6..9418d53 100755
--- a/configure
+++ b/configure
@@ -708,6 +708,7 @@ CUNIT_CFLAGS
GENPNG
GENHTML
LCOV
+HAVE_WCLOBBERED
HAVE_WJUMP
SACKPT_LIBS
SACKPT_CFLAGS
@@ -8682,8 +8683,6 @@ fi
ac_save_CFLAGS=$CFLAGS
CFLAGS=-Wjump-misses-init
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: KOUKEJ $name" >&5
-$as_echo "KOUKEJ $name" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -Wjump-misses-init flag" >&5
$as_echo_n "checking whether $CC accepts -Wjump-misses-init flag... " >&6; }
if test "${ac_cv_flag_HAVE_WJUMP+set}" = set; then :
@@ -8719,6 +8718,44 @@ $as_echo "$ac_cv_flag_HAVE_WJUMP" >&6; }
+
+ ac_save_CFLAGS=$CFLAGS
+ CFLAGS=-Wclobbered
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -Wclobbered flag" >&5
+$as_echo_n "checking whether $CC accepts -Wclobbered flag... " >&6; }
+if test "${ac_cv_flag_HAVE_WCLOBBERED+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_flag_HAVE_WCLOBBERED=yes
+else
+ ac_cv_flag_HAVE_WCLOBBERED=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flag_HAVE_WCLOBBERED" >&5
+$as_echo "$ac_cv_flag_HAVE_WCLOBBERED" >&6; }
+ CFLAGS=$ac_save_CFLAGS
+ HAVE_WCLOBBERED=$ac_cv_flag_HAVE_WCLOBBERED
+ if test "HAVE_WCLOBBERED" = yes; then
+ :
+ else
+ :
+ fi
+
+
+
################################################################################
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C optimisation flag" >&5
$as_echo_n "checking for C optimisation flag... " >&6; }
diff --git a/configure.in b/configure.in
index 3a25fef..cd80274 100644
--- a/configure.in
+++ b/configure.in
@@ -838,6 +838,8 @@ fi
dnl -- Check if compiler supports -Wjump-misses-init
AC_TRY_CCFLAG([-Wjump-misses-init], [HAVE_WJUMP], [], [])
AC_SUBST(HAVE_WJUMP)
+AC_TRY_CCFLAG([-Wclobbered], [HAVE_WCLOBBERED], [], [])
+AC_SUBST(HAVE_WCLOBBERED)
################################################################################
dnl -- Override optimisation
diff --git a/make.tmpl.in b/make.tmpl.in
index 08560a8..3eea85e 100644
--- a/make.tmpl.in
+++ b/make.tmpl.in
@@ -135,16 +135,20 @@ INSTALL_SCRIPT = $(INSTALL) -p $(M_INSTALL_PROGRAM)
WFLAGS += -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings \
-Wmissing-prototypes -Wmissing-declarations -Wnested-externs \
-Winline -Wmissing-noreturn -Wformat-security -Wredundant-decls \
- -Wpointer-arith -Wclobbered -Wempty-body -Wignored-qualifiers \
- -Wmissing-parameter-type -Wold-style-declaration -Woverride-init \
- -Wtype-limits -Wuninitialized -Wmissing-include-dirs -Wsync-nand \
- -Wfloat-equal -Wlogical-op -Wstrict-prototypes \
+ -Wpointer-arith -Wuninitialized -Wmissing-include-dirs \
+ -Wfloat-equal -Wstrict-prototypes \
-Wold-style-definition -Wmissing-format-attribute
ifeq ("@HAVE_WJUMP@", "yes")
WFLAGS += -Wjump-misses-init
endif
+ifeq ("@HAVE_WCLOBBERED@", "yes")
+WFLAGS += -Wclobbered -Wempty-body -Wignored-qualifiers \
+ -Wmissing-parameter-type -Wold-style-declaration -Woverride-init \
+ -Wtype-limits -Wsync-nand -Wlogical-op
+endif
+
#WFLAGS += -W -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers
#WFLAGS += -Wsign-compare -Wunused-parameter -Wmissing-field-initializers
#WFLAGS += -Wconversion -Wbad-function-cast -Wcast-qual -Waggregate-return -Wpacked
9 years, 11 months