[PATCH] Add declarations to gdbtk.h

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] Add declarations to gdbtk.h

Sourceware - insight list mailing list
From: Christian Biesinger <[hidden email]>

Currently, gdb/main.c has to declare these two variables in the
.c file. This patch adds the declarations to the header so that
gdb can just use them.

gdbtk/ChangeLog:

2019-10-07  Christian Biesinger  <[hidden email]>

        * generic/gdbtk.h (gdbtk_test): Declare.
  (external_editor_command): Declare.
  (file): Prefix Tcl_Interp with "struct"
  so that this compiles when Tcl headers aren't included.
  * generic/gdbtk-interp.h:  Likewise.
---
 gdbtk/generic/gdbtk-interp.h |  2 +-
 gdbtk/generic/gdbtk.h        | 11 +++++++++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/gdbtk/generic/gdbtk-interp.h b/gdbtk/generic/gdbtk-interp.h
index 3126b91..9abad2e 100644
--- a/gdbtk/generic/gdbtk-interp.h
+++ b/gdbtk/generic/gdbtk-interp.h
@@ -53,7 +53,7 @@ public:
   ui_file *_stdtargin;
   ui_out *uiout;
 
-  Tcl_Interp *tcl;
+  struct Tcl_Interp *tcl;
 };
 
 extern gdbtk_interp *gdbtk_get_interp (void);
diff --git a/gdbtk/generic/gdbtk.h b/gdbtk/generic/gdbtk.h
index 7bb1f79..89ab8bf 100644
--- a/gdbtk/generic/gdbtk.h
+++ b/gdbtk/generic/gdbtk.h
@@ -77,6 +77,12 @@ extern int running_now;
 
 extern long gdbtk_pid;
 
+/*
+ * This variable controls the interaction with an external editor.
+ */
+
+extern char *external_editor_command;
+
 /* These two control how the GUI behaves when tracing or loading
    They are defined in gdbtk-cmds.c */
 
