diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3211a43164..fe21356200 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2013-03-21 Yao Qi + + * ctf.c: Include "gdb_stat.h". + [USE_WIN32API]: New macro 'mkdir'. + (ctf_start): Use permission bits macros if they are defined. + 2013-03-20 Keith Seitz * breakpoint.h (struct breakpoint): Add comment to diff --git a/gdb/ctf.c b/gdb/ctf.c index 117f72a770..6b55986f6b 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 @@ -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));