X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:cc:subject:message-id:reply-to :references:mime-version:content-type:in-reply-to; q=dns; s= default; b=KmbOuungbks7Mq41fo2WxiDzjt6fpiT541Wz/yB0Q1eW+Ru1FgMFO 28gN464aN5hSM8epz1UgjpW4zFDV33NnxaUekU356pekJhVtuGZuG964/y3uUPPl KqG+k/yUQWdvSJKnQzIIFBWyjGEGF+NZdMqmXgCWe48152gWYv/LiU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:cc:subject:message-id:reply-to :references:mime-version:content-type:in-reply-to; s=default; bh=a3/9tKPojfn649tWFhH3b6AS3sQ=; b=pey7ss6e/R+W/685E7e+WH5ruXl6 loBKmcB4kVodmwJ1+1fZknTWHJwb9qdlxR9RAPOVriaOR7+wMhrEpv1yhw/0+/qW 4qXMHAzEutVQBWg4141HZFCIyBOnprdrIerzwQ8fqd8L4bXyB+m66SbTEgo9gmtE fAA2bsnc2CWCw+U= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-103.1 required=5.0 tests=AWL,BAYES_00,GOOD_FROM_CORINNA_CYGWIN,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1870, historical, day X-HELO: mout.kundenserver.de Date: Mon, 16 Dec 2019 11:01:22 +0100 From: Corinna Vinschen To: Bruno Haible Cc: cygwin AT cygwin DOT com Subject: Re: ilogbl(0.0L) value is wrong Message-ID: <20191216100122.GM10310@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: Bruno Haible , cygwin AT cygwin DOT com References: <2040599 DOT 24iSPLvMXZ AT omega> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="imjhCm/Pyz7Rq5F2" Content-Disposition: inline In-Reply-To: <2040599.24iSPLvMXZ@omega> --imjhCm/Pyz7Rq5F2 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Bruno, On Dec 12 11:26, Bruno Haible wrote: > POSIX [1] specifies that the return value of the functions ilogbf(), ilog= b(), > ilogbl() for a zero argument should all be the same, namely FP_ILOGB0. >=20 > [1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/ilogb.html >=20 > In Cygwin 2.9, the value of ilogbl(0.0L) is not right. >=20 > How to reproduce: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D foo.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > #include > #include > #include >=20 > int main () > { > int x =3D ilogbf (0.0f); > int y =3D ilogb (0.0); > int z =3D ilogbl (0.0L); > printf ("%d\n%d\n%d\n%d\n", x, y, z, FP_ILOGB0); > } > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > $ gcc -Wall foo.c > $ ./a.exe >=20 > Expected output: four times the same number. > Actual output: >=20 > -2147483647 > -2147483647 > -2147483648 > -2147483647 Oh well. Again, this is upstream code, this time taken almost verbatim from https://sourceforge.net/projects/mingw-w64/ I don't see any upstream patch indicating that ilogbl has been changed, but checking the glibc source I found that the x86{_64} assembler code apparently needs another check to allow returning FP_ILOGB0 in this scenario. However, it looks like this is a Cygwin/newlib problem only, given that FP_ILOGB0 is defined as 0x80000000 in Mingw-w64, but (for historical reasons I assume) as 0x80000001 in newlib. The Mingw-w64 code already returns 0x80000000 without this extra check. Weird that glibc needs it, though... I pushed this patch: https://sourceware.org/git/?p=3Dnewlib-cygwin.git;a=3Dcommitdiff;h=3D29ba= 52da9553 Please test the latest developer snapshot from https://cygwin.com/snapshots/ I'll hold back the 3.1.0 release for a day or two. Maybe we can fix the strtold problem as well. Thanks, Corinna --=20 Corinna Vinschen Cygwin Maintainer --imjhCm/Pyz7Rq5F2 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEoVYPmneWZnwT6kwF9TYGna5ET6AFAl33VfIACgkQ9TYGna5E T6B/qQ//QDCWdvMteL0BKQpPt69aBFdbBcrnPHaOE5Hyrr8iHe55OySKSait9Vpw ANvKF9UlnWnWLMG9j0KKYaM4bhKEI83ZlW+sMM5iIAnTK4bhjgV6tEI76GcMHDD8 qmlhEt8lcLeLwgsW3LuXRRBStt4lpV8a3wsUgZ+ZBRyP0uUY1S0B/B/Y2JRfeU8h 80zjPSFZtpfKtrM0NQusTXTJ/0AHf46QyLAgJcjmEGKwNBUBbsL6jrWvI5XeT3m/ EP+M5aHmmJOtmPVdfywIv6m/2ZXti6mCHNlxLAObrdBqPxNQKta+/oY+vB9laCc9 7ovxfFZfKnU5ecjIlbuYT9yWf/s8I5KGyWt1k1vmUVf8O9SuJS7JpzJ8Ag1fNjZa 6r6vWlvPf0j9GJtyPT5xuPwdSA3AiO+Sp9Hfk3n5P5qwi7RKPMynrGm13rSyycZn 28BoBgE0mBQ3B8EGrID9obY1IDAKaIUys8vYd/fih44M1+Vz+TLNO7vdW76AAGyt oBrBrAbl2gkJgG5UvJG5M2l5Ke876m+Au17bHUESHZoLvSQGZTaQg5GA8cXwLg9E lnUCdMDpZpoV29Cczu3OSQ8QfNdl5Zh+IcyumtaOzEkhVw9YyInBsQnH3xrHK48H 36EbWrryHvxBKCSksuef7fNymhDBglaFzfLk+tMjtcELXItR59M= =snE0 -----END PGP SIGNATURE----- --imjhCm/Pyz7Rq5F2--