This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Compile objc-lang.c, objc-exp.tab.c [1/5]
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: Adam Fedor <fedor at doc dot com>
- Cc: GDB Patches <gdb-patches at sources dot redhat dot com>
- Date: Wed, 19 Feb 2003 14:06:55 -0500
- Subject: Re: [RFA] Compile objc-lang.c, objc-exp.tab.c [1/5]
- References: <3E16093D.3070907@doc.com>
Adam Fedor writes:
> Now that I'm almost done, I finally understand the patch lingo (Thanks
> Michael)! This is a repost of the first of five final patches for ObjC
> suppport:
>
> http://sources.redhat.com/ml/gdb-patches/2003-01/msg00049.html
>
> The other two that I also need approval for are:
>
> http://sources.redhat.com/ml/gdb-patches/2003-01/msg00050.html
> http://sources.redhat.com/ml/gdb-patches/2003-01/msg00080.html
>
> and two more (symtab.c, and linespec.c) will be coming soon.
>
> ---
>
> A new year brings a final push to get Objective-C support in gdb. This
> patch enables compilation and linking of the Objective-C files. I need
> this now since the remaining patches require so many of the Objective-C
> functions that it would be pointless to submit them otherwise.
>
> 2003-01-02 Adam Fedor <fedor at gnu dot org>
>
> * Makefile.in (COMMON_OBS): Add objc-lang.o
> (YYOBJ): Add objc-exp.tab.o
> (maint.o, utils.o): Add $(objc_lang_h)
> * maint.c (maintenance_demangle): Uncomment language_objc case.
> * utils.c (fprintf_symbol_filtered): Likewise.
> * parser-defs.h (start_msglist, add_msglist, end_msglist): Declare
> Objective-C parsing functions (from objc-lang.c).
I think this is just 'obvious' in a sense given the code has been
already approved, and it is just dormant. However, do we have
testcases already? I think we should have a gdb.objc
subdirectory. (sorry, i don't remember if you posted them). I would
feel uncomfortable enabling objc w/o having tests, even very simple
ones, it could bitrot fast.
elena
>
> Index: Makefile.in
> ===================================================================
> RCS file: /cvs/src/src/gdb/Makefile.in,v
> retrieving revision 1.302
> diff -u -p -r1.302 Makefile.in
> --- Makefile.in 2 Jan 2003 20:29:15 -0000 1.302
> +++ Makefile.in 3 Jan 2003 03:06:24 -0000
> @@ -820,7 +820,7 @@ COMMON_OBS = version.o blockframe.o brea
> exec.o bcache.o objfiles.o minsyms.o maint.o demangle.o \
> dbxread.o coffread.o elfread.o \
> dwarfread.o dwarf2read.o mipsread.o stabsread.o corefile.o \
> - c-lang.o f-lang.o \
> + c-lang.o objc-lang.o f-lang.o \
> ui-out.o cli-out.o \
> varobj.o wrapper.o \
> jv-lang.o jv-valprint.o jv-typeprint.o \
> @@ -847,6 +847,7 @@ YYFILES = c-exp.tab.c \
> jv-exp.tab.c \
> f-exp.tab.c m2-exp.tab.c p-exp.tab.c
> YYOBJ = c-exp.tab.o \
> + objc-exp.tab.o \
> jv-exp.tab.o \
> f-exp.tab.o m2-exp.tab.o p-exp.tab.o
>
> @@ -1878,7 +1879,8 @@ main.o: main.c $(defs_h) $(top_h) $(targ
> $(event_loop_h) $(ui_out_h) $(main_h)
> maint.o: maint.c $(defs_h) $(command_h) $(gdbcmd_h) $(symtab_h) \
> $(gdbtypes_h) $(demangle_h) $(gdbcore_h) $(expression_h) \
> - $(language_h) $(symfile_h) $(objfiles_h) $(value_h) $(cli_decode_h)
> + $(language_h) $(symfile_h) $(objfiles_h) $(value_h) $(cli_decode_h) \
> + $(objc_lang_h)
> mcore-rom.o: mcore-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \
> $(gdb_string_h) $(regcache_h) $(serial_h)
> mcore-tdep.o: mcore-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(value_h) \
> @@ -2240,7 +2242,8 @@ ui-out.o: ui-out.c $(defs_h) $(gdb_strin
> utils.o: utils.c $(config_h) $(defs_h) $(gdb_assert_h) $(gdb_string_h) \
> $(event_top_h) $(gdbcmd_h) $(serial_h) $(bfd_h) $(target_h) \
> $(demangle_h) $(expression_h) $(language_h) $(annotate_h) \
> - $(filenames_h) $(inferior_h) $(mmalloc_h) $(charset_h) $(readline_h)
> + $(filenames_h) $(inferior_h) $(mmalloc_h) $(charset_h) $(readline_h) \
> + $(objc_lang_h)
> uw-thread.o: uw-thread.c $(defs_h) $(gdbthread_h) $(target_h) $(inferior_h) \
> $(regcache_h) $(gregset_h)
> v850-tdep.o: v850-tdep.c $(defs_h) $(frame_h) $(inferior_h) $(target_h) \
> Index: maint.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/maint.c,v
> retrieving revision 1.30
> diff -u -p -r1.30 maint.c
> --- maint.c 24 Dec 2002 03:57:58 -0000 1.30
> +++ maint.c 3 Jan 2003 03:06:25 -0000
> @@ -35,6 +35,7 @@
> #include "symfile.h"
> #include "objfiles.h"
> #include "value.h"
> +#include "objc-lang.h"
>
> #include "cli/cli-decode.h"
>
> @@ -154,9 +155,8 @@ maintenance_demangle (char *args, int fr
> switch (current_language->la_language)
> {
> case language_objc:
> - /* Commented out until ObjC handling is enabled. */
> - /* demangled = objc_demangle (args); */
> - /* break; */
> + demangled = objc_demangle (args);
> + break;
> case language_cplus:
> default:
> demangled = cplus_demangle (args, DMGL_ANSI | DMGL_PARAMS);
> Index: parser-defs.h
> ===================================================================
> RCS file: /cvs/src/src/gdb/parser-defs.h,v
> retrieving revision 1.15
> diff -u -p -r1.15 parser-defs.h
> --- parser-defs.h 19 Nov 2002 03:15:01 -0000 1.15
> +++ parser-defs.h 3 Jan 2003 03:06:25 -0000
> @@ -223,4 +223,9 @@ struct op_print
>
> extern void parser_fprintf (FILE *, const char *, ...) ATTR_FORMAT (printf, 2 ,3);
>
> +/* for parsing Objective C */
> +extern void start_msglist (void);
> +extern void add_msglist (struct stoken *str, int addcolon);
> +extern int end_msglist (void);
> +
> #endif /* PARSER_DEFS_H */
> Index: utils.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/utils.c,v
> retrieving revision 1.88
> diff -u -p -r1.88 utils.c
> --- utils.c 2 Jan 2003 14:27:27 -0000 1.88
> +++ utils.c 3 Jan 2003 03:06:35 -0000
> @@ -46,6 +46,7 @@
> #include "charset.h"
> #include "annotate.h"
> #include "filenames.h"
> +#include "objc-lang.h"
>
> #include "inferior.h" /* for signed_pointer_to_address */
>
> @@ -2310,9 +2311,8 @@ fprintf_symbol_filtered (struct ui_file
> demangled = cplus_demangle (name, arg_mode | DMGL_JAVA);
> break;
> case language_objc:
> - /* Commented out until ObjC handling is enabled. */
> - /*demangled = objc_demangle (name);*/
> - /*break;*/
> + demangled = objc_demangle (name);
> + break;
> default:
> demangled = NULL;
> break;