[ANNOUNCEMENT] Updated: [experimental] cygwin-1.5.25-7
Angelo Graziosi
Angelo.Graziosi@roma1.infn.it
Sat Dec 15 09:57:00 GMT 2007
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/
More information about the Cygwin
mailing list