This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Definition of __USE_MISC?
On 05/10/17 11:50, Florian Weimer wrote:
On 10/05/2017 08:07 AM, Sebastian Huber wrote:
Hello,
according to the comment in features.h we have:
__USE_MISC Define things from 4.3BSD or System V Unix.
What about interfaces that are present on newer BSD systems by
default, e.g. we have in glibc strings.h:
/* The following two functions are non-standard but necessary for
non-32 bit
platforms. */
# ifdef __USE_GNU
extern int ffsl (long int __l) __THROW __attribute_const__;
__extension__ extern int ffsll (long long int __ll)
__THROW __attribute_const__;
# endif
In FreeBSD strings.h we have:
#if __BSD_VISIBLE
int ffsl(long) __pure2;
int ffsll(long long) __pure2;
int fls(int) __pure2;
int flsl(long) __pure2;
int flsll(long long) __pure2;
#endif
Would it be possible to change the guard in glibc to __USE_MISC?
Yes, it should be a simple change. I was worried about the long long
part initially, but we have precedent for using long long under
__USE_MISC (strtouq in <stdlib.h>).
Patch attached.
What are the opinions with respect to this patch? The ffsl() and ffsll()
are BSD visible in FreeBSD, DragonFlyBSD, some Mac OS X and musl. They
are not available in OpenBSD and NetBSD.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.