btrfs-progs: silence build warning caused by gcc 8 '-Wformat-truncation'
When using gcc8 + glibc 2.28.5 compiles utils.c, it complains as below: utils.c:852:45: warning: '%s' directive output may be truncated writing up to 4095 bytes into a region of size 4084 [-Wformat-truncation=] snprintf(path, sizeof(path), "/dev/mapper/%s", name); ^~ ~~~~ In file included from /usr/include/stdio.h:873, from utils.c:20: /usr/include/bits/stdio2.h:67:10: note: '__builtin___snprintf_chk' output between 13 and 4108 bytes into a destination of size 4096 return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ __bos (__s), __fmt, __va_arg_pack ()); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This isn't a type of warning we care about, particularly when calling snprintf() we expect string to be truncated. Use the GCC option -Wno-format-truncation to disable this for default build and W=1 build, while still keeping it for W=2 and W=3 builds. Signed-off-by: Su Yanjun <suyj.fnst@cn.fujitsu.com> [ Use cc-disable-warning to fix the not working CFLAGS setting in configure.ac ] [ Keep the warning in W=2/W=3 build ] Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
737defd3a5
commit
07cead1a1e
5
Makefile
5
Makefile
|
@ -62,6 +62,10 @@ DEBUG_LDFLAGS :=
|
||||||
ABSTOPDIR = $(shell pwd)
|
ABSTOPDIR = $(shell pwd)
|
||||||
TOPDIR := .
|
TOPDIR := .
|
||||||
|
|
||||||
|
# Disable certain GCC 8 + glibc 2.28 warning for snprintf()
|
||||||
|
# where string truncation for snprintf() is expected.
|
||||||
|
DISABLE_WARNING_FLAGS := $(call cc-disable-warning, format-truncation)
|
||||||
|
|
||||||
# Common build flags
|
# Common build flags
|
||||||
CFLAGS = $(SUBST_CFLAGS) \
|
CFLAGS = $(SUBST_CFLAGS) \
|
||||||
$(CSTD) \
|
$(CSTD) \
|
||||||
|
@ -73,6 +77,7 @@ CFLAGS = $(SUBST_CFLAGS) \
|
||||||
-I$(TOPDIR) \
|
-I$(TOPDIR) \
|
||||||
-I$(TOPDIR)/kernel-lib \
|
-I$(TOPDIR)/kernel-lib \
|
||||||
-I$(TOPDIR)/libbtrfsutil \
|
-I$(TOPDIR)/libbtrfsutil \
|
||||||
|
$(DISABLE_WARNING_FLAGS) \
|
||||||
$(EXTRAWARN_CFLAGS) \
|
$(EXTRAWARN_CFLAGS) \
|
||||||
$(DEBUG_CFLAGS_INTERNAL) \
|
$(DEBUG_CFLAGS_INTERNAL) \
|
||||||
$(EXTRA_CFLAGS)
|
$(EXTRA_CFLAGS)
|
||||||
|
|
|
@ -52,6 +52,7 @@ warning-1 += -Wold-style-definition
|
||||||
warning-1 += $(call cc-option, -Wmissing-include-dirs)
|
warning-1 += $(call cc-option, -Wmissing-include-dirs)
|
||||||
warning-1 += $(call cc-option, -Wunused-but-set-variable)
|
warning-1 += $(call cc-option, -Wunused-but-set-variable)
|
||||||
warning-1 += $(call cc-disable-warning, missing-field-initializers)
|
warning-1 += $(call cc-disable-warning, missing-field-initializers)
|
||||||
|
warning-1 += $(call cc-disable-warning, format-truncation)
|
||||||
|
|
||||||
warning-2 := -Waggregate-return
|
warning-2 := -Waggregate-return
|
||||||
warning-2 += -Wcast-align
|
warning-2 += -Wcast-align
|
||||||
|
@ -60,6 +61,7 @@ warning-2 += -Wnested-externs
|
||||||
warning-2 += -Wshadow
|
warning-2 += -Wshadow
|
||||||
warning-2 += $(call cc-option, -Wlogical-op)
|
warning-2 += $(call cc-option, -Wlogical-op)
|
||||||
warning-2 += $(call cc-option, -Wmissing-field-initializers)
|
warning-2 += $(call cc-option, -Wmissing-field-initializers)
|
||||||
|
warning-2 += $(call cc-option, -Wformat-truncation)
|
||||||
|
|
||||||
warning-3 := -Wbad-function-cast
|
warning-3 := -Wbad-function-cast
|
||||||
warning-3 += -Wcast-qual
|
warning-3 += -Wcast-qual
|
||||||
|
|
Loading…
Reference in New Issue