[Fwd:,gdb:,FTBFS,on,hurd-i386]

Message ID 1514054469.7063.134.camel@gmail.com
State New, archived
Headers

Commit Message

Svante Signell Dec. 23, 2017, 6:41 p.m. UTC
  Hello,

These patches was submitted to Debian November 13 2017. Nothing has
happened so far, so maybe upstream would be interested to consider the
patches for next release.

Thanks!
Source: gdb
Version: 8.0-1
Severity: important
Tags: patch
User: debian-hurd@lists.debian.org
Usertags: hurd, experimental

Hi,

gdb FTBFS on GNU/Hurd due to three reasons:

- Usage of PATH_MAX in gdb/remote.c

- Recent changes in Hurd failing the build of gdb/gnu-nat.c

- A name clash of struct thread_info and the kernel function thread_info()
included in gdb/thread.c and gdb/python/py-record-btrace.c.

Include paths:
1) defs.h: #include "gdbarch.h": struct thread_info

2) defs.h: #include "nm.h":#include <mach.h>:#include <mach/mach_interface.h>
where the function thread_info() is defined:

extern kern_return_t thread_info
(
 mach_port_t target_thread,
 int flavor,
 thread_info_t thread_info_out,
 mach_msg_type_number_t *thread_info_outCnt
);

The attached patches fixes these issues:
gdb-PATH_MAX.patch
gnu-nat.c.patch
struct-thread_info.patch

Thanks :)
  

Comments

Hector Oron Dec. 26, 2017, 8:40 a.m. UTC | #1
Hello Svante,

On Sat, Dec 23, 2017 at 7:41 PM, Svante Signell
<svante.signell@gmail.com> wrote:
> Hello,
>
> These patches was submitted to Debian November 13 2017. Nothing has
> happened so far, so maybe upstream would be interested to consider the
> patches for next release.

I would like to have them applied in Debian package for next release,
however it is taking more time than I thought, then I am going on
vacations. If you are able to upload to Debian, feel free to NMU the
package, otherwise, I'll try to have a look in a couple weeks.

> Thanks!
>
> ---------- Forwarded message ----------
> From: Svante Signell <svante.signell@gmail.com>
> To: Debian Bug Tracking System <submit@bugs.debian.org>
> Cc:
> Bcc:
> Date: Mon, 13 Nov 2017 04:31:34 +0100
> Subject: gdb: FTBFS on hurd-i386
> Source: gdb
> Version: 8.0-1
> Severity: important
> Tags: patch
> User: debian-hurd@lists.debian.org
> Usertags: hurd, experimental
>
> Hi,
>
> gdb FTBFS on GNU/Hurd due to three reasons:
>
> - Usage of PATH_MAX in gdb/remote.c
>
> - Recent changes in Hurd failing the build of gdb/gnu-nat.c
>
> - A name clash of struct thread_info and the kernel function thread_info()
> included in gdb/thread.c and gdb/python/py-record-btrace.c.
>
> Include paths:
> 1) defs.h: #include "gdbarch.h": struct thread_info
>
> 2) defs.h: #include "nm.h":#include <mach.h>:#include <mach/mach_interface.h>
> where the function thread_info() is defined:
>
> extern kern_return_t thread_info
> (
>  mach_port_t target_thread,
>  int flavor,
>  thread_info_t thread_info_out,
>  mach_msg_type_number_t *thread_info_outCnt
> );
>
> The attached patches fixes these issues:
> gdb-PATH_MAX.patch
> gnu-nat.c.patch
> struct-thread_info.patch
>
> Thanks :)
>
  
Svante Signell Dec. 27, 2017, 10:36 p.m. UTC | #2
On Tue, 2017-12-26 at 09:40 +0100, Héctor Orón Martínez wrote:
> Hello Svante,
> 
> On Sat, Dec 23, 2017 at 7:41 PM, Svante Signell
> <svante.signell@gmail.com> wrote:
> > Hello,
> > 
> > These patches was submitted to Debian November 13 2017. Nothing has
> > happened so far, so maybe upstream would be interested to consider
> > the
> > patches for next release.
> 
> I would like to have them applied in Debian package for next release,
> however it is taking more time than I thought, then I am going on
> vacations. If you are able to upload to Debian, feel free to NMU the
> package, otherwise, I'll try to have a look in a couple weeks.

Hi again,

Unfortunately I'm not authorized to NMU that package. However, the
reason for submitting the patches upstream is that they should be
applied there. In the meanwhile we could create a Debian package of
8.0.1 (or later). If you don't have time maybe Samuel could help out
here?

Thanks for your reply anyway!
  
Svante Signell Jan. 7, 2018, 11:10 p.m. UTC | #3
Ping

On Wed, 2017-12-27 at 23:36 +0100, Svante Signell wrote:
> On Tue, 2017-12-26 at 09:40 +0100, Héctor Orón Martínez wrote:
> > Hello Svante,
> > 
> > On Sat, Dec 23, 2017 at 7:41 PM, Svante Signell
> > <svante.signell@gmail.com> wrote:
> > > Hello,
> > > 
> > > These patches was submitted to Debian November 13 2017. Nothing has
> > > happened so far, so maybe upstream would be interested to consider
> > > the
> > > patches for next release.
> > 
> > I would like to have them applied in Debian package for next release,
> > however it is taking more time than I thought, then I am going on
> > vacations. If you are able to upload to Debian, feel free to NMU the
> > package, otherwise, I'll try to have a look in a couple weeks.
> 
> Hi again,
> 
> Unfortunately I'm not authorized to NMU that package. However, the
> reason for submitting the patches upstream is that they should be
> applied there. In the meanwhile we could create a Debian package of
> 8.0.1 (or later). If you don't have time maybe Samuel could help out
> here?
> 
> Thanks for your reply anyway!
  

