diff options
Diffstat (limited to 'gdb/ctf.c')
-rw-r--r-- | gdb/ctf.c | 20 |
1 files changed, 18 insertions, 2 deletions
@@ -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)); |