X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Sat, 15 Dec 2007 10:57:18 +0100 From: Angelo Graziosi To: cygwin AT cygwin DOT com Subject: Re: [ANNOUNCEMENT] Updated: [experimental] cygwin-1.5.25-7 Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 It seems that the 1.5.25-* versions of Cygwin are built with a NON-recent-CVS newlib at which are applied a few patches (mainly in math libs). Why not using a fresh newlib CVS? I have rebuild 1.5.25-7 with a fresh newlib CVS (20071215). To do this I have applied only these patches (realized comparing with Cygwin snapshot): assert.cc.patch -------------------------------------------------------------------------- --- assert.cc.orig 2002-09-19 17:12:48.000000000 +0200 +++ assert.cc 2007-11-04 11:41:36.093750000 +0100 @@ -1,6 +1,6 @@ /* assert.cc: Handle the assert macro for WIN32. - Copyright 1997, 1998, 2000, 2001 Red Hat, Inc. + Copyright 1997, 1998, 2000, 2001, 2007 Red Hat, Inc. This file is part of Cygwin. @@ -23,33 +23,42 @@ extern "C" void __assert (const char *file, int line, const char *failedexpr) { + __assert_func (file, line, NULL, failedexpr); +} + +extern "C" void +__assert_func (const char *file, int line, const char *func, + const char *failedexpr) +{ HANDLE h; /* If we don't have a console in a Windows program, then bring up a message box for the assertion failure. */ h = CreateFile ("CONOUT$", GENERIC_WRITE, FILE_SHARE_WRITE, &sec_none_nih, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (h == INVALID_HANDLE_VALUE) { char *buf; buf = (char *) alloca (100 + strlen (failedexpr)); - __small_sprintf (buf, "Failed assertion\n\t%s\nat line %d of file %s", - failedexpr, line, file); + __small_sprintf (buf, "Failed assertion\n\t%s\nat line %d of file %s%s%s", + failedexpr, line, file, + func ? "\nin function " : "", func ? func : ""); MessageBox (NULL, buf, NULL, MB_OK | MB_ICONERROR | MB_TASKMODAL); } else { CloseHandle (h); - small_printf ("assertion \"%s\" failed: file \"%s\", line %d\n", - failedexpr, file, line); + small_printf ("assertion \"%s\" failed: file \"%s\", line %d%s%s\n", + failedexpr, file, line, + func ? ", function: " : "", func ? func : ""); } #ifdef DEBUGGING try_to_debug (); #endif - abort (); // FIXME: Someday this should work. + abort (); // FIXME: Someday this should work. /* NOTREACHED */ } -------------------------------------------------------------------------- cygwin.din.patch -------------------------------------------------------------------------- --- cygwin.din.orig 2006-07-05 18:06:50.000000000 +0200 +++ cygwin.din 2007-11-04 11:54:03.375000000 +0100 @@ -115,6 +115,7 @@ asprintf_r = _asprintf_r SIGFE _asprintf_r SIGFE __assert SIGFE +__assert_func SIGFE __assertfail SIGFE atan NOSIGFE _atan = atan NOSIGFE -------------------------------------------------------------------------- The result seems to works fine. In the build log I have found the following error messages that DO NOT stop the build process: [1] checking for gawk... (cached) gawk checking for .preinit_array/.init_array/.fini_array support... readelf: Error: Input file 'conftest' is not readable. no checking for array aliasing support... yes [2] Error: Version info is older than DLL API! [1] appears also in the 'pure' rebuild of 1.5.25-7, while [2] appears 3 times. So the question is: What is wrong in the above? What have I missed? Thanks... and sorry for the noise, Angelo. --- Facesti come quei che va di notte, che porta il lume dietro e se' non giova, ma dopo se' fa le persone dotte. DANTE, Purgatorio, xxii 67-69 -- 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/