Please define thread_info as struct thread_info (and other stuff)

Message ID 87r2e6pp9c.fsf@tromey.com
State New, archived
Headers

Commit Message

Tom Tromey Dec. 24, 2018, 9:51 p.m. UTC
  >>>>> "Tom" == Tom Tromey <tom@tromey.com> writes:

Tom> I took a quick look at it and one question I have is whether
Tom> nm-i386gnu.h really needs to include any of the headers it does.  defs.h
Tom> already includes unistd.h, and regcache.h should probably not be needed;
Tom> and removing the mach includes would at least reduce the number of spots
Tom> needing the "struct".  Could you try removing these lines?

Tom> Also I happened to notice that file declares gnu_target_pid_to_str --
Tom> but I didn't see a definition.  So perhaps that could be removed as
Tom> well.

As John pointed out, the file seems not to be needed at all.
Could you try this patch?  I have no way to test it.

Tom

commit 86d2fb04c1890b381a24d3508087d11cc88388c8
Author: Tom Tromey <tom@tromey.com>
Date:   Mon Dec 24 14:49:27 2018 -0700

    Attempt to fix Hurd build
    
    gdb/ChangeLog
    2018-12-24  Tom Tromey  <tom@tromey.com>
    
            * gnu-nat.c (THREAD_STATE_FLAVOR, THREAD_STATE_SIZE)
            (THREAD_STATE_SET_TRACED, THREAD_STATE_CLEAR_TRACED): Move
            definitions from nm-i386gnu.h.
            * configure.nat: Don't reference nm-i386gnu.h.
            * config/i386/nm-i386gnu.h: Remove.
  

Comments

Svante Signell Jan. 12, 2019, 6:37 p.m. UTC | #1
Hi,

Just to make clear that the patch below is not enough to make gdb building on
GNU/Hurd. It helps but there are more issues. I'll continue to try to make gdb
building when time permits.

Thanks!

