This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Please define thread_info as struct thread_info (and other stuff)
- From: Svante Signell <svante dot signell at gmail dot com>
- To: Tom Tromey <tom at tromey dot com>
- Cc: Andreas Schwab <schwab at linux-m68k dot org>, Simon Marchi <simark at simark dot ca>, gdb-patches at sourceware dot org
- Date: Sat, 12 Jan 2019 19:37:50 +0100
- Subject: Re: [PATCH] Please define thread_info as struct thread_info (and other stuff)
- References: <c43ca8d60ab8880408033a21901d544f3ec9de57.camel@gmail.com> <m2y38pddzs.fsf@linux-m68k.org> <000db1d81a0c415190b6648222ed29db7f927df9.camel@gmail.com> <87d0q13w6b.fsf@tromey.com> <aa49192a4651ab71fc092f02af9bd4968eabfaca.camel@gmail.com> <fcf93ed582163972303379c6a3f05e89a022475f.camel@gmail.com> <878t0j4ykk.fsf@tromey.com> <87r2e6pp9c.fsf@tromey.com>
- Reply-to: svante dot signell at gmail dot com
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