aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2016-11-17 14:43:02 +0000
committerPedro Alves <palves@redhat.com>2016-11-17 14:43:02 +0000
commit7c2683c40f745397e80b6df4edf8265ecb6fd194 (patch)
tree7abbd18b23f158127aabd12aef9fae11c166770d
parent200069c74f42ffcc726b9995a46971a86286a256 (diff)
downloadgdb-7c2683c40f745397e80b6df4edf8265ecb6fd194.zip
gdb-7c2683c40f745397e80b6df4edf8265ecb6fd194.tar.gz
gdb-7c2683c40f745397e80b6df4edf8265ecb6fd194.tar.bz2
gdb/ctf.c: Get rid of mkdir redefinition
Making GDB use gnulib's C++ namespace support shows this build error on mingw: ../../src/gdb/ctf.c: In function 'void ctf_start(trace_file_writer*, const char*)': ../../src/gdb/ctf.c:309:46: error: no match for call to '(const gnulib::_gl_mkdir_wrapper) (const char*&)' #define mkdir(pathname, mode) mkdir (pathname) ^ ../../src/gdb/ctf.c:327:15: note: in expansion of macro 'mkdir' if (gnulib::mkdir (dirname, hmode) && errno != EEXIST) ^ ../../src/gdb/ctf.c:309:46: note: candidate: gnulib::_gl_mkdir_wrapper::type {aka int (*)(const char*, short unsigned int)} <conversion> #define mkdir(pathname, mode) mkdir (pathname) ^ ../../src/gdb/ctf.c:327:15: note: in expansion of macro 'mkdir' if (gnulib::mkdir (dirname, hmode) && errno != EEXIST) ^ ../../src/gdb/ctf.c:309:46: note: candidate expects 3 arguments, 2 provided #define mkdir(pathname, mode) mkdir (pathname) ^ ../../src/gdb/ctf.c:327:15: note: in expansion of macro 'mkdir' if (gnulib::mkdir (dirname, hmode) && errno != EEXIST) ^ The problem is the '#define mkdir ...' Fortunately, we can just remove it, since gnulib's sys/stat.h replacement already takes care of the Windows mkdir prototype quirk: ~~~ /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes <direct.h> and <io.h>, which are included above. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } ~~~ That's sys_stat.in.h, part of the sys_stat module, which we explictly pull in nowadays. It wasn't being pulled when this macro was added: https://sourceware.org/ml/gdb-patches/2013-03/msg00736.html That patch was partially reverted meanwhile here: https://sourceware.org/ml/gdb-patches/2013-12/msg00023.html But the mkdir macro had been left behind unnoticed. gdb/ChangeLog: 2016-11-17 Pedro Alves <palves@redhat.com> * ctf.c [USE_WIN32API] (mkdir): Delete.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/ctf.c5
2 files changed, 4 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c4dccb8..aa454b8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2016-11-17 Pedro Alves <palves@redhat.com>
+
+ * ctf.c [USE_WIN32API] (mkdir): Delete.
+
2016-11-16 Pedro Alves <palves@redhat.com>
* ada-lang.c (ada_value_primitive_packed_val): Use unique_ptr and
diff --git a/gdb/ctf.c b/gdb/ctf.c
index 7daa47e..2091b8d 100644
--- a/gdb/ctf.c
+++ b/gdb/ctf.c
@@ -304,11 +304,6 @@ ctf_target_save (struct trace_file_writer *self,
return 0;
}
-#ifdef USE_WIN32API
-#undef mkdir
-#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. */