[newlib 18/22] sys/_bitset.h: Fix fall-out from commit 5e04571cf3c

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Jun 22 08:24:41 UTC 2022


From: Stefan Eßer <se at FreeBSD.org>

There is a reference to malloc() in #define __BITSET_ALLOC. Even
though this macro is only defined but not used, it causes the lang/gcc
ports to fail. The gcc ports "poison" a number of functions including
malloc() and prevent their use (including in macro definitions).

This commit moved the declaration of __BITSET_ALLOC into the
conditional block that depends on _KERNEL or _WANT_FREEBSD_BITSET
being defined.

There is no use of __BITSET_ALLOC in the FreeBSD sources, and userland
programs that want to use BITSEC_ALLOC will define _WANT_FREEBSD_BITSET
anyway.

This patch has been tested by building lang/gcc11 and a successful
make buildworld.

This commit shall be MFCed together with commit 5e04571cf3c.

MFC after:	1 month
---
 newlib/libc/sys/rtems/include/sys/bitset.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/newlib/libc/sys/rtems/include/sys/bitset.h b/newlib/libc/sys/rtems/include/sys/bitset.h
index 00bdc23f9..c9448a73a 100644
--- a/newlib/libc/sys/rtems/include/sys/bitset.h
+++ b/newlib/libc/sys/rtems/include/sys/bitset.h
@@ -311,12 +311,12 @@
 
 #define	__BITSET_SIZE(_s)	(__bitset_words((_s)) * sizeof(long))
 
+#if defined(_KERNEL) || defined(_WANT_FREEBSD_BITSET)
 /*
  * Dynamically allocate a bitset.
  */
 #define __BITSET_ALLOC(_s, mt, mf) malloc(__BITSET_SIZE((_s)), mt, (mf))
 
-#if defined(_KERNEL) || defined(_WANT_FREEBSD_BITSET)
 #define	BIT_AND(_s, d, s)			__BIT_AND(_s, d, s)
 #define	BIT_AND2(_s, d, s1, s2)			__BIT_AND2(_s, d, s1, s2)
 #define	BIT_ANDNOT(_s, d, s)			__BIT_ANDNOT(_s, d, s)
@@ -358,6 +358,6 @@
 #define	BITSET_FSET(n)				__BITSET_FSET(n)
 #define	BITSET_SIZE(_s)				__BITSET_SIZE(_s)
 #define	BITSET_T_INITIALIZER(x)			__BITSET_T_INITIALIZER(x)
-#endif
+#endif /* defined(_KERNEL) || defined(_WANT_FREEBSD_BITSET) */
 
 #endif /* !_SYS_BITSET_H_ */
-- 
2.35.3



More information about the devel mailing list