Re: one week to gdb-7.6 release?

Eli Zaretskii
2013-04-05T07:21:42Z

> Date: Tue, 02 Apr 2013 20:33:00 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: gdb-patches@sourceware.org, palves@redhat.com, jan.kratochvil@redhat.com

Ping! OK to commit, mainline and 7.6 branch?

(Just 3 days have passed, but we have a release looming...)

> > 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
>