aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/adaint.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/adaint.c')
-rw-r--r--gcc/ada/adaint.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
index 26c6289..adc702a 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -1240,6 +1240,23 @@ __gnat_tmp_name (char *tmp_filename)
sprintf (tmp_filename, "%s/gnat-XXXXXX", tmpdir);
close (mkstemp(tmp_filename));
+#elif defined (__vxworks) && !(defined (__RTP__) || defined (VTHREADS))
+ int index;
+ char * pos;
+ ushort_t t;
+ static ushort_t seed = 0; /* used to generate unique name */
+
+ /* generate unique name */
+ strcpy (tmp_filename, "tmp");
+
+ /* fill up the name buffer from the last position */
+ index = 5;
+ pos = tmp_filename + strlen (tmp_filename) + index;
+ *pos = '\0';
+
+ seed++;
+ for (t = seed; 0 <= --index; t >>= 3)
+ *--pos = '0' + (t & 07);
#else
tmpnam (tmp_filename);
#endif