X-Spam-Check-By: sourceware.org X-Spam-Score: -0.972 Message-ID: <464D68D5.1080306@sh.cvut.cz> Date: Fri, 18 May 2007 10:50:29 +0200 From: =?ISO-8859-1?Q?V=E1clav_Haisman?= User-Agent: Thunderbird 2.0.0.0 (Windows/20070326) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: _GLIBCXX_USE_C99 not working? References: <464CBBD5 DOT 4040709 AT t-online DOT de> In-Reply-To: <464CBBD5.4040709@t-online.de> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------enig1FB9FDA834165598BDB11AC5" X-IsSubscribed: yes Reply-To: cygwin AT cygwin DOT com 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 --------------enig1FB9FDA834165598BDB11AC5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Christian Franke wrote: > Defining _GLIBCXX_USE_C99 does not work with current Cygwin C++ includes. >=20 > Testcase: >=20 > #define _GLIBCXX_USE_C99 1 // need std::llabs() >=20 > #include >=20 > long long f(long long x) > { > return std::llabs(x); > } >=20 >=20 > Compile fails with: >=20 > /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdlib:181: > error: `::strtold' has not been declared > /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdlib:200: > error: `__gnu_cxx::strtold' has not been declared >=20 >=20 > The function strtold() does actually not exist in stdlib.h > and the corresponding _GLIBCXX_HAVE_STRTOLD in > /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/i686-pc-cygwin/bits/c++conf= ig.h >=20 > is not set. >=20 > But "using ::strtold" exists in the "#if _GLIBCXX_USE_C99" part of > /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdlib >=20 > Workaround: delete the two "using ::strtold" lines from cstdlib. >=20 > Christian Look into the cstdlib header. You will find that llabs(long long) and abs(long long) are in the __gnu_cxx namespace there. It is because long long is not C++ standard type. -- Vaclav Haisman --------------enig1FB9FDA834165598BDB11AC5 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQEVAwUBRk1o3UNOZDESBK8FAQjhBgf/e/C8qhbvgMQlr/FEDFJCI0vP50idxa44 FZ9t7GBYxP6sRVzqHiVYgtniwFWh4UsJ1HSkGXVn+bdCljSMnxrCZtvZttueBnh/ Y00uwTFOPn/BgMJzRO2Qza70Y7eJydJNtJDMCz7chapa3eBmG/2kFTyP/SZgZ8LU 4+cic/V3MAUGl+aL7UIPK/VVANlp6G1dQNmcbC2sJGePGHXt7teOMuCuBiKoDRxx zE6A2/BdW2/bvy/9WkS7s2hKITlE5GgDooliS7wInIWeNGgA0F4CdVyHxdDmdm2+ GSyge2K7Tqr6UvgKspHuUd8pPdzp5CTMbb2eWgh/m+KsHLVXEYPIQA== =UleH -----END PGP SIGNATURE----- --------------enig1FB9FDA834165598BDB11AC5--