[libvirt] [PATCH 2/2] Split out -Wframe-larger-than warning from WARN_CLFAGS

Ján Tomko posted 2 patches 8 years, 10 months ago
[libvirt] [PATCH 2/2] Split out -Wframe-larger-than warning from WARN_CLFAGS
Posted by Ján Tomko 8 years, 10 months ago
Introduce STRICT_FRAME_LIMIT_CFLAGS that will be used for
the library code and RELAXED_FRAME_LIMIT_CFLAGS for daemon code
and the test code.

Raising the limit for tests allows building them with clang
with optimizations disabled.
---
 daemon/Makefile.am          | 3 +++
 m4/virt-compile-warnings.m4 | 4 ++--
 src/Makefile.am             | 1 +
 tests/Makefile.am           | 2 ++
 tools/Makefile.am           | 6 ++++++
 5 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 60c7368..5deab1e 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -124,6 +124,7 @@ libvirtd_conf_la_CFLAGS = \
 	$(LIBXML_CFLAGS) \
 	$(XDR_CFLAGS) \
 	$(WARN_CFLAGS) $(PIE_CFLAGS) \
+	$(RELAXED_FRAME_LIMIT_CFLAGS) \
 	$(COVERAGE_CFLAGS) \
 	$(NULL)
 libvirtd_conf_la_LDFLAGS =				\
@@ -143,6 +144,7 @@ libvirtd_admin_la_CFLAGS = \
 		$(XDR_CFLAGS)		\
 		$(PIE_CFLAGS)		\
 		$(WARN_CFLAGS)		\
+		$(RELAXED_FRAME_LIMIT_CFLAGS) \
 		$(LIBXML_CFLAGS)	\
 		$(COVERAGE_CFLAGS)	\
 		$(NULL)
