diff options
Diffstat (limited to 'gas/obsolete/gdb-symbols.c')
-rw-r--r-- | gas/obsolete/gdb-symbols.c | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/gas/obsolete/gdb-symbols.c b/gas/obsolete/gdb-symbols.c deleted file mode 100644 index 8bd8f7d5c12..00000000000 --- a/gas/obsolete/gdb-symbols.c +++ /dev/null @@ -1,129 +0,0 @@ -/* gdb_symbols.c - Deal with symbols for GDB format - Copyright (C) 1987 Free Software Foundation, Inc. - -This file is part of GAS, the GNU Assembler. - -GAS 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 1, or (at your option) -any later version. - -GAS 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 GAS; see the file COPYING. If not, write to -the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - -/* - * During assembly, note requests to place symbol values in the GDB - * symbol file. When symbol values are known and the symbol file is - * in memory, place the symbol values in the memory image of the file. - * - * This has static data: it is not data_sharable. - * - * gdb_symbols_begin () - * Call once before using this package. - * - * gdb_symbols_fixup (symbolP, offset_in_file) - * Remember to put the value of a symbol into the GDB file. - * - * gdb_symbols_emit () - * Perform all the symbol fixups. - * - * uses: - * xmalloc() - * gdb_alter() - */ - -#include "as.h" -#include "struc-symbol.h" - -#define SYM_GROUP (100) /* We allocate storage in lumps this big. */ - - -struct gdb_symbol /* 1 fixup request. */ -{ - symbolS * gs_symbol; - long int gs_offset; /* Where in GDB symbol file. */ -}; -typedef struct gdb_symbol gdb_symbolS; - -struct symbol_fixup_group -{ - struct symbol_fixup_group * sfg_next; - gdb_symbolS sfg_item [SYM_GROUP]; -}; -typedef struct symbol_fixup_group symbol_fixup_groupS; - -static symbol_fixup_groupS * root; -static short int used; /* # of last slot used. */ - /* Counts down from SYM_GROUP. */ - -static symbol_fixup_groupS * /* Make storage for some more reminders. */ -new_sfg () -{ - symbol_fixup_groupS * newP; - char * xmalloc(); - - newP = (symbol_fixup_groupS *) xmalloc ((long)sizeof(symbol_fixup_groupS)); - newP -> sfg_next = root; - used = SYM_GROUP; - root = newP; - return (newP); -} - - -void -gdb_symbols_begin () -{ - root = 0; - (void)new_sfg (); -} - - -void /* Build a reminder to put a symbol value */ -gdb_symbols_fixup (sy, offset) /* into the GDB symbol file. */ - symbolS * sy; /* Which symbol. */ - long int offset; /* Where in GDB symbol file. */ -{ - register symbol_fixup_groupS * p; - register gdb_symbolS * q; - - p = root; - know( used >= 0 ); - if ( used == 0) - { - p = new_sfg (); - } - q = p -> sfg_item + -- used; - q -> gs_symbol = sy; - q -> gs_offset = offset; -} - -void -gdb_symbols_emit () /* Append GDB symbols to object file. */ -{ - symbol_fixup_groupS * sfgP; - void gdb_alter(); - - for (sfgP = root; sfgP; sfgP = sfgP -> sfg_next) - { - register gdb_symbolS * gsP; - register gdb_symbolS * limit; - - limit = sfgP -> sfg_item + - (sfgP -> sfg_next ? 0 : used); - for (gsP = sfgP -> sfg_item + SYM_GROUP - 1; - gsP >= limit; - gsP --) - { - gdb_alter (gsP -> gs_offset, - (long int) gsP -> gs_symbol -> sy_value); - } - } -} - -/* end: gdb_symbols.c */ |