one week to gdb-7.6 release?

Eli Zaretskii eliz@gnu.org
Tue Apr 2 18:05:00 GMT 2013


> Date: Fri, 29 Mar 2013 08:56:41 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: gdb-patches@sourceware.org, palves@redhat.com, jan.kratochvil@redhat.com, ralf.corsepius@rtems.org, vapier@gentoo.org, joel.sherrill@oarcorp.com
> 
> > Date: Thu, 28 Mar 2013 18:59:24 -0700
> > From: Joel Brobecker <brobecker@adacore.com>
> > Cc: gdb-patches@sourceware.org, palves@redhat.com,
> > 	jan.kratochvil@redhat.com, ralf.corsepius@rtems.org,
> > 	vapier@gentoo.org, joel.sherrill@oarcorp.com
> > 
> > > > The
> > > > code in main.c already does
> > > > 
> > > >   #ifdef __MINGW32__
> > > >     /* On Windows, argv[0] is not necessarily set to absolute form when
> > > >        GDB is found along PATH, without which relocation doesn't work.  */
> > > >     gdb_program_name = windows_get_absolute_argv0 (argv[0]);
> > > >   #else
> > > >     gdb_program_name = xstrdup (argv[0]);
> > > >   #endif
> > > > 
> > > > Is moving that to posix-hdep.c just to avoid an ifdef?
> > > 
> > > The main purpose is to move the code away out of windows-nat, which
> > > is only linked in native debuggers, not cross ones - so that building
> > > a cross debugger hosted on Windows will work again. Basically, your
> > > new function is really only dependent on the host, whereas the -nat
> > > file makes the assumption that host & target are Windows.
> > 
> > I have added this item to the TODO list for the 7.6 release, so as not
> > to forget.
> 
> Thanks.
> 
> > I was wondering if this discussion was stalled, or if it was just
> > a matter of not finding the time to do the implementation.
> 
> The latter.
> 
> > I could possibly take care of it tomorrow if you'd like.
> 
> If you have time, it's fine with me.  Failing that, I will submit the
> changes in a few days.

Here they are.  This is for the trunk; it undoes the previous commit
and moves the code to mingw-hdep.c.

OK to commit, including the branch (which will get a different change,
since there's no need to remove the previous commit there)?

2013-04-02  Eli Zaretskii  <eliz@gnu.org>

	* windows-nat.c (windows_get_absolute_argv0): Move from here...
	* mingw-hdep.c (windows_get_absolute_argv0): ...to here.
	Include main.h.

	* windows-nat.h (windows_get_absolute_argv0): Move prototype from
	here...
	* main.h (windows_get_absolute_argv0): ...to here

--- gdb/windows-nat.c~1	2013-03-21 13:05:21.642985800 +0200
+++ gdb/windows-nat.c	2013-04-02 20:04:56.438612100 +0300
@@ -597,18 +597,6 @@ failed:
   return 0;		/* failure */
 }
 
-/* Return an absolute file name of the running GDB, if possible, or
-   ARGV0 if not.  The return value is in malloc'ed storage.  */
-char *
-windows_get_absolute_argv0 (const char *argv0)
-{
-  char full_name[PATH_MAX];
-
-  if (GetModuleFileName (NULL, full_name, PATH_MAX))
-    return xstrdup (full_name);
-  return xstrdup (argv0);
-}
-
 /* Encapsulate the information required in a call to
    symbol_file_add_args.  */
 struct safe_symbol_file_add_args

--- gdb/windows-nat.h~1	2013-03-21 13:05:19.068969300 +0200
+++ gdb/windows-nat.h	2013-04-02 20:05:15.626735100 +0300
@@ -28,9 +28,5 @@ typedef int (segment_register_p_ftype) (
    whether a given register is a segment register or not.  */
 extern void windows_set_segment_register_p (segment_register_p_ftype *fun);
 
-/* Return argv[0] in absolute form, if possible, or ARGV0 if not.  The
-   return value is in malloc'ed storage.  */
-extern char *windows_get_absolute_argv0 (const char *argv0);
-
 #endif
 

--- gdb/mingw-hdep.c~1	2013-01-01 08:32:47.000000000 +0200
+++ gdb/mingw-hdep.c	2013-04-02 20:26:57.231081900 +0300
@@ -18,6 +18,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
+#include "main.h"
 #include "serial.h"
 #include "event-loop.h"
 
@@ -80,6 +81,19 @@ safe_strerror (int errnum)
   return buffer;
 }
 
+/* Return an absolute file name of the running GDB, if possible, or
+   ARGV0 if not.  The return value is in malloc'ed storage.  */
+
+char *
+windows_get_absolute_argv0 (const char *argv0)
+{
+  char full_name[PATH_MAX];
+
+  if (GetModuleFileName (NULL, full_name, PATH_MAX))
+    return xstrdup (full_name);
+  return xstrdup (argv0);
+}
+
 /* Wrapper for select.  On Windows systems, where the select interface
    only works for sockets, this uses the GDB serial abstraction to
    handle sockets, consoles, pipes, and serial ports.

--- gdb/main.c~2	2013-03-21 13:11:43.279038500 +0200
+++ gdb/main.c	2013-04-02 20:07:51.534134500 +0300
@@ -44,9 +44,6 @@
 #include "auto-load.h"
 
 #include "filenames.h"
-#ifdef __MINGW32__
-# include "windows-nat.h"
-#endif
 
 #include "version.h"
 

--- gdb/main.h~1	2013-01-01 08:32:47.000000000 +0200
+++ gdb/main.h	2013-04-02 20:25:41.837731800 +0300
@@ -36,4 +36,10 @@ extern int return_child_result_value;
 extern int batch_silent;
 extern int batch_flag;
 
+/* From mingw-hdep.c, used by main.c.  */
+
+/* Return argv[0] in absolute form, if possible, or ARGV0 if not.  The
+   return value is in malloc'ed storage.  */
+extern char *windows_get_absolute_argv0 (const char *argv0);
+
 #endif



More information about the Gdb-patches mailing list