mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-29 09:05:25 +00:00
e26098a1f4
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.
124 lines
3.7 KiB
Makefile
124 lines
3.7 KiB
Makefile
## Copyright (C) 2009-2010, 2013 Red Hat, Inc.
|
|
##
|
|
## This library is free software; you can redistribute it and/or
|
|
## modify it under the terms of the GNU Lesser General Public
|
|
## License as published by the Free Software Foundation; either
|
|
## version 2.1 of the License, or (at your option) any later version.
|
|
##
|
|
## This library is distributed in the hope that it will be useful,
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
## Lesser General Public License for more details.
|
|
##
|
|
## You should have received a copy of the GNU Lesser General Public
|
|
## License along with this library. If not, see
|
|
## <http://www.gnu.org/licenses/>.
|
|
|
|
#
|
|
# Generated by running the following on Fedora 9:
|
|
#
|
|
# nm -D --defined-only /lib/libc.so.6 \
|
|
# | grep '_r$' \
|
|
# | awk '{print $3}' \
|
|
# | grep -v __ \
|
|
# | grep -v qsort \ # Red herring since we don't need to pass extra args to qsort comparator
|
|
# | grep -v readdir \ # This is safe as long as each DIR * instance is only used by one thread
|
|
# | sort \
|
|
# | uniq \
|
|
# | sed -e 's/_r//'
|
|
#
|
|
# Also manually add in all inet_* functions some of which
|
|
# are not threadsafe and do not have _r variants. They are
|
|
# all deprecated in favour of getnameinfo/getaddrinfo
|
|
#
|
|
|
|
NON_REENTRANT =
|
|
NON_REENTRANT += asctime
|
|
NON_REENTRANT += ctime
|
|
NON_REENTRANT += drand48
|
|
NON_REENTRANT += ecvt
|
|
NON_REENTRANT += erand48
|
|
NON_REENTRANT += ether_aton
|
|
NON_REENTRANT += ether_ntoa
|
|
NON_REENTRANT += fcvt
|
|
NON_REENTRANT += fgetgrent
|
|
NON_REENTRANT += fgetpwent
|
|
NON_REENTRANT += fgetspent
|
|
NON_REENTRANT += getaliasbyname
|
|
NON_REENTRANT += getaliasent
|
|
NON_REENTRANT += getdate
|
|
NON_REENTRANT += getgrent
|
|
NON_REENTRANT += getgrgid
|
|
NON_REENTRANT += getgrnam
|
|
NON_REENTRANT += gethostbyaddr
|
|
NON_REENTRANT += gethostbyname2
|
|
NON_REENTRANT += gethostbyname
|
|
NON_REENTRANT += gethostent
|
|
NON_REENTRANT += getlogin
|
|
NON_REENTRANT += getmntent
|
|
NON_REENTRANT += getnetbyaddr
|
|
NON_REENTRANT += getnetbyname
|
|
NON_REENTRANT += getnetent
|
|
NON_REENTRANT += getnetgrent
|
|
NON_REENTRANT += getprotobyname
|
|
NON_REENTRANT += getprotobynumber
|
|
NON_REENTRANT += getprotoent
|
|
NON_REENTRANT += getpwent
|
|
NON_REENTRANT += getpwnam
|
|
NON_REENTRANT += getpwuid
|
|
NON_REENTRANT += getrpcbyname
|
|
NON_REENTRANT += getrpcbynumber
|
|
NON_REENTRANT += getrpcent
|
|
NON_REENTRANT += getservbyname
|
|
NON_REENTRANT += getservbyport
|
|
NON_REENTRANT += getservent
|
|
NON_REENTRANT += getspent
|
|
NON_REENTRANT += getspnam
|
|
NON_REENTRANT += getutent
|
|
NON_REENTRANT += getutid
|
|
NON_REENTRANT += getutline
|
|
NON_REENTRANT += gmtime
|
|
NON_REENTRANT += hcreate
|
|
NON_REENTRANT += hdestroy
|
|
NON_REENTRANT += hsearch
|
|
NON_REENTRANT += initstate
|
|
NON_REENTRANT += jrand48
|
|
NON_REENTRANT += lcong48
|
|
NON_REENTRANT += localtime
|
|
NON_REENTRANT += lrand48
|
|
NON_REENTRANT += mrand48
|
|
NON_REENTRANT += nrand48
|
|
NON_REENTRANT += ptsname
|
|
NON_REENTRANT += qecvt
|
|
NON_REENTRANT += qfcvt
|
|
NON_REENTRANT += random
|
|
NON_REENTRANT += rand
|
|
NON_REENTRANT += seed48
|
|
NON_REENTRANT += setstate
|
|
NON_REENTRANT += sgetspent
|
|
NON_REENTRANT += srand48
|
|
NON_REENTRANT += srandom
|
|
NON_REENTRANT += strerror
|
|
NON_REENTRANT += strtok
|
|
NON_REENTRANT += tmpnam
|
|
NON_REENTRANT += ttyname
|
|
NON_REENTRANT += inet_addr
|
|
NON_REENTRANT += inet_aton
|
|
NON_REENTRANT += inet_lnaof
|
|
NON_REENTRANT += inet_makeaddr
|
|
NON_REENTRANT += inet_netof
|
|
NON_REENTRANT += inet_network
|
|
NON_REENTRANT += inet_nsap_addr
|
|
NON_REENTRANT += inet_nsap_ntoa
|
|
NON_REENTRANT += inet_ntoa
|
|
NON_REENTRANT += inet_ntop
|
|
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))
|