--- /dev/null
+Index: gdb-7.2.50.20110117/gdb/f-lang.c
+===================================================================
+--- gdb-7.2.50.20110117.orig/gdb/f-lang.c 2011-01-07 20:36:16.000000000 +0100
++++ gdb-7.2.50.20110117/gdb/f-lang.c 2011-01-17 15:56:07.000000000 +0100
+@@ -57,20 +57,6 @@ typedef struct saved_bf_symnum SAVED_BF,
+ /* Local functions */
+
+ extern void _initialize_f_language (void);
+-#if 0
+-static void clear_function_list (void);
+-static long get_bf_for_fcn (long);
+-static void clear_bf_list (void);
+-static void patch_all_commons_by_name (char *, CORE_ADDR, int);
+-static SAVED_F77_COMMON_PTR find_first_common_named (char *);
+-static void add_common_entry (struct symbol *);
+-static void add_common_block (char *, CORE_ADDR, int, char *);
+-static SAVED_FUNCTION *allocate_saved_function_node (void);
+-static SAVED_BF_PTR allocate_saved_bf_node (void);
+-static COMMON_ENTRY_PTR allocate_common_entry_node (void);
+-static SAVED_F77_COMMON_PTR allocate_saved_f77_common_node (void);
+-static void patch_common_entries (SAVED_F77_COMMON_PTR, CORE_ADDR, int);
+-#endif
+
+ static void f_printchar (int c, struct type *type, struct ui_file * stream);
+ static void f_emit_char (int c, struct type *type,
+@@ -461,185 +447,7 @@ _initialize_f_language (void)
+ add_language (&f_language_defn);
+ }
+
+-#if 0
+-static SAVED_BF_PTR
+-allocate_saved_bf_node (void)
+-{
+- SAVED_BF_PTR new;
+-
+- new = (SAVED_BF_PTR) xmalloc (sizeof (SAVED_BF));
+- return (new);
+-}
+-
+-static SAVED_FUNCTION *
+-allocate_saved_function_node (void)
+-{
+- SAVED_FUNCTION *new;
+-
+- new = (SAVED_FUNCTION *) xmalloc (sizeof (SAVED_FUNCTION));
+- return (new);
+-}
+-
+-static SAVED_F77_COMMON_PTR
+-allocate_saved_f77_common_node (void)
+-{
+- SAVED_F77_COMMON_PTR new;
+-
+- new = (SAVED_F77_COMMON_PTR) xmalloc (sizeof (SAVED_F77_COMMON));
+- return (new);
+-}
+-
+-static COMMON_ENTRY_PTR
+-allocate_common_entry_node (void)
+-{
+- COMMON_ENTRY_PTR new;
+-
+- new = (COMMON_ENTRY_PTR) xmalloc (sizeof (COMMON_ENTRY));
+- return (new);
+-}
+-#endif
+-
+ SAVED_F77_COMMON_PTR head_common_list = NULL; /* Ptr to 1st saved COMMON */
+-SAVED_F77_COMMON_PTR tail_common_list = NULL; /* Ptr to last saved COMMON */
+-SAVED_F77_COMMON_PTR current_common = NULL; /* Ptr to current COMMON */
+-
+-#if 0
+-static SAVED_BF_PTR saved_bf_list = NULL; /* Ptr to (.bf,function)
+- list */
+-static SAVED_BF_PTR saved_bf_list_end = NULL; /* Ptr to above list's end */
+-static SAVED_BF_PTR current_head_bf_list = NULL; /* Current head of
+- above list. */
+-
+-static SAVED_BF_PTR tmp_bf_ptr; /* Generic temporary for use
+- in macros. */
+-
+-/* The following function simply enters a given common block onto
+- the global common block chain. */
+-
+-static void
+-add_common_block (char *name, CORE_ADDR offset, int secnum, char *func_stab)
+-{
+- SAVED_F77_COMMON_PTR tmp;
+- char *c, *local_copy_func_stab;
+-
+- /* If the COMMON block we are trying to add has a blank
+- name (i.e. "#BLNK_COM") then we set it to __BLANK
+- because the darn "#" character makes GDB's input
+- parser have fits. */
+-
+-
+- if (strcmp (name, BLANK_COMMON_NAME_ORIGINAL) == 0
+- || strcmp (name, BLANK_COMMON_NAME_MF77) == 0)
+- {
+-
+- xfree (name);
+- name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1);
+- strcpy (name, BLANK_COMMON_NAME_LOCAL);
+- }
+-
+- tmp = allocate_saved_f77_common_node ();
+-
+- local_copy_func_stab = xmalloc (strlen (func_stab) + 1);
+- strcpy (local_copy_func_stab, func_stab);
+-
+- tmp->name = xmalloc (strlen (name) + 1);
+-
+- /* local_copy_func_stab is a stabstring, let us first extract the
+- function name from the stab by NULLing out the ':' character. */
+-
+-
+- c = NULL;
+- c = strchr (local_copy_func_stab, ':');
+-
+- if (c)
+- *c = '\0';
+- else
+- error (_("Malformed function STAB found in add_common_block()"));
+-
+-
+- tmp->owning_function = xmalloc (strlen (local_copy_func_stab) + 1);
+-
+- strcpy (tmp->owning_function, local_copy_func_stab);
+-
+- strcpy (tmp->name, name);
+- tmp->offset = offset;
+- tmp->next = NULL;
+- tmp->entries = NULL;
+- tmp->secnum = secnum;
+-
+- current_common = tmp;
+-
+- if (head_common_list == NULL)
+- {
+- head_common_list = tail_common_list = tmp;
+- }
+- else
+- {
+- tail_common_list->next = tmp;
+- tail_common_list = tmp;
+- }
+-}
+-#endif
+-
+-/* The following function simply enters a given common entry onto
+- the "current_common" block that has been saved away. */
+-
+-#if 0
+-static void
+-add_common_entry (struct symbol *entry_sym_ptr)
+-{
+- COMMON_ENTRY_PTR tmp;
+-
+-
+-
+- /* The order of this list is important, since
+- we expect the entries to appear in decl.
+- order when we later issue "info common" calls. */
+-
+- tmp = allocate_common_entry_node ();
+-
+- tmp->next = NULL;
+- tmp->symbol = entry_sym_ptr;
+-
+- if (current_common == NULL)
+- error (_("Attempt to add COMMON entry with no block open!"));
+- else
+- {
+- if (current_common->entries == NULL)
+- {
+- current_common->entries = tmp;
+- current_common->end_of_entries = tmp;
+- }
+- else
+- {
+- current_common->end_of_entries->next = tmp;
+- current_common->end_of_entries = tmp;
+- }
+- }
+-}
+-#endif
+-
+-/* This routine finds the first encountred COMMON block named "name". */
+-
+-#if 0
+-static SAVED_F77_COMMON_PTR
+-find_first_common_named (char *name)
+-{
+-
+- SAVED_F77_COMMON_PTR tmp;
+-
+- tmp = head_common_list;
+-
+- while (tmp != NULL)
+- {
+- if (strcmp (tmp->name, name) == 0)
+- return (tmp);
+- else
+- tmp = tmp->next;
+- }
+- return (NULL);
+-}
+-#endif
+
+ /* This routine finds the first encountred COMMON block named "name"
+ that belongs to function funcname. */
+@@ -662,193 +470,3 @@ find_common_for_function (char *name, ch
+ }
+ return (NULL);
+ }
+-
+-
+-#if 0
+-
+-/* The following function is called to patch up the offsets
+- for the statics contained in the COMMON block named
+- "name." */
+-
+-static void
+-patch_common_entries (SAVED_F77_COMMON_PTR blk, CORE_ADDR offset, int secnum)
+-{
+- COMMON_ENTRY_PTR entry;
+-
+- blk->offset = offset; /* Keep this around for future use. */
+-
+- entry = blk->entries;
+-
+- while (entry != NULL)
+- {
+- SYMBOL_VALUE (entry->symbol) += offset;
+- SYMBOL_SECTION (entry->symbol) = secnum;
+-
+- entry = entry->next;
+- }
+- blk->secnum = secnum;
+-}
+-
+-/* Patch all commons named "name" that need patching.Since COMMON
+- blocks occur with relative infrequency, we simply do a linear scan on
+- the name. Eventually, the best way to do this will be a
+- hashed-lookup. Secnum is the section number for the .bss section
+- (which is where common data lives). */
+-
+-static void
+-patch_all_commons_by_name (char *name, CORE_ADDR offset, int secnum)
+-{
+-
+- SAVED_F77_COMMON_PTR tmp;
+-
+- /* For blank common blocks, change the canonical reprsentation
+- of a blank name */
+-
+- if (strcmp (name, BLANK_COMMON_NAME_ORIGINAL) == 0
+- || strcmp (name, BLANK_COMMON_NAME_MF77) == 0)
+- {
+- xfree (name);
+- name = alloca (strlen (BLANK_COMMON_NAME_LOCAL) + 1);
+- strcpy (name, BLANK_COMMON_NAME_LOCAL);
+- }
+-
+- tmp = head_common_list;
+-
+- while (tmp != NULL)
+- {
+- if (COMMON_NEEDS_PATCHING (tmp))
+- if (strcmp (tmp->name, name) == 0)
+- patch_common_entries (tmp, offset, secnum);
+-
+- tmp = tmp->next;
+- }
+-}
+-#endif
+-
+-/* This macro adds the symbol-number for the start of the function
+- (the symbol number of the .bf) referenced by symnum_fcn to a
+- list. This list, in reality should be a FIFO queue but since
+- #line pragmas sometimes cause line ranges to get messed up
+- we simply create a linear list. This list can then be searched
+- first by a queueing algorithm and upon failure fall back to
+- a linear scan. */
+-
+-#if 0
+-#define ADD_BF_SYMNUM(bf_sym,fcn_sym) \
+- \
+- if (saved_bf_list == NULL) \
+-{ \
+- tmp_bf_ptr = allocate_saved_bf_node(); \
+- \
+- tmp_bf_ptr->symnum_bf = (bf_sym); \
+- tmp_bf_ptr->symnum_fcn = (fcn_sym); \
+- tmp_bf_ptr->next = NULL; \
+- \
+- current_head_bf_list = saved_bf_list = tmp_bf_ptr; \
+- saved_bf_list_end = tmp_bf_ptr; \
+- } \
+-else \
+-{ \
+- tmp_bf_ptr = allocate_saved_bf_node(); \
+- \
+- tmp_bf_ptr->symnum_bf = (bf_sym); \
+- tmp_bf_ptr->symnum_fcn = (fcn_sym); \
+- tmp_bf_ptr->next = NULL; \
+- \
+- saved_bf_list_end->next = tmp_bf_ptr; \
+- saved_bf_list_end = tmp_bf_ptr; \
+- }
+-#endif
+-
+-/* This function frees the entire (.bf,function) list. */
+-
+-#if 0
+-static void
+-clear_bf_list (void)
+-{
+-
+- SAVED_BF_PTR tmp = saved_bf_list;
+- SAVED_BF_PTR next = NULL;
+-
+- while (tmp != NULL)
+- {
+- next = tmp->next;
+- xfree (tmp);
+- tmp = next;
+- }
+- saved_bf_list = NULL;
+-}
+-#endif
+-
+-int global_remote_debug;
+-
+-#if 0
+-
+-static long
+-get_bf_for_fcn (long the_function)
+-{
+- SAVED_BF_PTR tmp;
+- int nprobes = 0;
+-
+- /* First use a simple queuing algorithm (i.e. look and see if the
+- item at the head of the queue is the one you want). */
+-
+- if (saved_bf_list == NULL)
+- internal_error (__FILE__, __LINE__,
+- _("cannot get .bf node off empty list"));
+-
+- if (current_head_bf_list != NULL)
+- if (current_head_bf_list->symnum_fcn == the_function)
+- {
+- if (global_remote_debug)
+- fprintf_unfiltered (gdb_stderr, "*");
+-
+- tmp = current_head_bf_list;
+- current_head_bf_list = current_head_bf_list->next;
+- return (tmp->symnum_bf);
+- }
+-
+- /* If the above did not work (probably because #line directives were
+- used in the sourcefile and they messed up our internal tables) we now do
+- the ugly linear scan. */
+-
+- if (global_remote_debug)
+- fprintf_unfiltered (gdb_stderr, "\ndefaulting to linear scan\n");
+-
+- nprobes = 0;
+- tmp = saved_bf_list;
+- while (tmp != NULL)
+- {
+- nprobes++;
+- if (tmp->symnum_fcn == the_function)
+- {
+- if (global_remote_debug)
+- fprintf_unfiltered (gdb_stderr, "Found in %d probes\n", nprobes);
+- current_head_bf_list = tmp->next;
+- return (tmp->symnum_bf);
+- }
+- tmp = tmp->next;
+- }
+-
+- return (-1);
+-}
+-
+-static SAVED_FUNCTION_PTR saved_function_list = NULL;
+-static SAVED_FUNCTION_PTR saved_function_list_end = NULL;
+-
+-static void
+-clear_function_list (void)
+-{
+- SAVED_FUNCTION_PTR tmp = saved_function_list;
+- SAVED_FUNCTION_PTR next = NULL;
+-
+- while (tmp != NULL)
+- {
+- next = tmp->next;
+- xfree (tmp);
+- tmp = next;
+- }
+-
+- saved_function_list = NULL;
+-}
+-#endif
+Index: gdb-7.2.50.20110117/gdb/f-lang.h
+===================================================================
+--- gdb-7.2.50.20110117.orig/gdb/f-lang.h 2011-01-17 15:47:37.000000000 +0100
++++ gdb-7.2.50.20110117/gdb/f-lang.h 2011-01-17 15:54:14.000000000 +0100
+@@ -76,14 +76,9 @@ typedef struct saved_f77_common SAVED_F7
+ typedef struct common_entry COMMON_ENTRY, *COMMON_ENTRY_PTR;
+
+ extern SAVED_F77_COMMON_PTR head_common_list; /* Ptr to 1st saved COMMON */
+-extern SAVED_F77_COMMON_PTR tail_common_list; /* Ptr to last saved COMMON */
+-extern SAVED_F77_COMMON_PTR current_common; /* Ptr to current COMMON */
+
+ extern SAVED_F77_COMMON_PTR find_common_for_function (char *, char *);
+
+-#define UNINITIALIZED_SECNUM -1
+-#define COMMON_NEEDS_PATCHING(blk) ((blk)->secnum == UNINITIALIZED_SECNUM)
+-
+ #define BLANK_COMMON_NAME_ORIGINAL "#BLNK_COM" /* XLF assigned */
+ #define BLANK_COMMON_NAME_MF77 "__BLNK__" /* MF77 assigned */
+ #define BLANK_COMMON_NAME_LOCAL "__BLANK" /* Local GDB */
+Index: gdb-7.2.50.20110117/gdb/f-valprint.c
+===================================================================
+--- gdb-7.2.50.20110117.orig/gdb/f-valprint.c 2011-01-17 15:47:37.000000000 +0100
++++ gdb-7.2.50.20110117/gdb/f-valprint.c 2011-01-17 15:54:36.000000000 +0100
+@@ -35,10 +35,6 @@
+ #include "command.h"
+ #include "block.h"
+
+-#if 0
+-static int there_is_a_visible_common_named (char *);
+-#endif
+-
+ extern void _initialize_f_valprint (void);
+ static void info_common_command (char *, int);
+ static void list_all_visible_commons (char *);
+@@ -604,67 +600,6 @@ info_common_command (char *comname, int
+ comname, funname);
+ }
+
+-/* This function is used to determine whether there is a
+- F77 common block visible at the current scope called 'comname'. */
+-
+-#if 0
+-static int
+-there_is_a_visible_common_named (char *comname)
+-{
+- SAVED_F77_COMMON_PTR the_common;
+- struct frame_info *fi;
+- char *funname = 0;
+- struct symbol *func;
+-
+- if (comname == NULL)
+- error (_("Cannot deal with NULL common name!"));
+-
+- fi = get_selected_frame (_("No frame selected"));
+-
+- /* The following is generally ripped off from stack.c's routine
+- print_frame_info(). */
+-
+- func = find_pc_function (fi->pc);
+- if (func)
+- {
+- /* In certain pathological cases, the symtabs give the wrong
+- function (when we are in the first function in a file which
+- is compiled without debugging symbols, the previous function
+- is compiled with debugging symbols, and the "foo.o" symbol
+- that is supposed to tell us where the file with debugging symbols
+- ends has been truncated by ar because it is longer than 15
+- characters).
+-
+- So look in the minimal symbol tables as well, and if it comes
+- up with a larger address for the function use that instead.
+- I don't think this can ever cause any problems; there shouldn't
+- be any minimal symbols in the middle of a function.
+- FIXME: (Not necessarily true. What about text labels?) */
+-
+- struct minimal_symbol *msymbol = lookup_minimal_symbol_by_pc (fi->pc);
+-
+- if (msymbol != NULL
+- && (SYMBOL_VALUE_ADDRESS (msymbol)
+- > BLOCK_START (SYMBOL_BLOCK_VALUE (func))))
+- funname = SYMBOL_LINKAGE_NAME (msymbol);
+- else
+- funname = SYMBOL_LINKAGE_NAME (func);
+- }
+- else
+- {
+- struct minimal_symbol *msymbol =
+- lookup_minimal_symbol_by_pc (fi->pc);
+-
+- if (msymbol != NULL)
+- funname = SYMBOL_LINKAGE_NAME (msymbol);
+- }
+-
+- the_common = find_common_for_function (comname, funname);
+-
+- return (the_common ? 1 : 0);
+-}
+-#endif
+-
+ void
+ _initialize_f_valprint (void)
+ {