From patchwork Thu Oct 5 09:50:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 23337 Received: (qmail 113134 invoked by alias); 5 Oct 2017 09:50:35 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 112721 invoked by uid 89); 5 Oct 2017 09:50:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=worried X-HELO: mx1.redhat.com DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 70ECD7E42E Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=fweimer@redhat.com Subject: Re: Definition of __USE_MISC? To: Sebastian Huber , libc-alpha@sourceware.org References: <5421ae5a-3e23-bd54-4c8e-79997ae56906@embedded-brains.de> From: Florian Weimer Message-ID: <24683c8c-e21c-7b7f-8525-0cb847b6cd81@redhat.com> Date: Thu, 5 Oct 2017 11:50:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <5421ae5a-3e23-bd54-4c8e-79997ae56906@embedded-brains.de> 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 ). Patch attached. Thanks, Florian Recent BSDs declare these functions, too. 2017-10-05 Florian Weimer * string/strings.h (ffsl, ffsll): Declare under __USE_MISC, not just __USE_GNU. diff --git a/string/strings.h b/string/strings.h index 630b3adc23..27508e31b8 100644 --- a/string/strings.h +++ b/string/strings.h @@ -106,7 +106,7 @@ extern int ffs (int __i) __THROW __attribute_const__; /* The following two functions are non-standard but necessary for non-32 bit platforms. */ -# ifdef __USE_GNU +# ifdef __USE_MISC extern int ffsl (long int __l) __THROW __attribute_const__; __extension__ extern int ffsll (long long int __ll) __THROW __attribute_const__;