diff options
author | Stefan Eßer <se@FreeBSD.org> | 2021-12-05 21:27:33 +0000 |
---|---|---|
committer | Stefan Eßer <se@FreeBSD.org> | 2021-12-05 22:00:25 +0000 |
commit | 5e04571cf3cf4024be926976a6abf19626df30be (patch) | |
tree | df3a24eaf2af124653d3929799c9b6db8c5b2507 /usr.bin | |
parent | 288a92252bd8ec06bb5e200f75b6c4859fc6bd25 (diff) | |
download | src-5e04571cf3cf4024be926976a6abf19626df30be.tar.gz src-5e04571cf3cf4024be926976a6abf19626df30be.zip |
sys/bitset.h: reduce visibility of BIT_* macros
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
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/cpuset/cpuset.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/usr.bin/cpuset/cpuset.c b/usr.bin/cpuset/cpuset.c index e039030415bb..79c6c2b6ca79 100644 --- a/usr.bin/cpuset/cpuset.c +++ b/usr.bin/cpuset/cpuset.c @@ -32,6 +32,8 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#define _WANT_FREEBSD_BITSET + #include <sys/param.h> #include <sys/types.h> #include <sys/time.h> |