[libvirt] [PATCH] cfg.mk: Introduce rule for setlocale()

Michal Privoznik mprivozn at redhat.com
Wed Jun 4 08:59:08 UTC 2014


In the past we had some issues where setlocale() was called without
corresponding include of locale.h. While on some systems this may
work, on others the compilation failed. We should have a syntax-check
rule for that to prevent this from happening again.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 cfg.mk | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/cfg.mk b/cfg.mk
index 9e8fcec..36395c6 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -929,6 +929,15 @@ sc_prohibit_mixed_case_abbreviations:
 	halt='Use PCI, USB, SCSI, not Pci, Usb, Scsi'	\
 	  $(_sc_search_regexp)
 
+# Require #include <locale.h> in all files that call setlocale()
+sc_require_locale_h:
+	@for i in $$($(VC_LIST_EXCEPT) | grep '\.[chx]$$'); do			\
+		if test -z "$$(grep setlocale $$i)" ; then continue; fi;	\
+		if test -z "$$(grep 'include <locale.h>' $$i)" ; then		\
+			echo '$(ME): missing locale.h include in' $$i 1>&2; exit 1;	\
+		fi;															\
+	done;
+
 # We don't use this feature of maint.mk.
 prev_version_file = /dev/null
 
-- 
2.0.0




More information about the libvir-list mailing list