errno.cc (_sys_nerr) patch

Earnie Boyd earnie_boyd@yahoo.com
Sat May 3 13:02:00 GMT 2003


Ping.

Earnie Boyd wrote:
> This patch leaves newlib/libc/include/sys/errno.h file as is.  The 
> importance of this patch is that currently _sys_nerr is marked as 
> imported because ``extern __declspec(dllexport)'' is converted to 
> __declspec(dllimport).
> 
> Earnie.
> 
> 
> ------------------------------------------------------------------------
> 
> 2003.05.01  Earnie Boyd  <earnie@users.sf.net>
> 
> 	* errno.cc: Remove macro definition kludges for _sys_nerr and sys_nerr.
> 	(_sys_nerr): Remove extern, const and NO_COPY modifiers to remove a
> 	section type conflict and to allow the variable to really be marked as
> 	exported instead of marked as imported.
> 
> Index: errno.cc
> ===================================================================
> RCS file: /cvs/src/src/winsup/cygwin/errno.cc,v
> retrieving revision 1.33
> diff -u -3 -p -r1.33 errno.cc
> --- errno.cc	27 Apr 2003 03:14:02 -0000	1.33
> +++ errno.cc	1 May 2003 18:05:48 -0000
> @@ -8,16 +8,12 @@ This software is a copyrighted work lice
>  Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
>  details. */
>  
> -#define _sys_nerr FOO_sys_nerr
> -#define sys_nerr FOOsys_nerr
>  #include "winsup.h"
>  #define _REENT_ONLY
>  #include <stdio.h>
>  #include <errno.h>
>  #include "cygerrno.h"
>  #include "thread.h"
> -#undef _sys_nerr
> -#undef sys_nerr
>  
>  /* Table to map Windows error codes to Errno values.  */
>  /* FIXME: Doing things this way is a little slow.  It's trivial to change
> @@ -295,7 +291,7 @@ const NO_COPY char __declspec(dllexport)
>  /* EOVERFLOW 139 */ "Value too large for defined data type"
>  };
>  
> -extern const int NO_COPY __declspec(dllexport) _sys_nerr = sizeof (_sys_errlist) / sizeof (_sys_errlist[0]);
> +int __declspec(dllexport) _sys_nerr = sizeof (_sys_errlist) / sizeof (_sys_errlist[0]);
>  };
>  
>  /* FIXME: Why is strerror() a long switch and not just:



More information about the Cygwin-patches mailing list