--- adaint.c~1 2006-02-26 17:34:04.000000000 +0000 +++ adaint.c 2006-02-26 21:38:28.000000000 +0000 @@ -96,6 +96,9 @@ #endif #if defined (__EMX__) || defined (MSDOS) || defined (_WIN32) + +#include + #elif defined (VMS) /* Header files and definitions for __gnat_set_file_time_name. */ @@ -372,7 +375,9 @@ char *buf ATTRIBUTE_UNUSED, size_t bufsiz ATTRIBUTE_UNUSED) { -#if defined (MSDOS) || defined (_WIN32) || defined (__EMX__) +#if defined (__DJGPP__) && (__DJGPP__>2 || (__DJGPP__==2 && __DJGPP_MINOR__>=4)) + return readlink (path, buf, bufsiz); +#elif defined (MSDOS) || defined (_WIN32) || defined (__EMX__) return -1; #elif defined (__INTERIX) || defined (VMS) return -1; @@ -391,7 +396,10 @@ __gnat_symlink (char *oldpath ATTRIBUTE_UNUSED, char *newpath ATTRIBUTE_UNUSED) { -#if defined (MSDOS) || defined (_WIN32) || defined (__EMX__) +#if defined (__DJGPP__) && (__DJGPP__>2 || (__DJGPP__==2 && __DJGPP_MINOR__>=4)) +/* Newer DJGPP versions supports symlinks */ + return symlink (oldpath, newpath); +#elif defined (MSDOS) || defined (_WIN32) || defined (__EMX__) return -1; #elif defined (__INTERIX) || defined (VMS) return -1; @@ -484,7 +492,11 @@ __gnat_get_maximum_file_name_length (void) { #if defined (MSDOS) +#ifdef __DJGPP__ + return (_use_lfn(".")) ? -1 : 8; +#else return 8; +#endif #elif defined (VMS) if (getenv ("GNAT$EXTENDED_FILE_SPECIFICATIONS")) return -1; @@ -979,6 +991,7 @@ unsigned file_hour = fs.ft_hour; unsigned file_min = fs.ft_min; unsigned file_tsec = fs.ft_tsec; + return ret; #endif /* Calculate the seconds since epoch from the time components. First count @@ -1042,7 +1055,7 @@ void __gnat_set_file_time_name (char *name, time_t time_stamp) { -#if defined (__EMX__) || defined (MSDOS) || defined (__vxworks) +#if defined (__EMX__) || defined (__vxworks) /* Code to implement __gnat_set_file_time_name for these systems. */ @@ -1274,9 +1287,10 @@ void __gnat_set_env_value (char *name, char *value) { -#ifdef MSDOS +/* #ifdef MSDOS */ -#elif defined (VMS) +/* #elif defined (VMS) */ +#if defined (VMS) struct descriptor_s name_desc; /* Put in JOB table for now, so that the project stuff at least works. */ struct descriptor_s table_desc = {7, 0, "LNM$JOB"}; @@ -1561,6 +1575,9 @@ #if defined (__vxworks) return 0; +#elif defined (__DJGPP__) && (__DJGPP__==2) && (__DJGPP_MINOR__<4) + return 0; + #elif defined (_AIX) || defined (__APPLE__) || defined (__unix__) int ret; struct stat statbuf;