@@ -177,6 +179,7 @@ libvirtd_CFLAGS = \
 	$(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \
 	$(XDR_CFLAGS) $(DBUS_CFLAGS) $(LIBNL_CFLAGS) \
 	$(WARN_CFLAGS) $(PIE_CFLAGS) \
+	$(RELAXED_FRAME_LIMIT_CFLAGS) \
 	$(COVERAGE_CFLAGS) \
 	-DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\""
 
diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index 17fdf9d..768a5c8 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -169,8 +169,8 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
     # This should be < 256 really. Currently we're down to 4096,
     # but using 1024 bytes sized buffers (mostly for virStrerror)
     # stops us from going down further
-    wantwarn="$wantwarn -Wframe-larger-than=4096"
-    dnl wantwarn="$wantwarn -Wframe-larger-than=256"
+    gl_WARN_ADD(["-Wframe-larger-than=4096"], [STRICT_FRAME_LIMIT_CFLAGS])
+    gl_WARN_ADD(["-Wframe-larger-than=25600"], [RELAXED_FRAME_LIMIT_CFLAGS])
 
     # Extra special flags
     dnl -fstack-protector stuff passes gl_WARN_ADD with gcc
diff --git a/src/Makefile.am b/src/Makefile.am
index 75e4344..f8e5017 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -39,6 +39,7 @@ INCLUDES =	-I../gnulib/lib					\
 
 AM_CFLAGS =	$(LIBXML_CFLAGS)				\
 		$(WARN_CFLAGS)					\
+		$(STRICT_FRAME_LIMIT_CFLAGS) \
 		$(LOCK_CHECKING_CFLAGS)				\
 		$(WIN32_EXTRA_CFLAGS)				\
 		$(COVERAGE_CFLAGS)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index a6f189b..35f02d5 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -46,6 +46,7 @@ AM_CFLAGS = \
 	$(APPARMOR_CFLAGS) \
 	$(YAJL_CFLAGS) \
 	$(COVERAGE_CFLAGS) \
+	$(RELAXED_FRAME_LIMIT_CFLAGS) \
 	$(WARN_CFLAGS)
 
 AM_LDFLAGS = \
@@ -925,6 +926,7 @@ commandhelper_SOURCES = \
 	commandhelper.c
 commandhelper_LDADD = \
 	$(WARN_CFLAGS) \
+	$(RELAXED_FRAME_LIMIT_CFLAGS) \
 	$(NO_INDIRECT_LDFLAGS) \
 	$(PROBES_O) \
 	../src/libvirt_util.la \
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 162d8e5..76e97eb 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -182,6 +182,7 @@ virt_host_validate_LDADD = \
 virt_host_validate_CFLAGS = \
 		$(LIBXML_CFLAGS)				\
 		$(WARN_CFLAGS)					\
+		$(RELAXED_FRAME_LIMIT_CFLAGS)	\
 		$(PIE_CFLAGS)					\
 		$(COVERAGE_CFLAGS)				\
 		$(NULL)
@@ -208,6 +209,7 @@ virt_login_shell_CFLAGS =					\
 		-DLIBVIRT_SETUID_RPC_CLIENT			\
 		$(LIBXML_CFLAGS)				\
 		$(WARN_CFLAGS)					\
+		$(RELAXED_FRAME_LIMIT_CFLAGS)	\
 		$(PIE_CFLAGS)					\
 		$(COVERAGE_CFLAGS)
 
@@ -239,6 +241,7 @@ virsh_LDADD =							\
 		libvirt_shell.la
 virsh_CFLAGS =							\
 		$(WARN_CFLAGS)					\
+		$(RELAXED_FRAME_LIMIT_CFLAGS)	\
 		$(PIE_CFLAGS)					\
 		$(COVERAGE_CFLAGS)				\
 		$(LIBXML_CFLAGS)
@@ -260,6 +263,7 @@ virt_admin_LDADD =						\
 		$(NULL)
 virt_admin_CFLAGS =						\
 		$(WARN_CFLAGS)					\
+		$(RELAXED_FRAME_LIMIT_CFLAGS)	\
 		$(PIE_CFLAGS)					\
 		$(COVERAGE_CFLAGS)				\
 		$(LIBXML_CFLAGS)				\
@@ -499,6 +503,7 @@ nss_libnss_libvirt_impl_la_CFLAGS = \
 	-DLIBVIRT_NSS		\
 	$(AM_CFLAGS)		\
 	$(WARN_CFLAGS)		\
+	$(STRICT_FRAME_LIMIT_CFLAGS)	\
 	$(PIE_CFLAGS)		\
 	$(COVERAGE_CFLAGS)	\
 	$(LIBXML_CFLAGS)
@@ -529,6 +534,7 @@ nss_libnss_libvirt_guest_impl_la_CFLAGS = \
 	-DLIBVIRT_NSS_GUEST	\
 	$(AM_CFLAGS)		\
 	$(WARN_CFLAGS)		\
+	$(STRICT_FRAME_LIMIT_CFLAGS)	\
 	$(PIE_CFLAGS)		\
 	$(COVERAGE_CFLAGS)	\
 	$(LIBXML_CFLAGS)
-- 
2.10.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 2/2] Split out -Wframe-larger-than warning from WARN_CLFAGS
Posted by Daniel P. Berrange 8 years, 10 months ago
On Tue, Apr 04, 2017 at 12:57:59PM +0200, Ján Tomko wrote:
> Introduce STRICT_FRAME_LIMIT_CFLAGS that will be used for
> the library code and RELAXED_FRAME_LIMIT_CFLAGS for daemon code
> and the test code.
> 
> Raising the limit for tests allows building them with clang
> with optimizations disabled.
> ---
>  daemon/Makefile.am          | 3 +++
>  m4/virt-compile-warnings.m4 | 4 ++--
>  src/Makefile.am             | 1 +
>  tests/Makefile.am           | 2 ++
>  tools/Makefile.am           | 6 ++++++
>  5 files changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/daemon/Makefile.am b/daemon/Makefile.am
> index 60c7368..5deab1e 100644
> --- a/daemon/Makefile.am
> +++ b/daemon/Makefile.am
> @@ -124,6 +124,7 @@ libvirtd_conf_la_CFLAGS = \
>  	$(LIBXML_CFLAGS) \
>  	$(XDR_CFLAGS) \
>  	$(WARN_CFLAGS) $(PIE_CFLAGS) \
> +	$(RELAXED_FRAME_LIMIT_CFLAGS) \
>  	$(COVERAGE_CFLAGS) \
>  	$(NULL)
>  libvirtd_conf_la_LDFLAGS =				\
> @@ -143,6 +144,7 @@ libvirtd_admin_la_CFLAGS = \
>  		$(XDR_CFLAGS)		\
>  		$(PIE_CFLAGS)		\
>  		$(WARN_CFLAGS)		\
> +		$(RELAXED_FRAME_LIMIT_CFLAGS) \
>  		$(LIBXML_CFLAGS)	\
>  		$(COVERAGE_CFLAGS)	\
>  		$(NULL)
> @@ -177,6 +179,7 @@ libvirtd_CFLAGS = \
>  	$(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \
>  	$(XDR_CFLAGS) $(DBUS_CFLAGS) $(LIBNL_CFLAGS) \
>  	$(WARN_CFLAGS) $(PIE_CFLAGS) \
> +	$(RELAXED_FRAME_LIMIT_CFLAGS) \
>  	$(COVERAGE_CFLAGS) \
>  	-DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\""
>

Daemons should be using the strict limit.

> diff --git a/tools/Makefile.am b/tools/Makefile.am
> index 162d8e5..76e97eb 100644
> --- a/tools/Makefile.am
> +++ b/tools/Makefile.am
> @@ -182,6 +182,7 @@ virt_host_validate_LDADD = \
>  virt_host_validate_CFLAGS = \
>  		$(LIBXML_CFLAGS)				\
>  		$(WARN_CFLAGS)					\
> +		$(RELAXED_FRAME_LIMIT_CFLAGS)	\
>  		$(PIE_CFLAGS)					\
>  		$(COVERAGE_CFLAGS)				\
>  		$(NULL)
> @@ -208,6 +209,7 @@ virt_login_shell_CFLAGS =					\
>  		-DLIBVIRT_SETUID_RPC_CLIENT			\
>  		$(LIBXML_CFLAGS)				\
>  		$(WARN_CFLAGS)					\
> +		$(RELAXED_FRAME_LIMIT_CFLAGS)	\
>  		$(PIE_CFLAGS)					\
>  		$(COVERAGE_CFLAGS)
>  
> @@ -239,6 +241,7 @@ virsh_LDADD =							\
>  		libvirt_shell.la
>  virsh_CFLAGS =							\
>  		$(WARN_CFLAGS)					\
> +		$(RELAXED_FRAME_LIMIT_CFLAGS)	\
>  		$(PIE_CFLAGS)					\
>  		$(COVERAGE_CFLAGS)				\
>  		$(LIBXML_CFLAGS)
> @@ -260,6 +263,7 @@ virt_admin_LDADD =						\
>  		$(NULL)
>  virt_admin_CFLAGS =						\
>  		$(WARN_CFLAGS)					\
> +		$(RELAXED_FRAME_LIMIT_CFLAGS)	\
>  		$(PIE_CFLAGS)					\
>  		$(COVERAGE_CFLAGS)				\
>  		$(LIBXML_CFLAGS)				\

Tools should use the strict limit too.

Only non-production code should have relaxed limit - ie tests.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 2/2] Split out -Wframe-larger-than warning from WARN_CLFAGS
Posted by Andrea Bolognani 8 years, 10 months ago
On Tue, 2017-04-04 at 12:57 +0200, Ján Tomko wrote:
> Introduce STRICT_FRAME_LIMIT_CFLAGS that will be used for
> the library code and RELAXED_FRAME_LIMIT_CFLAGS for daemon code
> and the test code.
> 
> Raising the limit for tests allows building them with clang
> with optimizations disabled.

I'd like to see this being handled once per Makefile.am so that
we don't end up with some programs where the check is skipped.

-- 
Andrea Bolognani / Red Hat / Virtualization

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list