delorie.com/archives/browse.cgi | search |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Message-ID: | <410EB9A2.5020701@kleckner.net> |
Date: | Mon, 02 Aug 2004 15:01:06 -0700 |
From: | Jim Kleckner <jek-cygwin AT kleckner DOT net> |
User-Agent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040616 |
MIME-Version: | 1.0 |
To: | sailorleo AT isonews2 DOT com |
CC: | cygwin AT cygwin DOT com |
Subject: | Re: STL std::random_shuffle behavior fails with lrand48 (workaround) |
References: | <410AEF64 DOT 90409 AT kleckner DOT net> <410B038D DOT 5010507 AT isonews2 DOT com> |
In-Reply-To: | <410B038D.5010507@isonews2.com> |
X-IsSubscribed: | yes |
Arturus Magi wrote: > Jim Kleckner wrote: > >> Version of cygwin is current (see attached file >> for all version stamps) >> gcc 3.3.1-3 >> gcc-g++ 3.3.1-3 >> >> version of gcc/g++ on Linux is 2.96. >> >> The test program is attached as is cygcheck output. >> >> To run it just type (note that -mno-cygwin is *not* used): >> g++ xxx.cpp >> ./a.exe >> >> Is this a configuration issue? Or does lrand48 not work? >> Or is it a long vs. int type mismatch? >> > > Try upgrading the version of gcc on the Linux box before comparing. > There are a number of differences between gcc2 and gcc3 that may be > affecting things. It is not possible to upgrade that server in order to confirm that the bug is general to gcc3. If someone else could demonstrate that the bug exists on other platforms, I would be grateful. For other people who run into this, I found that substituting rand() for lrand48() works around this problem. Add this code ahead of the includes of <algorithm> and so forth. Not pretty but it removed the roadblock. Jim // This lrand48() hack is a workaround for cygwin lrand48() extern "C" long int lrand48(); extern "C" int rand(); long int lrand48() { return rand(); } -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |