Definition of __USE_MISC?
Florian Weimer
fweimer@redhat.com
Tue Oct 17 12:01:00 GMT 2017
On 10/10/2017 07:41 AM, Sebastian Huber wrote:
> 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.
Unless there are objects, I'm going to check this in later this week.
Thanks,
Florian
More information about the Libc-alpha
mailing list