On Mon, 2018-12-24 at 14:51 -0700, Tom Tromey wrote:
> > > > > > "Tom" == Tom Tromey <tom@tromey.com> writes:
> 
> Tom> I took a quick look at it and one question I have is whether
> Tom> nm-i386gnu.h really needs to include any of the headers it does.  defs.h
> Tom> already includes unistd.h, and regcache.h should probably not be needed;
> Tom> and removing the mach includes would at least reduce the number of spots
> Tom> needing the "struct".  Could you try removing these lines?
> 
> Tom> Also I happened to notice that file declares gnu_target_pid_to_str --
> Tom> but I didn't see a definition.  So perhaps that could be removed as
> Tom> well.
> 
> As John pointed out, the file seems not to be needed at all.
> Could you try this patch?  I have no way to test it.
> 
> Tom
> 
> commit 86d2fb04c1890b381a24d3508087d11cc88388c8
> Author: Tom Tromey <tom@tromey.com>
> Date:   Mon Dec 24 14:49:27 2018 -0700
> 
>     Attempt to fix Hurd build
>     
>     gdb/ChangeLog
>     2018-12-24  Tom Tromey  <tom@tromey.com>
>     
>             * gnu-nat.c (THREAD_STATE_FLAVOR, THREAD_STATE_SIZE)
>             (THREAD_STATE_SET_TRACED, THREAD_STATE_CLEAR_TRACED): Move
>             definitions from nm-i386gnu.h.
>             * configure.nat: Don't reference nm-i386gnu.h.
>             * config/i386/nm-i386gnu.h: Remove.
> 
> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
> index 21731be98d..bc408fe748 100644
> --- a/gdb/ChangeLog
> +++ b/gdb/ChangeLog
> @@ -1,3 +1,11 @@
> +2018-12-24  Tom Tromey  <tom@tromey.com>
> +
> +	* gnu-nat.c (THREAD_STATE_FLAVOR, THREAD_STATE_SIZE)
> +	(THREAD_STATE_SET_TRACED, THREAD_STATE_CLEAR_TRACED): Move
> +	definitions from nm-i386gnu.h.
> +	* configure.nat: Don't reference nm-i386gnu.h.
> +	* config/i386/nm-i386gnu.h: Remove.
> +
>  2018-12-18  Tom Tromey  <tom@tromey.com>
>  
>  	* dwarf2read.c (dwarf2_find_containing_comp_unit): Don't take
> diff --git a/gdb/config/i386/nm-i386gnu.h b/gdb/config/i386/nm-i386gnu.h
> deleted file mode 100644
> index 4b2ca907fd..0000000000
> --- a/gdb/config/i386/nm-i386gnu.h
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -/* Native-dependent definitions for Intel 386 running the GNU Hurd
> -   Copyright (C) 1994-2018 Free Software Foundation, Inc.
> -
> -   This file is part of GDB.
> -
> -   This program is free software; you can redistribute it and/or modify
> -   it under the terms of the GNU General Public License as published by
> -   the Free Software Foundation; either version 3 of the License, or
> -   (at your option) any later version.
> -
> -   This program is distributed in the hope that it will be useful,
> -   but WITHOUT ANY WARRANTY; without even the implied warranty of
> -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> -   GNU General Public License for more details.
> -
> -   You should have received a copy of the GNU General Public License
> -   along with this program.  If not, see <http://www.gnu.org/licenses/>;.  */
> -
> -#ifndef NM_I386GNU_H
> -#define NM_I386GNU_H
> -
> -#include <unistd.h>
> -#include <mach.h>
> -#include <mach/exception.h>
> -#include "regcache.h"
> -
> -extern char *gnu_target_pid_to_str (int pid);
> -
> -/* Thread flavors used in re-setting the T bit.  */
> -#define THREAD_STATE_FLAVOR		i386_REGS_SEGS_STATE
> -#define THREAD_STATE_SIZE		i386_THREAD_STATE_COUNT
> -#define THREAD_STATE_SET_TRACED(state) \
> -  	((struct i386_thread_state *) (state))->efl |= 0x100
> -#define THREAD_STATE_CLEAR_TRACED(state) \
> -  	((((struct i386_thread_state *) (state))->efl &= ~0x100), 1)
> -
> -#endif /* nm-i386gnu.h */
> diff --git a/gdb/configure.nat b/gdb/configure.nat
> index 200b716924..aa6f9c5c4e 100644
> --- a/gdb/configure.nat
> +++ b/gdb/configure.nat
> @@ -218,7 +218,6 @@ case ${gdb_host} in
>  		     msg_U.o exc_request_U.o exc_request_S.o'
>  		HAVE_NATIVE_GCORE_HOST=1
>  
> -		NAT_FILE='nm-i386gnu.h'
>  		MH_CFLAGS='-D_GNU_SOURCE'
>  
>  		XM_CLIBS='-lshouldbeinlibc'
> diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
> index a886c2b80c..612815f8ae 100644
> --- a/gdb/gnu-nat.c
> +++ b/gdb/gnu-nat.c
> @@ -81,6 +81,14 @@ extern "C"
>  #include "msg_U.h"
>  }
>  
> +/* Thread flavors used in re-setting the T bit.  */
> +#define THREAD_STATE_FLAVOR		i386_REGS_SEGS_STATE
> +#define THREAD_STATE_SIZE		i386_THREAD_STATE_COUNT
> +#define THREAD_STATE_SET_TRACED(state) \
> +  	((struct i386_thread_state *) (state))->efl |= 0x100
> +#define THREAD_STATE_CLEAR_TRACED(state) \
> +  	((((struct i386_thread_state *) (state))->efl &= ~0x100), 1)
> +
>  static process_t proc_server = MACH_PORT_NULL;
>  
>  /* If we've sent a proc_wait_request to the proc server, the pid of the
  
Tom Tromey Jan. 12, 2019, 8:50 p.m. UTC | #2
>>>>> "Svante" == Svante Signell <svante.signell@gmail.com> writes:

Svante> Just to make clear that the patch below is not enough to make gdb building on
Svante> GNU/Hurd. It helps but there are more issues. I'll continue to try to make gdb
Svante> building when time permits.

Since it helps, do you think I should check it in?

Also, what are the other problems?

thanks,
Tom
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 21731be98d..bc408fe748 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@ 
+2018-12-24  Tom Tromey  <tom@tromey.com>
+
+	* gnu-nat.c (THREAD_STATE_FLAVOR, THREAD_STATE_SIZE)
+	(THREAD_STATE_SET_TRACED, THREAD_STATE_CLEAR_TRACED): Move
+	definitions from nm-i386gnu.h.
+	* configure.nat: Don't reference nm-i386gnu.h.
+	* config/i386/nm-i386gnu.h: Remove.
+
 2018-12-18  Tom Tromey  <tom@tromey.com>
 
 	* dwarf2read.c (dwarf2_find_containing_comp_unit): Don't take
diff --git a/gdb/config/i386/nm-i386gnu.h b/gdb/config/i386/nm-i386gnu.h
deleted file mode 100644
index 4b2ca907fd..0000000000
--- a/gdb/config/i386/nm-i386gnu.h
+++ /dev/null
@@ -1,37 +0,0 @@ 
-/* Native-dependent definitions for Intel 386 running the GNU Hurd
-   Copyright (C) 1994-2018 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef NM_I386GNU_H
-#define NM_I386GNU_H
-
-#include <unistd.h>
-#include <mach.h>
-#include <mach/exception.h>
-#include "regcache.h"
-
-extern char *gnu_target_pid_to_str (int pid);
-
-/* Thread flavors used in re-setting the T bit.  */
-#define THREAD_STATE_FLAVOR		i386_REGS_SEGS_STATE
-#define THREAD_STATE_SIZE		i386_THREAD_STATE_COUNT
-#define THREAD_STATE_SET_TRACED(state) \
-  	((struct i386_thread_state *) (state))->efl |= 0x100
-#define THREAD_STATE_CLEAR_TRACED(state) \
-  	((((struct i386_thread_state *) (state))->efl &= ~0x100), 1)
-
-#endif /* nm-i386gnu.h */
diff --git a/gdb/configure.nat b/gdb/configure.nat
index 200b716924..aa6f9c5c4e 100644
--- a/gdb/configure.nat
+++ b/gdb/configure.nat
@@ -218,7 +218,6 @@  case ${gdb_host} in
 		     msg_U.o exc_request_U.o exc_request_S.o'
 		HAVE_NATIVE_GCORE_HOST=1
 
-		NAT_FILE='nm-i386gnu.h'
 		MH_CFLAGS='-D_GNU_SOURCE'
 
 		XM_CLIBS='-lshouldbeinlibc'
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index a886c2b80c..612815f8ae 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -81,6 +81,14 @@  extern "C"
 #include "msg_U.h"
 }
 
+/* Thread flavors used in re-setting the T bit.  */
+#define THREAD_STATE_FLAVOR		i386_REGS_SEGS_STATE
+#define THREAD_STATE_SIZE		i386_THREAD_STATE_COUNT
+#define THREAD_STATE_SET_TRACED(state) \
+  	((struct i386_thread_state *) (state))->efl |= 0x100
+#define THREAD_STATE_CLEAR_TRACED(state) \
+  	((((struct i386_thread_state *) (state))->efl &= ~0x100), 1)
+
 static process_t proc_server = MACH_PORT_NULL;
 
 /* If we've sent a proc_wait_request to the proc server, the pid of the