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

Michal Privoznik mprivozn at redhat.com
Wed Jun 4 16:24:19 UTC 2014


On 04.06.2014 18:21, Eric Blake wrote:
> On 06/04/2014 03:15 AM, Martin Kletzander wrote:
>> On Wed, Jun 04, 2014 at 10:59:08AM +0200, Michal Privoznik wrote:
>>> 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(+)
>>>
>
>>> +# 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;    \
>>
>> Why not:
>>
>> if ! grep -q setlocale $$i; then continue; fi
>
> Even simpler, let maint.mk do it for you:
>
> sc_require_locale_h:
> 	@require='include.*locale\.h'		\
> 	containing='setlocale *('		\
> 	halt='setlocale() requires <locale.h>'	\
> 	  $(_sc_search_regexp)
>

This is the maint.mk-ism I was looking for. Feel free to replace my 
code. Just out of pure curiosity - is your code any faster?

Michal




More information about the libvir-list mailing list