diff options
author | Andris Pavenis <andris.pavenis@iki.fi> | 2016-10-11 21:12:52 +0300 |
---|---|---|
committer | Andris Pavenis <andris@gcc.gnu.org> | 2016-10-11 21:12:52 +0300 |
commit | 4f100fd7dbccf6d55fc0821038b97f54ff97524f (patch) | |
tree | 2cb06a0014c552f6834280a5627431cb6c2877ca /gcc/ada/sysdep.c | |
parent | a32fc2165b93b4ff31fb35d17afd6701de35721e (diff) | |
download | gcc-4f100fd7dbccf6d55fc0821038b97f54ff97524f.zip gcc-4f100fd7dbccf6d55fc0821038b97f54ff97524f.tar.gz gcc-4f100fd7dbccf6d55fc0821038b97f54ff97524f.tar.bz2 |
ctrl_c.c: Do not use macro SA_RESTART for DJGPP.
2016-10-11 Andris Pavenis <andris.pavenis@iki.fi>
* ctrl_c.c: Do not use macro SA_RESTART for DJGPP.
* gsocket.h: Do not support sockets for DJGPP.
* init.c (__gnat_install_handler): Implememt for DJGPP
* sysdep.c: Include <io.h> for DJGPP
(_setmode): Define to setmode for DJGPP
(__gnat_set_mode): Add implementation for DJGPP
(__gnat_localtime_tzoff): Use localtime_r for DJGPP
* terminals.c: Add DJGPP to list of unsupported platforms.
* env.c (__gnat_clearenv): use _gnat_unsetenv on all entries for DJGPP
From-SVN: r240997
Diffstat (limited to 'gcc/ada/sysdep.c')
-rw-r--r-- | gcc/ada/sysdep.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/gcc/ada/sysdep.c b/gcc/ada/sysdep.c index 465007e..5390209 100644 --- a/gcc/ada/sysdep.c +++ b/gcc/ada/sysdep.c @@ -126,7 +126,7 @@ extern struct tm *localtime_r(const time_t *, struct tm *); */ -#if defined (WINNT) || defined (__CYGWIN__) +#if defined (WINNT) || defined (__CYGWIN__) || defined(__DJGPP__) const char __gnat_text_translation_required = 1; @@ -137,6 +137,11 @@ const char __gnat_text_translation_required = 1; #define WIN_SETMODE _setmode #endif +#if defined(__DJGPP__) +#include <io.h> +#define _setmode setmode +#endif /* __DJGPP__ */ + void __gnat_set_binary_mode (int handle) { @@ -149,6 +154,30 @@ __gnat_set_text_mode (int handle) WIN_SETMODE (handle, O_TEXT); } +#ifdef __DJGPP__ +void +__gnat_set_mode (int handle, int mode) +{ + /* the values here must be synchronized with + System.File_Control_Block.Content_Encodding: + + None = 0 + Default_Text = 1 + Text = 2 + U8text = 3 + Wtext = 4 + U16text = 5 */ + + switch (mode) { + case 0 : setmode(handle, O_BINARY); break; + case 1 : setmode(handle, O_TEXT); break; + case 2 : setmode(handle, O_TEXT); break; + case 3 : setmode(handle, O_TEXT); break; + case 4 : setmode(handle, O_BINARY); break; + case 5 : setmode(handle, O_BINARY); break; + } +} +#else void __gnat_set_mode (int handle, int mode) { @@ -171,6 +200,7 @@ __gnat_set_mode (int handle, int mode) case 5 : WIN_SETMODE (handle, _O_U16TEXT); break; } } +#endif #ifdef __CYGWIN__ @@ -795,7 +825,8 @@ __gnat_localtime_tzoff (const time_t *timer ATTRIBUTE_UNUSED, struct tm */ #elif defined (__APPLE__) || defined (__FreeBSD__) || defined (__linux__) \ - || defined (__GLIBC__) || defined (__DragonFly__) || defined (__OpenBSD__) + || defined (__GLIBC__) || defined (__DragonFly__) || defined (__OpenBSD__) \ + || defined(__DJGPP__) { localtime_r (timer, &tp); *off = tp.tm_gmtoff; |