@@ -91,7 +97,7 @@ extern int load_in_progress;
 
 typedef struct gdbtk_result
   {
-    Tcl_Obj *obj_ptr; /* This will eventually be copied over to the
+    struct Tcl_Obj *obj_ptr; /* This will eventually be copied over to the
    Tcl result */
     int flags; /* Flag vector to control how the result is
    used. */
@@ -151,7 +157,7 @@ extern int gdbtk_force_detach;
  *
  */
 
-extern int Gdbtk_Init (Tcl_Interp * interp);
+extern int Gdbtk_Init (struct Tcl_Interp * interp);
 extern void gdbtk_stop_timer (void);
 extern void gdbtk_start_timer (void);
 extern long gdbtk_getpid(void);
@@ -159,6 +165,7 @@ extern void gdbtk_ignorable_warning (const char *, const char *);
 extern int x_event (int);
 extern int gdbtk_two_elem_cmd (char *, const char *);
 extern int target_is_native (struct target_ops *t);
+extern int gdbtk_test (char *);
 extern struct ui_file *gdbtk_fileopen (void);
 extern bool gdbtk_disable_write;
 extern ptid_t gdbtk_get_ptid (void);
--
2.23.0.581.g78d2f28ef7-goog

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add declarations to gdbtk.h

Mike Wellington
So what's the problem?

On Mon, Oct 7, 2019, 15:09 Christian Biesinger via insight <
[hidden email]> wrote:

> From: Christian Biesinger <[hidden email]>
>
> Currently, gdb/main.c has to declare these two variables in the
> .c file. This patch adds the declarations to the header so that
> gdb can just use them.
>
> gdbtk/ChangeLog:
>
> 2019-10-07  Christian Biesinger  <[hidden email]>
>
>         * generic/gdbtk.h (gdbtk_test): Declare.
>   (external_editor_command): Declare.
>   (file): Prefix Tcl_Interp with "struct"
>   so that this compiles when Tcl headers aren't included.
>   * generic/gdbtk-interp.h:  Likewise.
> ---
>  gdbtk/generic/gdbtk-interp.h |  2 +-
>  gdbtk/generic/gdbtk.h        | 11 +++++++++--
>  2 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/gdbtk/generic/gdbtk-interp.h b/gdbtk/generic/gdbtk-interp.h
> index 3126b91..9abad2e 100644
> --- a/gdbtk/generic/gdbtk-interp.h
> +++ b/gdbtk/generic/gdbtk-interp.h
> @@ -53,7 +53,7 @@ public:
>    ui_file *_stdtargin;
>    ui_out *uiout;
>
> -  Tcl_Interp *tcl;
> +  struct Tcl_Interp *tcl;
>  };
>
>  extern gdbtk_interp *gdbtk_get_interp (void);
> diff --git a/gdbtk/generic/gdbtk.h b/gdbtk/generic/gdbtk.h
> index 7bb1f79..89ab8bf 100644
> --- a/gdbtk/generic/gdbtk.h
> +++ b/gdbtk/generic/gdbtk.h
> @@ -77,6 +77,12 @@ extern int running_now;
>
>  extern long gdbtk_pid;
>
> +/*
> + * This variable controls the interaction with an external editor.
> + */
> +
> +extern char *external_editor_command;
> +
>  /* These two control how the GUI behaves when tracing or loading
>     They are defined in gdbtk-cmds.c */
>
> @@ -91,7 +97,7 @@ extern int load_in_progress;
>
>  typedef struct gdbtk_result
>    {
> -    Tcl_Obj *obj_ptr;          /* This will eventually be copied over to
> the
> +    struct Tcl_Obj *obj_ptr;           /* This will eventually be copied
> over to the
>                                    Tcl result */
>      int flags;                 /* Flag vector to control how the result is
>                                    used. */
> @@ -151,7 +157,7 @@ extern int gdbtk_force_detach;
>   *
>   */
>
> -extern int Gdbtk_Init (Tcl_Interp * interp);
> +extern int Gdbtk_Init (struct Tcl_Interp * interp);
>  extern void gdbtk_stop_timer (void);
>  extern void gdbtk_start_timer (void);
>  extern long gdbtk_getpid(void);
> @@ -159,6 +165,7 @@ extern void gdbtk_ignorable_warning (const char *,
> const char *);
>  extern int x_event (int);
>  extern int gdbtk_two_elem_cmd (char *, const char *);
>  extern int target_is_native (struct target_ops *t);
> +extern int gdbtk_test (char *);
>  extern struct ui_file *gdbtk_fileopen (void);
>  extern bool gdbtk_disable_write;
>  extern ptid_t gdbtk_get_ptid (void);
> --
> 2.23.0.581.g78d2f28ef7-goog
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add declarations to gdbtk.h

Sourceware - insight list mailing list
The problem is that gdb's main.c has this code:
      extern int gdbtk_test (char *);

      if (!gdbtk_test (optarg))

and
      extern char *external_editor_command;

      external_editor_command = xstrdup (optarg);

It should not have to declare functions/variables that are part of
gdbtk; it should be able to just include a header for that.

(there's no user-visible issue here -- this is code cleanup)

Christian

On Mon, Oct 7, 2019 at 5:40 PM Mike Wellington
<[hidden email]> wrote:

>
> So what's the problem?
>
> On Mon, Oct 7, 2019, 15:09 Christian Biesinger via insight <[hidden email]> wrote:
>>
>> From: Christian Biesinger <[hidden email]>
>>
>> Currently, gdb/main.c has to declare these two variables in the
>> .c file. This patch adds the declarations to the header so that
>> gdb can just use them.
>>
>> gdbtk/ChangeLog:
>>
>> 2019-10-07  Christian Biesinger  <[hidden email]>
>>
>>         * generic/gdbtk.h (gdbtk_test): Declare.
>>   (external_editor_command): Declare.
>>   (file): Prefix Tcl_Interp with "struct"
>>   so that this compiles when Tcl headers aren't included.
>>   * generic/gdbtk-interp.h:  Likewise.
>> ---
>>  gdbtk/generic/gdbtk-interp.h |  2 +-
>>  gdbtk/generic/gdbtk.h        | 11 +++++++++--
>>  2 files changed, 10 insertions(+), 3 deletions(-)
>>
>> diff --git a/gdbtk/generic/gdbtk-interp.h b/gdbtk/generic/gdbtk-interp.h
>> index 3126b91..9abad2e 100644
>> --- a/gdbtk/generic/gdbtk-interp.h
>> +++ b/gdbtk/generic/gdbtk-interp.h
>> @@ -53,7 +53,7 @@ public:
>>    ui_file *_stdtargin;
>>    ui_out *uiout;
>>
>> -  Tcl_Interp *tcl;
>> +  struct Tcl_Interp *tcl;
>>  };
>>
>>  extern gdbtk_interp *gdbtk_get_interp (void);
>> diff --git a/gdbtk/generic/gdbtk.h b/gdbtk/generic/gdbtk.h
>> index 7bb1f79..89ab8bf 100644
>> --- a/gdbtk/generic/gdbtk.h
>> +++ b/gdbtk/generic/gdbtk.h
>> @@ -77,6 +77,12 @@ extern int running_now;
>>
>>  extern long gdbtk_pid;
>>
>> +/*
>> + * This variable controls the interaction with an external editor.
>> + */
>> +
>> +extern char *external_editor_command;
>> +
>>  /* These two control how the GUI behaves when tracing or loading
>>     They are defined in gdbtk-cmds.c */
>>
>> @@ -91,7 +97,7 @@ extern int load_in_progress;
>>
>>  typedef struct gdbtk_result
>>    {
>> -    Tcl_Obj *obj_ptr;          /* This will eventually be copied over to the
>> +    struct Tcl_Obj *obj_ptr;           /* This will eventually be copied over to the
>>                                    Tcl result */
>>      int flags;                 /* Flag vector to control how the result is
>>                                    used. */
>> @@ -151,7 +157,7 @@ extern int gdbtk_force_detach;
>>   *
>>   */
>>
>> -extern int Gdbtk_Init (Tcl_Interp * interp);
>> +extern int Gdbtk_Init (struct Tcl_Interp * interp);
>>  extern void gdbtk_stop_timer (void);
>>  extern void gdbtk_start_timer (void);
>>  extern long gdbtk_getpid(void);
>> @@ -159,6 +165,7 @@ extern void gdbtk_ignorable_warning (const char *, const char *);
>>  extern int x_event (int);
>>  extern int gdbtk_two_elem_cmd (char *, const char *);
>>  extern int target_is_native (struct target_ops *t);
>> +extern int gdbtk_test (char *);
>>  extern struct ui_file *gdbtk_fileopen (void);
>>  extern bool gdbtk_disable_write;
>>  extern ptid_t gdbtk_get_ptid (void);
>> --
>> 2.23.0.581.g78d2f28ef7-goog
>>
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add declarations to gdbtk.h

Mike Wellington
ok. good point.  not my problem.

On Mon, Oct 7, 2019 at 4:43 PM Christian Biesinger <[hidden email]>
wrote:

> The problem is that gdb's main.c has this code:
>       extern int gdbtk_test (char *);
>
>       if (!gdbtk_test (optarg))
>
> and
>       extern char *external_editor_command;
>
>       external_editor_command = xstrdup (optarg);
>
> It should not have to declare functions/variables that are part of
> gdbtk; it should be able to just include a header for that.
>
> (there's no user-visible issue here -- this is code cleanup)
>
> Christian
>
> On Mon, Oct 7, 2019 at 5:40 PM Mike Wellington
> <[hidden email]> wrote:
> >
> > So what's the problem?
> >
> > On Mon, Oct 7, 2019, 15:09 Christian Biesinger via insight <
> [hidden email]> wrote:
> >>
> >> From: Christian Biesinger <[hidden email]>
> >>
> >> Currently, gdb/main.c has to declare these two variables in the
> >> .c file. This patch adds the declarations to the header so that
> >> gdb can just use them.
> >>
> >> gdbtk/ChangeLog:
> >>
> >> 2019-10-07  Christian Biesinger  <[hidden email]>
> >>
> >>         * generic/gdbtk.h (gdbtk_test): Declare.
> >>   (external_editor_command): Declare.
> >>   (file): Prefix Tcl_Interp with "struct"
> >>   so that this compiles when Tcl headers aren't included.
> >>   * generic/gdbtk-interp.h:  Likewise.
> >> ---
> >>  gdbtk/generic/gdbtk-interp.h |  2 +-
> >>  gdbtk/generic/gdbtk.h        | 11 +++++++++--
> >>  2 files changed, 10 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/gdbtk/generic/gdbtk-interp.h b/gdbtk/generic/gdbtk-interp.h
> >> index 3126b91..9abad2e 100644
> >> --- a/gdbtk/generic/gdbtk-interp.h
> >> +++ b/gdbtk/generic/gdbtk-interp.h
> >> @@ -53,7 +53,7 @@ public:
> >>    ui_file *_stdtargin;
> >>    ui_out *uiout;
> >>
> >> -  Tcl_Interp *tcl;
> >> +  struct Tcl_Interp *tcl;
> >>  };
> >>
> >>  extern gdbtk_interp *gdbtk_get_interp (void);
> >> diff --git a/gdbtk/generic/gdbtk.h b/gdbtk/generic/gdbtk.h
> >> index 7bb1f79..89ab8bf 100644
> >> --- a/gdbtk/generic/gdbtk.h
> >> +++ b/gdbtk/generic/gdbtk.h
> >> @@ -77,6 +77,12 @@ extern int running_now;
> >>
> >>  extern long gdbtk_pid;
> >>
> >> +/*
> >> + * This variable controls the interaction with an external editor.
> >> + */
> >> +
> >> +extern char *external_editor_command;
> >> +
> >>  /* These two control how the GUI behaves when tracing or loading
> >>     They are defined in gdbtk-cmds.c */
> >>
> >> @@ -91,7 +97,7 @@ extern int load_in_progress;
> >>
> >>  typedef struct gdbtk_result
> >>    {
> >> -    Tcl_Obj *obj_ptr;          /* This will eventually be copied over
> to the
> >> +    struct Tcl_Obj *obj_ptr;           /* This will eventually be
> copied over to the
> >>                                    Tcl result */
> >>      int flags;                 /* Flag vector to control how the
> result is
> >>                                    used. */
> >> @@ -151,7 +157,7 @@ extern int gdbtk_force_detach;
> >>   *
> >>   */
> >>
> >> -extern int Gdbtk_Init (Tcl_Interp * interp);
> >> +extern int Gdbtk_Init (struct Tcl_Interp * interp);
> >>  extern void gdbtk_stop_timer (void);
> >>  extern void gdbtk_start_timer (void);
> >>  extern long gdbtk_getpid(void);
> >> @@ -159,6 +165,7 @@ extern void gdbtk_ignorable_warning (const char *,
> const char *);
> >>  extern int x_event (int);
> >>  extern int gdbtk_two_elem_cmd (char *, const char *);
> >>  extern int target_is_native (struct target_ops *t);
> >> +extern int gdbtk_test (char *);
> >>  extern struct ui_file *gdbtk_fileopen (void);
> >>  extern bool gdbtk_disable_write;
> >>  extern ptid_t gdbtk_get_ptid (void);
> >> --
> >> 2.23.0.581.g78d2f28ef7-goog
> >>
>
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add declarations to gdbtk.h

Keith Seitz
In reply to this post by Sourceware - insight list mailing list
On 10/7/19 2:09 PM, Christian Biesinger via insight wrote:

> From: Christian Biesinger <[hidden email]>
>
> Currently, gdb/main.c has to declare these two variables in the
> .c file. This patch adds the declarations to the header so that
> gdb can just use them.
>
> gdbtk/ChangeLog:
>
> 2019-10-07  Christian Biesinger  <[hidden email]>
>
> * generic/gdbtk.h (gdbtk_test): Declare.
>   (external_editor_command): Declare.
>   (file): Prefix Tcl_Interp with "struct"
>   so that this compiles when Tcl headers aren't included.
>   * generic/gdbtk-interp.h:  Likewise.

That looks okay to me. Thank you for thinking of us!

Keith
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add declarations to gdbtk.h

Sourceware - insight list mailing list
Great thanks! Could you check this in? I don't think I have commit access
to this repository.

Christian

On Wed, Oct 9, 2019, 19:20 Keith Seitz <[hidden email]> wrote:

> On 10/7/19 2:09 PM, Christian Biesinger via insight wrote:
> > From: Christian Biesinger <[hidden email]>
> >
> > Currently, gdb/main.c has to declare these two variables in the
> > .c file. This patch adds the declarations to the header so that
> > gdb can just use them.
> >
> > gdbtk/ChangeLog:
> >
> > 2019-10-07  Christian Biesinger  <[hidden email]>
> >
> >       * generic/gdbtk.h (gdbtk_test): Declare.
> >   (external_editor_command): Declare.
> >   (file): Prefix Tcl_Interp with "struct"
> >   so that this compiles when Tcl headers aren't included.
> >   * generic/gdbtk-interp.h:  Likewise.
>
> That looks okay to me. Thank you for thinking of us!
>
> Keith
>
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add declarations to gdbtk.h

Keith Seitz
In reply to this post by Keith Seitz
On 10/9/19 5:20 PM, Keith Seitz wrote:
>
> That looks okay to me. Thank you for thinking of us!

I've pushed this to the repo for you.

Keith
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add declarations to gdbtk.h

Sourceware - insight list mailing list
On Thu, Oct 10, 2019 at 10:55 AM Keith Seitz <[hidden email]> wrote:
>
> On 10/9/19 5:20 PM, Keith Seitz wrote:
> >
> > That looks okay to me. Thank you for thinking of us!
>
> I've pushed this to the repo for you.

Thank you, I've pushed the related gdb change now.

Christian