Patch

Index: gdb-8.0/gdb/thread.c
===================================================================
--- gdb-8.0.orig/gdb/thread.c
+++ gdb-8.0/gdb/thread.c
@@ -76,21 +76,21 @@  static void restore_current_thread (ptid
 class scoped_inc_dec_ref
 {
 public:
-  explicit scoped_inc_dec_ref (const std::vector<thread_info *> &thrds)
+  explicit scoped_inc_dec_ref (const std::vector<struct thread_info *> &thrds)
     : m_thrds (thrds)
   {
-    for (thread_info *thr : m_thrds)
+    for (struct thread_info *thr : m_thrds)
       thr->incref ();
   }
 
   ~scoped_inc_dec_ref ()
   {
-    for (thread_info *thr : m_thrds)
+    for (struct thread_info *thr : m_thrds)
       thr->decref ();
   }
 
 private:
-  const std::vector<thread_info *> &m_thrds;
+  const std::vector<struct thread_info *> &m_thrds;
 };
 
 
@@ -207,7 +207,7 @@  clear_thread_inferior_resources (struct
 /* Set the TP's state as exited.  */
 
 static void
-set_thread_exited (thread_info *tp, int silent)
+set_thread_exited (struct thread_info *tp, int silent)
 {
   /* Dead threads don't need to step-over.  Remove from queue.  */
   if (tp->step_over_next != NULL)
@@ -254,7 +254,7 @@  init_thread_list (void)
 static struct thread_info *
 new_thread (struct inferior *inf, ptid_t ptid)
 {
-  thread_info *tp = new thread_info (inf, ptid);
+  struct thread_info *tp = new struct thread_info (inf, ptid);
 
   if (thread_list == NULL)
     thread_list = tp;
@@ -1574,7 +1574,7 @@  restore_selected_frame (struct frame_id
 
 struct current_thread_cleanup
 {
-  thread_info *thread;
+  struct thread_info *thread;
   struct frame_id selected_frame_id;
   int selected_frame_level;
   int was_stopped;
@@ -1716,7 +1716,7 @@  static bool tp_array_compar_ascending;
    order is determined by TP_ARRAY_COMPAR_ASCENDING.  */
 
 static bool
-tp_array_compar (const thread_info *a, const thread_info *b)
+tp_array_compar (const struct thread_info *a, const struct thread_info *b)
 {
   if (a->inf->num != b->inf->num)
     {
@@ -1774,11 +1774,11 @@  thread_apply_all_command (char *cmd, int
 	 thread, in case the command is one that wipes threads.  E.g.,
 	 detach, kill, disconnect, etc., or even normally continuing
 	 over an inferior or thread exit.  */
-      std::vector<thread_info *> thr_list_cpy;
+      std::vector<struct thread_info *> thr_list_cpy;
       thr_list_cpy.reserve (tc);
 
       {
-	thread_info *tp;
+	struct thread_info *tp;
 
 	ALL_NON_EXITED_THREADS (tp)
 	  {
@@ -1794,7 +1794,7 @@  thread_apply_all_command (char *cmd, int
 
       std::sort (thr_list_cpy.begin (), thr_list_cpy.end (), tp_array_compar);
 
-      for (thread_info *thr : thr_list_cpy)
+      for (struct thread_info *thr : thr_list_cpy)
 	if (thread_alive (thr))
 	  {
 	    switch_to_thread (thr->ptid);
Index: gdb-8.0/gdb/python/py-record-btrace.c
===================================================================
--- gdb-8.0.orig/gdb/python/py-record-btrace.c
+++ gdb-8.0/gdb/python/py-record-btrace.c
@@ -71,7 +71,7 @@  btrace_insn_from_recpy_insn (const PyObj
 {
   const btrace_insn *insn;
   const recpy_element_object *obj;
-  thread_info *tinfo;
+  struct thread_info *tinfo;
   btrace_insn_iterator iter;
 
   if (Py_TYPE (pyobject) != &recpy_insn_type)
@@ -114,7 +114,7 @@  btrace_func_from_recpy_func (const PyObj
 {
   const btrace_function *func;
   const recpy_element_object *obj;
-  thread_info *tinfo;
+  struct thread_info *tinfo;
   btrace_call_iterator iter;
 
   if (Py_TYPE (pyobject) != &recpy_func_type)
@@ -152,7 +152,7 @@  btrace_func_from_recpy_func (const PyObj
    gdb.RecordInstruction or gdb.RecordGap object for it accordingly.  */
 
 static PyObject *
-btpy_insn_or_gap_new (const thread_info *tinfo, Py_ssize_t number)
+btpy_insn_or_gap_new (const struct thread_info *tinfo, Py_ssize_t number)
 {
   btrace_insn_iterator iter;
   int err_code;
@@ -338,7 +338,7 @@  PyObject *
 recpy_bt_func_level (PyObject *self, void *closure)
 {
   const btrace_function * const func = btrace_func_from_recpy_func (self);
-  thread_info *tinfo;
+  struct thread_info *tinfo;
 
   if (func == NULL)
     return NULL;