mkdtemp() configuration bug

Aaron Gray angray@beeb.net
Wed Jun 1 17:44:00 GMT 2005


It looks like the latest Cygwin has a problem with mkdtemp(). mkdtemp() 
exists in a library and is linkable, but there is no function prototype for 
it in the headers.

The configuration system compiles a function :-

/* Override any gcc2 internal prototype to avoid an error.  */
| #ifdef __cplusplus
| extern "C"
| {
| #endif
| /* We use char because int might match the return type of a gcc2
|    builtin and then its argument prototype would still apply.  */
| char mkdtemp ();
| /* The GNU C library defines this for functions which it implements
|     to always fail with ENOSYS.  Some functions are actually named
|     something starting with __ and the normal name is an alias.  */
| #if defined (__stub_mkdtemp) || defined (__stub___mkdtemp)
| choke me
| #else
| char (*f) () = mkdtemp;
| #endif
| #ifdef __cplusplus
| }
| #endif
|
| int
| main ()
| {
| return f != mkdtemp;
|   ;
|   return 0;
| }

It defines 'char mkdtemp()' and links it as it is defined in a library but 
not in a header !

Aaron Gray



--
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