]> git.pld-linux.org Git - packages/gdb.git/blame - gdb-fortran-common-reduce.patch
- typo
[packages/gdb.git] / gdb-fortran-common-reduce.patch
CommitLineData
a7de96f0 1Index: gdb-7.4.50.20120602/gdb/f-lang.c
51a5ef0f 2===================================================================
a7de96f0
PS
3--- gdb-7.4.50.20120602.orig/gdb/f-lang.c 2012-03-02 20:29:00.000000000 +0100
4+++ gdb-7.4.50.20120602/gdb/f-lang.c 2012-06-02 19:13:31.520050654 +0200
5@@ -59,20 +59,6 @@ typedef struct saved_bf_symnum SAVED_BF,
51a5ef0f
PS
6 /* Local functions */
7
8 extern void _initialize_f_language (void);
9-#if 0
10-static void clear_function_list (void);
11-static long get_bf_for_fcn (long);
12-static void clear_bf_list (void);
13-static void patch_all_commons_by_name (char *, CORE_ADDR, int);
14-static SAVED_F77_COMMON_PTR find_first_common_named (char *);
15-static void add_common_entry (struct symbol *);
16-static void add_common_block (char *, CORE_ADDR, int, char *);
17-static SAVED_FUNCTION *allocate_saved_function_node (void);
18-static SAVED_BF_PTR allocate_saved_bf_node (void);
19-static COMMON_ENTRY_PTR allocate_common_entry_node (void);
20-static SAVED_F77_COMMON_PTR allocate_saved_f77_common_node (void);
21-static void patch_common_entries (SAVED_F77_COMMON_PTR, CORE_ADDR, int);
22-#endif
23
24 static void f_printchar (int c, struct type *type, struct ui_file * stream);
25 static void f_emit_char (int c, struct type *type,
a7de96f0 26@@ -385,185 +371,7 @@ _initialize_f_language (void)
51a5ef0f
PS
27 add_language (&f_language_defn);
28 }
29
30-#if 0
31-static SAVED_BF_PTR
32-allocate_saved_bf_node (void)
33-{
34- SAVED_BF_PTR new;
35-
36- new = (SAVED_BF_PTR) xmalloc (sizeof (SAVED_BF));
37- return (new);
38-}
39-
40-static SAVED_FUNCTION *
41-allocate_saved_function_node (void)
42-{
43- SAVED_FUNCTION *new;
44-
45- new = (SAVED_FUNCTION *) xmalloc (sizeof (SAVED_FUNCTION));
46- return (new);
47-}
48-
49-static SAVED_F77_COMMON_PTR
50-allocate_saved_f77_common_node (void)
51-{
52- SAVED_F77_COMMON_PTR new;
53-
54- new = (SAVED_F77_COMMON_PTR) xmalloc (sizeof (SAVED_F77_COMMON));
55- return (new);
56-}
57-
58-static COMMON_ENTRY_PTR
59-allocate_common_entry_node (void)
60-{
61- COMMON_ENTRY_PTR new;
62-
63- new = (COMMON_ENTRY_PTR) xmalloc (sizeof (COMMON_ENTRY));
64- return (new);
65-}
66-#endif
67-
68 SAVED_F77_COMMON_PTR head_common_list = NULL; /* Ptr to 1st saved COMMON */
69-SAVED_F77_COMMON_PTR tail_common_list = NULL; /* Ptr to last saved COMMON */
70-SAVED_F77_COMMON_PTR current_common = NULL; /* Ptr to current COMMON */
71-
72-#if 0
73-static SAVED_BF_PTR saved_bf_list = NULL; /* Ptr to (.bf,function)
74- list */
75-static SAVED_BF_PTR saved_bf_list_end = NULL; /* Ptr to above list's end */
6ed6bacf
AM
76-static SAVED_BF_PTR current_head_bf_list = NULL; /* Current head of
77- above list. */
51a5ef0f
PS
78-
79-static SAVED_BF_PTR tmp_bf_ptr; /* Generic temporary for use
6ed6bacf 80- in macros. */
51a5ef0f
PS
81-
82-/* The following function simply enters a given common block onto
6ed6bacf 83- the global common block chain. */
51a5ef0f
PS
84-
85-static void
86-add_common_block (char *name, CORE_ADDR offset, int secnum, char *func_stab)
87-{
88- SAVED_F77_COMMON_PTR tmp;
89- char *c, *local_copy_func_stab;
90-
91- /* If the COMMON block we are trying to add has a blank
92- name (i.e. "#BLNK_COM") then we set it to __BLANK
93- because the darn "#" character makes GDB's input
6ed6bacf 94- parser have fits. */
51a5ef0f
PS
95-
96-
97- if (strcmp (name, BLANK_COMMON_NAME_ORIGINAL) == 0
98- || strcmp (name, BLANK_COMMON_NAME_MF77) == 0)
99- {
100-
101- xfree (name);
102- name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1);
103- strcpy (name, BLANK_COMMON_NAME_LOCAL);
104- }
105-
106- tmp = allocate_saved_f77_common_node ();
107-
108- local_copy_func_stab = xmalloc (strlen (func_stab) + 1);
109- strcpy (local_copy_func_stab, func_stab);
110-
111- tmp->name = xmalloc (strlen (name) + 1);
112-
113- /* local_copy_func_stab is a stabstring, let us first extract the
6ed6bacf 114- function name from the stab by NULLing out the ':' character. */
51a5ef0f
PS
115-
116-
117- c = NULL;
118- c = strchr (local_copy_func_stab, ':');
119-
120- if (c)
121- *c = '\0';
122- else
123- error (_("Malformed function STAB found in add_common_block()"));
124-
125-
126- tmp->owning_function = xmalloc (strlen (local_copy_func_stab) + 1);
127-
128- strcpy (tmp->owning_function, local_copy_func_stab);
129-
130- strcpy (tmp->name, name);
131- tmp->offset = offset;
132- tmp->next = NULL;
133- tmp->entries = NULL;
134- tmp->secnum = secnum;
135-
136- current_common = tmp;
137-
138- if (head_common_list == NULL)
139- {
140- head_common_list = tail_common_list = tmp;
141- }
142- else
143- {
144- tail_common_list->next = tmp;
145- tail_common_list = tmp;
146- }
147-}
148-#endif
149-
150-/* The following function simply enters a given common entry onto
6ed6bacf 151- the "current_common" block that has been saved away. */
51a5ef0f
PS
152-
153-#if 0
154-static void
155-add_common_entry (struct symbol *entry_sym_ptr)
156-{
157- COMMON_ENTRY_PTR tmp;
158-
159-
160-
161- /* The order of this list is important, since
162- we expect the entries to appear in decl.
6ed6bacf 163- order when we later issue "info common" calls. */
51a5ef0f
PS
164-
165- tmp = allocate_common_entry_node ();
166-
167- tmp->next = NULL;
168- tmp->symbol = entry_sym_ptr;
169-
170- if (current_common == NULL)
171- error (_("Attempt to add COMMON entry with no block open!"));
172- else
173- {
174- if (current_common->entries == NULL)
175- {
176- current_common->entries = tmp;
177- current_common->end_of_entries = tmp;
178- }
179- else
180- {
181- current_common->end_of_entries->next = tmp;
182- current_common->end_of_entries = tmp;
183- }
184- }
185-}
186-#endif
187-
6ed6bacf 188-/* This routine finds the first encountred COMMON block named "name". */
51a5ef0f
PS
189-
190-#if 0
191-static SAVED_F77_COMMON_PTR
192-find_first_common_named (char *name)
193-{
194-
195- SAVED_F77_COMMON_PTR tmp;
196-
197- tmp = head_common_list;
198-
199- while (tmp != NULL)
200- {
201- if (strcmp (tmp->name, name) == 0)
202- return (tmp);
203- else
204- tmp = tmp->next;
205- }
206- return (NULL);
207-}
208-#endif
209
210 /* This routine finds the first encountred COMMON block named "name"
6ed6bacf 211 that belongs to function funcname. */
a7de96f0 212@@ -586,193 +394,3 @@ find_common_for_function (const char *na
51a5ef0f
PS
213 }
214 return (NULL);
215 }
216-
217-
218-#if 0
219-
220-/* The following function is called to patch up the offsets
221- for the statics contained in the COMMON block named
222- "name." */
223-
224-static void
225-patch_common_entries (SAVED_F77_COMMON_PTR blk, CORE_ADDR offset, int secnum)
226-{
227- COMMON_ENTRY_PTR entry;
228-
6ed6bacf 229- blk->offset = offset; /* Keep this around for future use. */
51a5ef0f
PS
230-
231- entry = blk->entries;
232-
233- while (entry != NULL)
234- {
235- SYMBOL_VALUE (entry->symbol) += offset;
236- SYMBOL_SECTION (entry->symbol) = secnum;
237-
238- entry = entry->next;
239- }
240- blk->secnum = secnum;
241-}
242-
243-/* Patch all commons named "name" that need patching.Since COMMON
244- blocks occur with relative infrequency, we simply do a linear scan on
245- the name. Eventually, the best way to do this will be a
246- hashed-lookup. Secnum is the section number for the .bss section
6ed6bacf 247- (which is where common data lives). */
51a5ef0f
PS
248-
249-static void
250-patch_all_commons_by_name (char *name, CORE_ADDR offset, int secnum)
251-{
252-
253- SAVED_F77_COMMON_PTR tmp;
254-
255- /* For blank common blocks, change the canonical reprsentation
256- of a blank name */
257-
258- if (strcmp (name, BLANK_COMMON_NAME_ORIGINAL) == 0
259- || strcmp (name, BLANK_COMMON_NAME_MF77) == 0)
260- {
261- xfree (name);
262- name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1);
263- strcpy (name, BLANK_COMMON_NAME_LOCAL);
264- }
265-
266- tmp = head_common_list;
267-
268- while (tmp != NULL)
269- {
270- if (COMMON_NEEDS_PATCHING (tmp))
271- if (strcmp (tmp->name, name) == 0)
272- patch_common_entries (tmp, offset, secnum);
273-
274- tmp = tmp->next;
275- }
276-}
277-#endif
278-
279-/* This macro adds the symbol-number for the start of the function
280- (the symbol number of the .bf) referenced by symnum_fcn to a
281- list. This list, in reality should be a FIFO queue but since
282- #line pragmas sometimes cause line ranges to get messed up
283- we simply create a linear list. This list can then be searched
284- first by a queueing algorithm and upon failure fall back to
6ed6bacf 285- a linear scan. */
51a5ef0f
PS
286-
287-#if 0
288-#define ADD_BF_SYMNUM(bf_sym,fcn_sym) \
289- \
290- if (saved_bf_list == NULL) \
291-{ \
292- tmp_bf_ptr = allocate_saved_bf_node(); \
293- \
294- tmp_bf_ptr->symnum_bf = (bf_sym); \
295- tmp_bf_ptr->symnum_fcn = (fcn_sym); \
296- tmp_bf_ptr->next = NULL; \
297- \
298- current_head_bf_list = saved_bf_list = tmp_bf_ptr; \
299- saved_bf_list_end = tmp_bf_ptr; \
300- } \
301-else \
302-{ \
303- tmp_bf_ptr = allocate_saved_bf_node(); \
304- \
305- tmp_bf_ptr->symnum_bf = (bf_sym); \
306- tmp_bf_ptr->symnum_fcn = (fcn_sym); \
307- tmp_bf_ptr->next = NULL; \
308- \
309- saved_bf_list_end->next = tmp_bf_ptr; \
310- saved_bf_list_end = tmp_bf_ptr; \
311- }
312-#endif
313-
6ed6bacf 314-/* This function frees the entire (.bf,function) list. */
51a5ef0f
PS
315-
316-#if 0
317-static void
318-clear_bf_list (void)
319-{
320-
321- SAVED_BF_PTR tmp = saved_bf_list;
322- SAVED_BF_PTR next = NULL;
323-
324- while (tmp != NULL)
325- {
326- next = tmp->next;
327- xfree (tmp);
328- tmp = next;
329- }
330- saved_bf_list = NULL;
331-}
332-#endif
333-
334-int global_remote_debug;
335-
336-#if 0
337-
338-static long
339-get_bf_for_fcn (long the_function)
340-{
341- SAVED_BF_PTR tmp;
342- int nprobes = 0;
343-
344- /* First use a simple queuing algorithm (i.e. look and see if the
6ed6bacf 345- item at the head of the queue is the one you want). */
51a5ef0f
PS
346-
347- if (saved_bf_list == NULL)
348- internal_error (__FILE__, __LINE__,
349- _("cannot get .bf node off empty list"));
350-
351- if (current_head_bf_list != NULL)
352- if (current_head_bf_list->symnum_fcn == the_function)
353- {
354- if (global_remote_debug)
355- fprintf_unfiltered (gdb_stderr, "*");
356-
357- tmp = current_head_bf_list;
358- current_head_bf_list = current_head_bf_list->next;
359- return (tmp->symnum_bf);
360- }
361-
362- /* If the above did not work (probably because #line directives were
363- used in the sourcefile and they messed up our internal tables) we now do
6ed6bacf 364- the ugly linear scan. */
51a5ef0f
PS
365-
366- if (global_remote_debug)
367- fprintf_unfiltered (gdb_stderr, "\ndefaulting to linear scan\n");
368-
369- nprobes = 0;
370- tmp = saved_bf_list;
371- while (tmp != NULL)
372- {
373- nprobes++;
374- if (tmp->symnum_fcn == the_function)
375- {
376- if (global_remote_debug)
377- fprintf_unfiltered (gdb_stderr, "Found in %d probes\n", nprobes);
378- current_head_bf_list = tmp->next;
379- return (tmp->symnum_bf);
380- }
381- tmp = tmp->next;
382- }
383-
384- return (-1);
385-}
386-
387-static SAVED_FUNCTION_PTR saved_function_list = NULL;
388-static SAVED_FUNCTION_PTR saved_function_list_end = NULL;
389-
390-static void
391-clear_function_list (void)
392-{
393- SAVED_FUNCTION_PTR tmp = saved_function_list;
394- SAVED_FUNCTION_PTR next = NULL;
395-
396- while (tmp != NULL)
397- {
398- next = tmp->next;
399- xfree (tmp);
400- tmp = next;
401- }
402-
403- saved_function_list = NULL;
404-}
405-#endif
a7de96f0 406Index: gdb-7.4.50.20120602/gdb/f-lang.h
51a5ef0f 407===================================================================
a7de96f0
PS
408--- gdb-7.4.50.20120602.orig/gdb/f-lang.h 2012-06-02 19:11:54.000000000 +0200
409+++ gdb-7.4.50.20120602/gdb/f-lang.h 2012-06-02 19:13:55.345317970 +0200
410@@ -76,15 +76,10 @@ typedef struct saved_f77_common SAVED_F7
51a5ef0f
PS
411 typedef struct common_entry COMMON_ENTRY, *COMMON_ENTRY_PTR;
412
413 extern SAVED_F77_COMMON_PTR head_common_list; /* Ptr to 1st saved COMMON */
414-extern SAVED_F77_COMMON_PTR tail_common_list; /* Ptr to last saved COMMON */
415-extern SAVED_F77_COMMON_PTR current_common; /* Ptr to current COMMON */
416
a7de96f0
PS
417 extern SAVED_F77_COMMON_PTR find_common_for_function (const char *,
418 const char *);
51a5ef0f
PS
419
420-#define UNINITIALIZED_SECNUM -1
421-#define COMMON_NEEDS_PATCHING(blk) ((blk)->secnum == UNINITIALIZED_SECNUM)
422-
423 #define BLANK_COMMON_NAME_ORIGINAL "#BLNK_COM" /* XLF assigned */
424 #define BLANK_COMMON_NAME_MF77 "__BLNK__" /* MF77 assigned */
425 #define BLANK_COMMON_NAME_LOCAL "__BLANK" /* Local GDB */
a7de96f0 426Index: gdb-7.4.50.20120602/gdb/f-valprint.c
51a5ef0f 427===================================================================
a7de96f0
PS
428--- gdb-7.4.50.20120602.orig/gdb/f-valprint.c 2012-06-02 19:11:54.000000000 +0200
429+++ gdb-7.4.50.20120602/gdb/f-valprint.c 2012-06-02 19:14:11.625313432 +0200
51a5ef0f
PS
430@@ -35,10 +35,6 @@
431 #include "command.h"
432 #include "block.h"
433
434-#if 0
435-static int there_is_a_visible_common_named (char *);
436-#endif
437-
438 extern void _initialize_f_valprint (void);
439 static void info_common_command (char *, int);
a7de96f0
PS
440 static void list_all_visible_commons (const char *);
441@@ -535,67 +531,6 @@ info_common_command (char *comname, int
51a5ef0f
PS
442 comname, funname);
443 }
444
445-/* This function is used to determine whether there is a
6ed6bacf 446- F77 common block visible at the current scope called 'comname'. */
51a5ef0f
PS
447-
448-#if 0
449-static int
450-there_is_a_visible_common_named (char *comname)
451-{
452- SAVED_F77_COMMON_PTR the_common;
453- struct frame_info *fi;
454- char *funname = 0;
455- struct symbol *func;
456-
457- if (comname == NULL)
458- error (_("Cannot deal with NULL common name!"));
459-
460- fi = get_selected_frame (_("No frame selected"));
461-
462- /* The following is generally ripped off from stack.c's routine
6ed6bacf 463- print_frame_info(). */
51a5ef0f
PS
464-
465- func = find_pc_function (fi->pc);
466- if (func)
467- {
468- /* In certain pathological cases, the symtabs give the wrong
469- function (when we are in the first function in a file which
470- is compiled without debugging symbols, the previous function
471- is compiled with debugging symbols, and the "foo.o" symbol
472- that is supposed to tell us where the file with debugging symbols
473- ends has been truncated by ar because it is longer than 15
474- characters).
475-
476- So look in the minimal symbol tables as well, and if it comes
477- up with a larger address for the function use that instead.
478- I don't think this can ever cause any problems; there shouldn't
479- be any minimal symbols in the middle of a function.
6ed6bacf 480- FIXME: (Not necessarily true. What about text labels?) */
51a5ef0f
PS
481-
482- struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (fi->pc);
483-
484- if (msymbol != NULL
485- && (SYMBOL_VALUE_ADDRESS (msymbol)
486- > BLOCK_START (SYMBOL_BLOCK_VALUE (func))))
487- funname = SYMBOL_LINKAGE_NAME (msymbol);
488- else
489- funname = SYMBOL_LINKAGE_NAME (func);
490- }
491- else
492- {
493- struct minimal_symbol *msymbol =
494- lookup_minimal_symbol_by_pc (fi->pc);
495-
496- if (msymbol != NULL)
497- funname = SYMBOL_LINKAGE_NAME (msymbol);
498- }
499-
500- the_common = find_common_for_function (comname, funname);
501-
502- return (the_common ? 1 : 0);
503-}
504-#endif
505-
506 void
507 _initialize_f_valprint (void)
508 {
This page took 0.365556 seconds and 4 git commands to generate.