5e04571cf3
Add two underscore characters "__" to names of BIT_* and BITSET_* macros to move them to the implementation name space and to prevent a name space pollution due to BIT_* macros in 3rd party programs with conflicting parameter signatures. These prefixed macro names are used in kernel header files to define macros in e.g. sched.h, sys/cpuset.h and sys/domainset.h. If C programs are built with either -D_KERNEL (automatically passed when building a kernel or kernel modules) or -D_WANT_FREENBSD_BITSET (or this macros is defined in the source code before including the bitset macros), then all macros are made visible with their previous names, too. E.g., both __BIT_SET() and BIT_SET() are visible with either of _KERNEL or _WANT_FREEBSD_BITSET defined. The main reason for this change is that some 3rd party sources including sched.h have been found to contain conflicting BIT_* macros. As a work-around, parts of shed.h have been made conditional and depend on _WITH_CPU_SET_T being set when sched.h is included. Ports that expect the full functionality provided by sched.h need to be built with -D_WITH_CPU_SET_T. But this leads to conflicts if BIT_* macros are defined in that program, too. This patch set makes all of sched.h visible again without this parameter being passed and without any name space pollution due to BIT_* macros becoming visible when sched.h is included. This patch set will be backported to the STABLE branches, but ports will need to use -D_WITH_CPU_SET_T as long as there are supported releases that do not contain these patches. Reviewed by: kib, markj MFC after: 1 month Relnotes: yes Differential Revision: https://reviews.freebsd.org/D33235 |
||
---|---|---|
.. | ||
arpa | ||
gssapi | ||
protocols | ||
rpc | ||
rpcsvc | ||
xlocale | ||
_ctype.h | ||
a.out.h | ||
ar.h | ||
assert.h | ||
bitstring.h | ||
complex.h | ||
cpio.h | ||
ctype.h | ||
db.h | ||
dirent.h | ||
dlfcn.h | ||
elf-hints.h | ||
elf.h | ||
err.h | ||
fmtmsg.h | ||
fnmatch.h | ||
fstab.h | ||
fts.h | ||
ftw.h | ||
getopt.h | ||
glob.h | ||
grp.h | ||
gssapi.h | ||
hesiod.h | ||
iconv.h | ||
ieeefp.h | ||
ifaddrs.h | ||
inttypes.h | ||
iso646.h | ||
kenv.h | ||
langinfo.h | ||
libgen.h | ||
limits.h | ||
link.h | ||
locale.h | ||
Makefile | ||
Makefile.depend | ||
malloc_np.h | ||
malloc.h | ||
memory.h | ||
mk-osreldate.sh | ||
monetary.h | ||
mpool.h | ||
mqueue.h | ||
ndbm.h | ||
netconfig.h | ||
netdb.h | ||
nl_types.h | ||
nlist.h | ||
nss.h | ||
nsswitch.h | ||
paths.h | ||
printf.h | ||
proc_service.h | ||
pthread_np.h | ||
pthread.h | ||
pwd.h | ||
ranlib.h | ||
readpassphrase.h | ||
regex.h | ||
res_update.h | ||
resolv.h | ||
runetype.h | ||
sched.h | ||
search.h | ||
semaphore.h | ||
setjmp.h | ||
signal.h | ||
spawn.h | ||
stab.h | ||
stdalign.h | ||
stdbool.h | ||
stddef.h | ||
stdio.h | ||
stdlib.h | ||
stdnoreturn.h | ||
string.h | ||
stringlist.h | ||
strings.h | ||
sysexits.h | ||
tar.h | ||
termios.h | ||
tgmath.h | ||
time.h | ||
timeconv.h | ||
timers.h | ||
ttyent.h | ||
uchar.h | ||
ulimit.h | ||
unistd.h | ||
unwind.h | ||
utime.h | ||
utmpx.h | ||
uuid.h | ||
varargs.h | ||
wchar.h | ||
wctype.h | ||
wordexp.h | ||
xlocale.h |