mirror of https://gitee.com/openkylin/libvirt.git
cfg.mk: use a single regex for all non-reentrant functions
The prohibit_nonreentrant syntax-check rule spawns a new shell for every non-reentrant function we know, to make it easier to mention the function name in the error message, with the _r appended. Since the line with the offending function is already printed and some of the functions on our list do not have a _r counterpart, compile them into one big regex and use a more generic error message to save time.
This commit is contained in:
parent
e347e732bb
commit
e26098a1f4
|
@ -113,3 +113,11 @@ NON_REENTRANT += inet_nsap_ntoa
|
||||||
NON_REENTRANT += inet_ntoa
|
NON_REENTRANT += inet_ntoa
|
||||||
NON_REENTRANT += inet_ntop
|
NON_REENTRANT += inet_ntop
|
||||||
NON_REENTRANT += inet_pton
|
NON_REENTRANT += inet_pton
|
||||||
|
|
||||||
|
# Separate two nothings by space to get one space in a variable
|
||||||
|
space =
|
||||||
|
space +=
|
||||||
|
# The space needs to be in a variable otherwise it would be ignored.
|
||||||
|
# And there must be no spaces around the commas because they would
|
||||||
|
# not be ignored, logically.
|
||||||
|
NON_REENTRANT_RE=$(subst $(space),|,$(NON_REENTRANT))
|
||||||
|
|
13
cfg.mk
13
cfg.mk
|
@ -440,18 +440,11 @@ sc_prohibit_PATH_MAX:
|
||||||
halt='dynamically allocate paths, do not use PATH_MAX' \
|
halt='dynamically allocate paths, do not use PATH_MAX' \
|
||||||
$(_sc_search_regexp)
|
$(_sc_search_regexp)
|
||||||
|
|
||||||
# Use a subshell for each function, to give the optimal warning message.
|
|
||||||
include $(srcdir)/Makefile.nonreentrant
|
include $(srcdir)/Makefile.nonreentrant
|
||||||
sc_prohibit_nonreentrant:
|
sc_prohibit_nonreentrant:
|
||||||
@fail=0 ; \
|
@prohibit="\\<(${NON_REENTRANT_RE}) *\\(" \
|
||||||
for i in $(NON_REENTRANT) ; \
|
halt="use re-entrant functions (usually ending with _r)" \
|
||||||
do \
|
$(_sc_search_regexp)
|
||||||
(prohibit="\\<$$i *\\(" \
|
|
||||||
halt="use $${i}_r, not $$i" \
|
|
||||||
$(_sc_search_regexp) \
|
|
||||||
) || fail=1; \
|
|
||||||
done ; \
|
|
||||||
exit $$fail
|
|
||||||
|
|
||||||
sc_prohibit_select:
|
sc_prohibit_select:
|
||||||
@prohibit='\<select *\(' \
|
@prohibit='\<select *\(' \
|
||||||
|
|
Loading…
Reference in New Issue