From patchwork Tue Jun 22 16:57:37 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnaud Charlet X-Patchwork-Id: 56533 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 5E345B773D for ; Wed, 23 Jun 2010 02:57:56 +1000 (EST) Received: (qmail 13440 invoked by alias); 22 Jun 2010 16:57:54 -0000 Received: (qmail 13409 invoked by uid 22791); 22 Jun 2010 16:57:48 -0000 X-SWARE-Spam-Status: No, hits=-0.4 required=5.0 tests=AWL, BAYES_50, TW_CP, TW_SF, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mel.act-europe.fr (HELO mel.act-europe.fr) (212.99.106.210) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 22 Jun 2010 16:57:36 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id EA80CCB026C; Tue, 22 Jun 2010 18:57:37 +0200 (CEST) Received: from mel.act-europe.fr ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w4Cj+kqZn8Ef; Tue, 22 Jun 2010 18:57:37 +0200 (CEST) Received: from saumur.act-europe.fr (saumur.act-europe.fr [10.10.0.183]) by mel.act-europe.fr (Postfix) with ESMTP id CD820CB026A; Tue, 22 Jun 2010 18:57:37 +0200 (CEST) Received: by saumur.act-europe.fr (Postfix, from userid 525) id C474FD9BB4; Tue, 22 Jun 2010 18:57:37 +0200 (CEST) Date: Tue, 22 Jun 2010 18:57:37 +0200 From: Arnaud Charlet To: gcc-patches@gcc.gnu.org Cc: Geert Bosch Subject: [Ada] Remove remnants of GNAT support for OS/2 and MSDOS Message-ID: <20100622165737.GA14381@adacore.com> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.9i X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org While real support has long been gone, there were various mentions and pieces of conditionally compiled code remaining. This clears them up. No test case necessary, as this removes inactive code. Tested on x86_64-pc-linux-gnu, committed on trunk 2010-06-22 Geert Bosch * sysdep.c, init.c, adaint.c, cstreams.c: Remove conditional code depending on __EMX__ or MSDOS being defined. * i-cstrea.ads, gnat_rm.texi: Remove mentions of OS/2, DOS and Xenix. * a-excpol-abort.adb: Update comment indicating users of the file. * xref_lib.adb, sfn_scan.adb: Remove mention of OS/2, replace NT by Windows. * env.c: Remove empty conditional for MSDOS. * s-stchop.adb, g-dirope.ads, s-fileio.adb, osint.ads: Remove mention of OS/2 in comment. Index: sysdep.c =================================================================== --- sysdep.c (revision 161073) +++ sysdep.c (working copy) @@ -6,7 +6,7 @@ * * * C Implementation File * * * - * Copyright (C) 1992-2009, Free Software Foundation, Inc. * + * Copyright (C) 1992-2010, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -158,7 +158,7 @@ extern struct tm *localtime_r(const time */ -#if defined(WINNT) || defined (MSDOS) || defined (__EMX__) +#if defined(WINNT) static const char *mode_read_text = "rt"; static const char *mode_write_text = "wt"; static const char *mode_append_text = "at"; @@ -345,7 +345,7 @@ __gnat_ttyname (int filedes) } #endif -#if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ +#if defined (linux) || defined (sun) || defined (sgi) \ || (defined (__osf__) && ! defined (__alpha_vxworks)) || defined (WINNT) \ || defined (__MACHTEN__) || defined (__hpux__) || defined (_AIX) \ || (defined (__svr4__) && defined (i386)) || defined (__Lynx__) \ @@ -403,7 +403,7 @@ getc_immediate_common (FILE *stream, int *avail, int waiting) { -#if defined (linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ +#if defined (linux) || defined (sun) || defined (sgi) \ || (defined (__osf__) && ! defined (__alpha_vxworks)) \ || defined (__CYGWIN32__) || defined (__MACHTEN__) || defined (__hpux__) \ || defined (_AIX) || (defined (__svr4__) && defined (i386)) \ @@ -424,7 +424,7 @@ getc_immediate_common (FILE *stream, /* Set RAW mode, with no echo */ termios_rec.c_lflag = termios_rec.c_lflag & ~ICANON & ~ECHO; -#if defined(linux) || defined (sun) || defined (sgi) || defined (__EMX__) \ +#if defined(linux) || defined (sun) || defined (sgi) \ || defined (__osf__) || defined (__MACHTEN__) || defined (__hpux__) \ || defined (_AIX) || (defined (__svr4__) && defined (i386)) \ || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \ @@ -433,18 +433,12 @@ getc_immediate_common (FILE *stream, /* If waiting (i.e. Get_Immediate (Char)), set MIN = 1 and wait for a character forever. This doesn't seem to effect Ctrl-Z or - Ctrl-C processing except on OS/2 where Ctrl-C won't work right - unless we do a read loop. Luckily we can delay a bit between - iterations. If not waiting (i.e. Get_Immediate (Char, Available)), + Ctrl-C processing. + If not waiting (i.e. Get_Immediate (Char, Available)), don't wait for anything but timeout immediately. */ -#ifdef __EMX__ - termios_rec.c_cc[VMIN] = 0; - termios_rec.c_cc[VTIME] = waiting; -#else termios_rec.c_cc[VMIN] = waiting; termios_rec.c_cc[VTIME] = 0; #endif -#endif tcsetattr (fd, TCSANOW, &termios_rec); while (! good_one) @@ -720,7 +714,7 @@ long __gnat_invalid_tzoff = 259273; /* Definition of __gnat_localtime_r used by a-calend.adb */ -#if defined (__EMX__) || defined (__MINGW32__) +#if defined (__MINGW32__) #ifdef CERT @@ -743,7 +737,7 @@ extern void (*Unlock_Task) (void); #endif -/* Reentrant localtime for Windows and OS/2. */ +/* Reentrant localtime for Windows. */ extern void __gnat_localtime_tzoff (const time_t *, long *); Index: s-stchop.adb =================================================================== --- s-stchop.adb (revision 161073) +++ s-stchop.adb (working copy) @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2010, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -64,7 +64,7 @@ package body System.Stack_Checking.Opera -- Note: This function must be compiled with Polling turned off - -- Note: on systems like VxWorks and OS/2 with real thread-local storage, + -- Note: on systems with real thread-local storage, -- Set_Stack_Info should return an access value for such local -- storage. In those cases the cache will always be up-to-date. Index: gnat_rm.texi =================================================================== --- gnat_rm.texi (revision 161202) +++ gnat_rm.texi (working copy) @@ -2923,7 +2923,7 @@ Ada exceptions, or used to implement run Pragma @code{Interrupt_State} provides a general mechanism for overriding such uses of interrupts. It subsumes the functionality of pragma @code{Unreserve_All_Interrupts}. Pragma @code{Interrupt_State} is not -available on OS/2, Windows or VMS. On all other platforms than VxWorks, +available on Windows or VMS. On all other platforms than VxWorks, it applies to signals; on VxWorks, it applies to vectored hardware interrupts and may be used to mark interrupts required by the board support package as reserved. @@ -13246,8 +13246,8 @@ package Interfaces.C_Streams is -- Standard C functions -- -------------------------- -- The functions selected below are ones that are - -- available in DOS, OS/2, UNIX and Xenix (but not - -- necessarily in ANSI C). These are very thin interfaces + -- available in UNIX (but not necessarily in ANSI C). + -- These are very thin interfaces -- which copy exactly the C headers. For more -- documentation on these functions, see the Microsoft C -- "Run-Time Library Reference" (Microsoft Press, 1990, @@ -15502,7 +15502,7 @@ the underlying kernel. Otherwise, some the services offered by the underlying kernel to the semantics expected by GNARL@. -Whatever the underlying OS (VxWorks, UNIX, OS/2, Windows NT, etc.) the +Whatever the underlying OS (VxWorks, UNIX, Windows, etc.) the key point is that each Ada task is mapped on a thread in the underlying kernel. For example, in the case of VxWorks, one Ada task = one VxWorks task. Index: g-dirope.ads =================================================================== --- g-dirope.ads (revision 161073) +++ g-dirope.ads (working copy) @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1998-2008, AdaCore -- +-- Copyright (C) 1998-2010, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -209,8 +209,8 @@ package GNAT.Directory_Operations is -- Recognize both forms described above. -- -- System_Default - -- Uses either UNIX on Unix and OpenVMS systems, or DOS on Windows and - -- OS/2 depending on the running environment. + -- Uses either UNIX on Unix and OpenVMS systems, or DOS on Windows, + -- depending on the running environment. --------------- -- Iterators -- Index: a-excpol-abort.adb =================================================================== --- a-excpol-abort.adb (revision 161073) +++ a-excpol-abort.adb (working copy) @@ -7,7 +7,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -35,7 +35,7 @@ -- that activates periodic polling. Then in the body of the polling routine -- we test for asynchronous abort. --- NT, OS/2, HPUX/DCE and SCO currently use this file +-- Windows, HPUX 10 and VMS currently use this file pragma Warnings (Off); -- Allow withing of non-Preelaborated units in Ada 2005 mode where this Index: i-cstrea.ads =================================================================== --- i-cstrea.ads (revision 161073) +++ i-cstrea.ads (working copy) @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1995-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2010, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -76,9 +76,9 @@ package Interfaces.C_Streams is -- Standard C functions -- -------------------------- - -- The functions selected below are ones that are available in DOS, - -- OS/2, UNIX and Xenix (but not necessarily in ANSI C). These are - -- very thin interfaces which copy exactly the C headers. For more + -- The functions selected below are ones that are available in + -- UNIX (but not necessarily in ANSI C). These are very thin + -- interfaces which copy exactly the C headers. For more -- documentation on these functions, see the Microsoft C "Run-Time -- Library Reference" (Microsoft Press, 1990, ISBN 1-55615-225-6), -- which includes useful information on system compatibility. Index: xref_lib.adb =================================================================== --- xref_lib.adb (revision 161073) +++ xref_lib.adb (working copy) @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2010, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -231,7 +231,7 @@ package body Xref_Lib is Line_Start := Index (Entity (File_Start .. Entity'Last), ":"); - -- Check if it was a disk:\directory item (for NT and OS/2) + -- Check if it was a disk:\directory item (for Windows) if File_Start = Line_Start - 1 and then Line_Start < Entity'Last Index: sfn_scan.adb =================================================================== --- sfn_scan.adb (revision 161073) +++ sfn_scan.adb (working copy) @@ -37,11 +37,10 @@ package body SFN_Scan is -- Allow easy access to control character definitions EOF : constant Character := ASCII.SUB; - -- The character SUB (16#1A#) is used in DOS and other systems derived - -- from DOS (OS/2, NT etc.) to signal the end of a text file. If this - -- character appears as the last character of a file scanned by a call - -- to Scan_SFN_Pragmas, then it is ignored, otherwise it is treated as - -- an illegal character. + -- The character SUB (16#1A#) is DOS-derived systems, such as Windows + -- to signal the end of a text file. If this character appears as the + -- last character of a file scanned by a call to Scan_SFN_Pragmas, + -- then it is ignored, otherwise it is treated as an illegal character. type String_Ptr is access String; Index: env.c =================================================================== --- env.c (revision 161073) +++ env.c (working copy) @@ -6,7 +6,7 @@ * * * C Implementation File * * * - * Copyright (C) 2005-2009, Free Software Foundation, Inc. * + * Copyright (C) 2005-2010, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -107,9 +107,7 @@ typedef struct _ile3 void __gnat_setenv (char *name, char *value) { -#ifdef MSDOS - -#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"}; Index: init.c =================================================================== --- init.c (revision 161073) +++ init.c (working copy) @@ -6,7 +6,7 @@ * * * C Implementation File * * * - * Copyright (C) 1992-2009, Free Software Foundation, Inc. * + * Copyright (C) 1992-2010, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -2211,10 +2211,10 @@ __gnat_install_handler (void) /*********************/ /* This routine is called as each process thread is created, for possible - initialization of the FP processor. This version is used under INTERIX, - WIN32 and could be used under OS/2. */ + initialization of the FP processor. This version is used under INTERIX + and WIN32. */ -#if defined (_WIN32) || defined (__INTERIX) || defined (__EMX__) \ +#if defined (_WIN32) || defined (__INTERIX) \ || defined (__Lynx__) || defined(__NetBSD__) || defined(__FreeBSD__) \ || defined (__OpenBSD__) Index: csets.adb =================================================================== --- csets.adb (revision 161073) +++ csets.adb (working copy) @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -618,9 +618,9 @@ package body Csets is -- Definitions for IBM PC (Code Page 437) -- -------------------------------------------- - -- Note: Code page 437 is the typical default in DOS, Windows and OS/2 - -- for PC's in the US, it corresponds to the original PC character set. - -- See also the definitions for code page 850. + -- Note: Code page 437 is the typical default in Windows for PC's in the + -- US, it corresponds to the original PC character set. See also the + -- definitions for code page 850. Fold_IBM_PC_437 : constant Translate_Table := Translate_Table'( @@ -752,10 +752,10 @@ package body Csets is -- Definitions for IBM PC (Code Page 850) -- -------------------------------------------- - -- Note: Code page 850 is the typical default in DOS, Windows and OS/2 - -- for PC's in Europe, it is an extension of the original PC character - -- set to include the additional characters defined in ISO Latin-1. - -- See also the definitions for code page 437. + -- Note: Code page 850 is the typical default in Windows for PC's in + -- Europe, it is an extension of the original PC character set to include + -- the additional characters defined in ISO Latin-1. See also the + -- definitions for code page 437. Fold_IBM_PC_850 : constant Translate_Table := Translate_Table'( Index: adaint.c =================================================================== --- adaint.c (revision 161160) +++ adaint.c (working copy) @@ -132,7 +132,7 @@ UINT CurrentCodePage; #include #endif -#if defined (__EMX__) || defined (MSDOS) || defined (_WIN32) +#if defined (_WIN32) #elif defined (VMS) /* Header files and definitions for __gnat_set_file_time_name. */ @@ -183,7 +183,7 @@ struct vstring #include #endif -#if defined (__EMX__) || defined (MSDOS) || defined (_WIN32) +#if defined (_WIN32) #include #endif @@ -205,14 +205,6 @@ struct vstring external file mapped to LF in internal file), but in Unix-like systems, no text translation is required, so these flags have no effect. */ -#if defined (__EMX__) -#include -#endif - -#if defined (MSDOS) -#include -#endif - #ifndef O_BINARY #define O_BINARY 0 #endif @@ -275,9 +267,7 @@ char __gnat_path_separator = PATH_SEPARA as well. This is only a temporary work-around for 3.11b. */ #ifndef GNAT_LIBRARY_TEMPLATE -#if defined (__EMX__) -#define GNAT_LIBRARY_TEMPLATE "*.a" -#elif defined (VMS) +#if defined (VMS) #define GNAT_LIBRARY_TEMPLATE "*.olb" #else #define GNAT_LIBRARY_TEMPLATE "lib*.a" @@ -294,10 +284,7 @@ const int __gnat_vmsp = 1; const int __gnat_vmsp = 0; #endif -#ifdef __EMX__ -#define GNAT_MAX_PATH_LEN MAX_PATH - -#elif defined (VMS) +#if defined (VMS) #define GNAT_MAX_PATH_LEN 256 /* PATH_MAX */ #elif defined (__vxworks) || defined (__OPENNT) || defined(__nucleus__) @@ -478,8 +465,8 @@ __gnat_readlink (char *path ATTRIBUTE_UN char *buf ATTRIBUTE_UNUSED, size_t bufsiz ATTRIBUTE_UNUSED) { -#if defined (MSDOS) || defined (_WIN32) || defined (__EMX__) \ - || defined (VMS) || defined(__vxworks) || defined (__nucleus__) +#if defined (_WIN32) || defined (VMS) \ + || defined(__vxworks) || defined (__nucleus__) return -1; #else return readlink (path, buf, bufsiz); @@ -494,8 +481,8 @@ int __gnat_symlink (char *oldpath ATTRIBUTE_UNUSED, char *newpath ATTRIBUTE_UNUSED) { -#if defined (MSDOS) || defined (_WIN32) || defined (__EMX__) \ - || defined (VMS) || defined(__vxworks) || defined (__nucleus__) +#if defined (_WIN32) || defined (VMS) \ + || defined(__vxworks) || defined (__nucleus__) return -1; #else return symlink (oldpath, newpath); @@ -504,8 +491,8 @@ __gnat_symlink (char *oldpath ATTRIBUTE_ /* Try to lock a file, return 1 if success. */ -#if defined (__vxworks) || defined (__nucleus__) || defined (MSDOS) \ - || defined (_WIN32) || defined (__EMX__) || defined (VMS) +#if defined (__vxworks) || defined (__nucleus__) \ + || defined (_WIN32) || defined (VMS) /* Version that does not use link. */ @@ -577,9 +564,7 @@ __gnat_try_lock (char *dir, char *file) int __gnat_get_maximum_file_name_length (void) { -#if defined (MSDOS) - return 8; -#elif defined (VMS) +#if defined (VMS) if (getenv ("GNAT$EXTENDED_FILE_SPECIFICATIONS")) return -1; else @@ -594,7 +579,7 @@ __gnat_get_maximum_file_name_length (voi int __gnat_get_file_names_case_sensitive (void) { -#if defined (__EMX__) || defined (MSDOS) || defined (VMS) || defined (WINNT) +#if defined (VMS) || defined (WINNT) return 0; #else return 1; @@ -604,11 +589,7 @@ __gnat_get_file_names_case_sensitive (vo char __gnat_get_default_identifier_character_set (void) { -#if defined (__EMX__) || defined (MSDOS) - return 'p'; -#else return '1'; -#endif } /* Return the current working directory. */ @@ -675,12 +656,7 @@ __gnat_get_executable_suffix_ptr (int *l void __gnat_get_debuggable_suffix_ptr (int *len, const char **value) { -#ifndef MSDOS *value = HOST_EXECUTABLE_SUFFIX; -#else - /* On DOS, the extensionless COFF file is what gdb likes. */ - *value = ""; -#endif if (*value == 0) *len = 0; @@ -859,7 +835,7 @@ __gnat_open_read (char *path, int fmode) return fd < 0 ? -1 : fd; } -#if defined (__EMX__) || defined (__MINGW32__) +#if defined (__MINGW32__) #define PERM (S_IREAD | S_IWRITE) #elif defined (VMS) /* Excerpt from DECC C RTL Reference Manual: @@ -1101,7 +1077,7 @@ __gnat_stat_to_attr (int fd, char* name, attr->executable = (!ret && (statbuf.st_mode & S_IXUSR)); #endif -#if !defined (__EMX__) && !defined (MSDOS) && (!defined (_WIN32) || defined (RTX)) +#if !defined (_WIN32) || defined (RTX) /* on Windows requires extra system call, see __gnat_file_time_name_attr */ if (ret != 0) { attr->timestamp = (OS_Time)-1; @@ -1342,13 +1318,7 @@ OS_Time __gnat_file_time_name_attr (char* name, struct file_attributes* attr) { if (attr->timestamp == (OS_Time)-2) { -#if defined (__EMX__) || defined (MSDOS) - int fd = open (name, O_RDONLY | O_BINARY); - time_t ret = __gnat_file_time_fd (fd); - close (fd); - attr->timestamp = (OS_Time)ret; - -#elif defined (_WIN32) && !defined (RTX) +#if defined (_WIN32) && !defined (RTX) time_t ret = -1; TCHAR wname[GNAT_MAX_PATH_LEN]; S2WSC (wname, name, GNAT_MAX_PATH_LEN); @@ -1383,74 +1353,7 @@ OS_Time __gnat_file_time_fd_attr (int fd, struct file_attributes* attr) { if (attr->timestamp == (OS_Time)-2) { - /* The following workaround code is due to the fact that under EMX and - DJGPP fstat attempts to convert time values to GMT rather than keep the - actual OS timestamp of the file. By using the OS2/DOS functions directly - the GNAT timestamp are independent of this behavior, which is desired to - facilitate the distribution of GNAT compiled libraries. */ - -#if defined (__EMX__) || defined (MSDOS) -#ifdef __EMX__ - - FILESTATUS fs; - int ret = DosQueryFileInfo (fd, 1, (unsigned char *) &fs, - sizeof (FILESTATUS)); - - unsigned file_year = fs.fdateLastWrite.year; - unsigned file_month = fs.fdateLastWrite.month; - unsigned file_day = fs.fdateLastWrite.day; - unsigned file_hour = fs.ftimeLastWrite.hours; - unsigned file_min = fs.ftimeLastWrite.minutes; - unsigned file_tsec = fs.ftimeLastWrite.twosecs; - -#else - struct ftime fs; - int ret = getftime (fd, &fs); - - unsigned file_year = fs.ft_year; - unsigned file_month = fs.ft_month; - unsigned file_day = fs.ft_day; - unsigned file_hour = fs.ft_hour; - unsigned file_min = fs.ft_min; - unsigned file_tsec = fs.ft_tsec; -#endif - - /* Calculate the seconds since epoch from the time components. First count - the whole days passed. The value for years returned by the DOS and OS2 - functions count years from 1980, so to compensate for the UNIX epoch which - begins in 1970 start with 10 years worth of days and add days for each - four year period since then. */ - - time_t tot_secs; - int cum_days[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; - int days_passed = 3652 + (file_year / 4) * 1461; - int years_since_leap = file_year % 4; - - if (years_since_leap == 1) - days_passed += 366; - else if (years_since_leap == 2) - days_passed += 731; - else if (years_since_leap == 3) - days_passed += 1096; - - if (file_year > 20) - days_passed -= 1; - - days_passed += cum_days[file_month - 1]; - if (years_since_leap == 0 && file_year != 20 && file_month > 2) - days_passed++; - - days_passed += file_day - 1; - - /* OK - have whole days. Multiply -- then add in other parts. */ - - tot_secs = days_passed * 86400; - tot_secs += file_hour * 3600; - tot_secs += file_min * 60; - tot_secs += file_tsec * 2; - attr->timestamp = (OS_Time) tot_secs; - -#elif defined (_WIN32) && !defined (RTX) +#if defined (_WIN32) && !defined (RTX) HANDLE h = (HANDLE) _get_osfhandle (fd); time_t ret = win32_filetime (h); attr->timestamp = (OS_Time) ret; @@ -1476,7 +1379,7 @@ __gnat_file_time_fd (int fd) void __gnat_set_file_time_name (char *name, time_t time_stamp) { -#if defined (__EMX__) || defined (MSDOS) || defined (__vxworks) +#if defined (__vxworks) /* Code to implement __gnat_set_file_time_name for these systems. */ @@ -1857,7 +1760,7 @@ __gnat_is_absolute_path (char *name, int #else return (length != 0) && (*name == '/' || *name == DIR_SEPARATOR -#if defined (__EMX__) || defined (MSDOS) || defined (WINNT) +#if defined (WINNT) || (length > 1 && ISALPHA (name[0]) && name[1] == ':') #endif ); @@ -2358,7 +2261,7 @@ __gnat_portable_spawn (char *args[]) #if defined (__vxworks) || defined(__nucleus__) || defined(RTX) return -1; -#elif defined (MSDOS) || defined (_WIN32) +#elif defined (_WIN32) /* args[0] must be quotes as it could contain a full pathname with spaces */ char *args_0 = args[0]; args[0] = (char *)xmalloc (strlen (args_0) + 3); @@ -2379,12 +2282,6 @@ __gnat_portable_spawn (char *args[]) #else -#ifdef __EMX__ - pid = spawnvp (P_NOWAIT, args[0], args); - if (pid == -1) - return -1; - -#else pid = fork (); if (pid < 0) return -1; @@ -2399,7 +2296,6 @@ __gnat_portable_spawn (char *args[]) _exit (1); #endif } -#endif /* The parent. */ finished = waitpid (pid, &status, 0); @@ -2649,19 +2545,6 @@ __gnat_portable_no_block_spawn (char *ar #if defined (__vxworks) || defined (__nucleus__) || defined (RTX) return -1; -#elif defined (__EMX__) || defined (MSDOS) - - /* ??? For PC machines I (Franco) don't know the system calls to implement - this routine. So I'll fake it as follows. This routine will behave - exactly like the blocking portable_spawn and will systematically return - a pid of 0 unless the spawned task did not complete successfully, in - which case we return a pid of -1. To synchronize with this the - portable_wait below systematically returns a pid of 0 and reports that - the subprocess terminated successfully. */ - - if (spawnvp (P_WAIT, args[0], args) != 0) - return -1; - #elif defined (_WIN32) HANDLE h = NULL; @@ -2703,16 +2586,12 @@ __gnat_portable_wait (int *process_statu int pid = 0; #if defined (__vxworks) || defined (__nucleus__) || defined (RTX) - /* Not sure what to do here, so do same as __EMX__ case, i.e., nothing but - return zero. */ + /* Not sure what to do here, so do nothing but return zero. */ #elif defined (_WIN32) pid = win32_wait (&status); -#elif defined (__EMX__) || defined (MSDOS) - /* ??? See corresponding comment in portable_no_block_spawn. */ - #else pid = waitpid (-1, &status, 0); @@ -3458,14 +3337,6 @@ __gnat_adjust_os_resource_limits (void) #endif -/* For EMX, we cannot include dummy in libgcc, since it is too difficult - to coordinate this with the EMX distribution. Consequently, we put the - definition of dummy which is used for exception handling, here. */ - -#if defined (__EMX__) -void __dummy () {} -#endif - #if defined (__mips_vxworks) int _flush_cache() Index: cstreams.c =================================================================== --- cstreams.c (revision 161073) +++ cstreams.c (working copy) @@ -6,7 +6,7 @@ * * * Auxiliary C functions for Interfaces.C.Streams * * * - * Copyright (C) 1992-2009, Free Software Foundation, Inc. * + * Copyright (C) 1992-2010, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -98,15 +98,6 @@ __gnat_is_regular_file_fd (int fd) int ret; GNAT_STRUCT_STAT statbuf; -#ifdef __EMX__ - /* Programs using screen I/O may need to reset the FPU after - initialization of screen-handling related DLL's, so force - DLL initialization by doing a null-write and then reset the FPU */ - - DosWrite (0, &ret, 0, &ret); - __gnat_init_float(); -#endif - ret = GNAT_FSTAT (fd, &statbuf); return (!ret && S_ISREG (statbuf.st_mode)); } @@ -166,9 +157,9 @@ __gnat_full_name (char *nam, char *buffe else buffer[0] = '\0'; -#elif defined(__EMX__) || defined (__MINGW32__) - /* If this is a device file return it as is; under Windows NT and - OS/2 a device file end with ":". */ +#elif defined (__MINGW32__) + /* If this is a device file return it as is; + under Windows NT a device file ends with ":". */ if (nam[strlen (nam) - 1] == ':') strcpy (buffer, nam); else @@ -182,9 +173,6 @@ __gnat_full_name (char *nam, char *buffe *p = '\\'; } -#elif defined (MSDOS) - _fixpath (nam, buffer); - #elif defined (sgi) || defined (__FreeBSD__) /* Use realpath function which resolves links and references to . and .. Index: osint.ads =================================================================== --- osint.ads (revision 161183) +++ osint.ads (working copy) @@ -84,7 +84,7 @@ package Osint is Get_File_Names_Case_Sensitive /= 0; -- Set to indicate whether the operating system convention is for file -- names to be case sensitive (e.g., in Unix, set True), or non case - -- sensitive (e.g., in OS/2, set False). + -- sensitive (e.g., in Windows, set False). procedure Canonical_Case_File_Name (S : in out String); -- Given a file name, converts it to canonical case form. For systems Index: s-fileio.adb =================================================================== --- s-fileio.adb (revision 161073) +++ s-fileio.adb (working copy) @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -104,7 +104,7 @@ package body System.File_IO is File_Names_Case_Sensitive : constant Boolean := Get_Case_Sensitive /= 0; -- Set to indicate whether the operating system convention is for file -- names to be case sensitive (e.g., in Unix, set True), or non case - -- sensitive (e.g., in OS/2, set False). + -- sensitive (e.g., in Windows, set False). ----------------------- -- Local Subprograms --