aboutsummaryrefslogtreecommitdiff
path: root/gas/config/te-vms.h
blob: 7c352ac1d9fc9bf81fd79ba86859fe77741a6766 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#define TE_VMS
#include "obj-format.h"

extern int vms_file_stats_name (const char *, long long *, long *, char *, int *);

/* VMS debugger expects a separator.  */
#define DWARF2_DIR_SHOULD_END_WITH_SEPARATOR 1

/* VMS debugger needs the file timestamp.  */
#define DWARF2_FILE_TIME_NAME(FILENAME,DIRNAME)                       \
 ({                                                                   \
   long long cdt;                                                     \
   char *filename = (char *) alloca (strlen (FILENAME) + strlen (DIRNAME) + 1);\
   strcpy (filename, DIRNAME);                                        \
   strcat (filename, FILENAME);                                       \
   ((vms_file_stats_name (filename, &cdt, 0, 0, 0) == 0) ? cdt : 0);  \
 })

/* VMS debugger needs the file size.  */
#define DWARF2_FILE_SIZE_NAME(FILENAME,DIRNAME)                       \
 ({                                                                   \
   long siz;                                                          \
   char *filename = (char *) alloca (strlen (FILENAME) + strlen (DIRNAME) + 1);\
   strcpy (filename, DIRNAME);                                        \
   strcat (filename, FILENAME);                                       \
   ((vms_file_stats_name (filename, 0, &siz, 0, 0) == 0) ? siz : 0);  \
 })

/* VMS debugger needs the filename with version appended.  */
/* Longest filename on VMS is 255 characters. Largest version is 32768.  */
#define DWARF2_FILE_NAME(FILENAME,DIRNAME)                            \
 ({                                                                   \
   int ver;                                                           \
   char buff [255 + 7];                                               \
   char *filename = (char *) alloca (strlen (FILENAME) + strlen (DIRNAME) + 1);\
   strcpy (filename, DIRNAME);                                        \
   strcat (filename, FILENAME);                                       \
   vms_file_stats_name (filename, 0, 0, 0, &ver);                     \
   snprintf (buff, 255 + 7, "%s;%d", FILENAME, ver);                  \
   buff;                                                              \
 })