aboutsummaryrefslogtreecommitdiff
path: root/gdb/ctf.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/ctf.c')
-rw-r--r--gdb/ctf.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/gdb/ctf.c b/gdb/ctf.c
index 117f72a..6b55986f 100644
--- a/gdb/ctf.c
+++ b/gdb/ctf.c
@@ -23,6 +23,7 @@
#include "ctf.h"
#include "tracepoint.h"
#include "regcache.h"
+#include "gdb_stat.h"
#include <ctype.h>
@@ -270,6 +271,10 @@ ctf_target_save (struct trace_file_writer *self,
return 0;
}
+#ifdef USE_WIN32API
+#define mkdir(pathname, mode) _mkdir (pathname)
+#endif
+
/* This is the implementation of trace_file_write_ops method
start. It creates the directory DIRNAME, metadata and datastream
in the directory. */
@@ -282,10 +287,21 @@ ctf_start (struct trace_file_writer *self, const char *dirname)
struct ctf_trace_file_writer *writer
= (struct ctf_trace_file_writer *) self;
int i;
+ mode_t hmode = S_IRUSR | S_IWUSR | S_IXUSR
+#ifdef S_IRGRP
+ | S_IRGRP
+#endif
+#ifdef S_IXGRP
+ | S_IXGRP
+#endif
+ | S_IROTH /* Defined in common/gdb_stat.h if not defined. */
+#ifdef S_IXOTH
+ | S_IXOTH
+#endif
+ ;
/* Create DIRNAME. */
- if (mkdir (dirname, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
- && errno != EEXIST)
+ if (mkdir (dirname, hmode) && errno != EEXIST)
error (_("Unable to open directory '%s' for saving trace data (%s)"),
dirname, safe_strerror (errno));