diff options
author | Tom Tromey <tromey@redhat.com> | 1998-04-22 06:10:03 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 1998-04-22 06:10:03 +0000 |
commit | 48401fcf8c8440e57ed0dbc2ade4828b9416090c (patch) | |
tree | 044bb8b9e142bd18f50bfb0311ea9e47736aafc7 /gas/ecoff.c | |
parent | 9d04d6183d792349aaab84ecb1338b9445c0981b (diff) | |
download | gdb-48401fcf8c8440e57ed0dbc2ade4828b9416090c.zip gdb-48401fcf8c8440e57ed0dbc2ade4828b9416090c.tar.gz gdb-48401fcf8c8440e57ed0dbc2ade4828b9416090c.tar.bz2 |
* Many files: Added gettext invocations around user-visible
strings.
* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
HAVE_LC_MESSAGES): Define.
* dep-in.sed: Added asintl.h.
* po/Make-in: New file.
* gasp.c (main): Call setlocale, bindtextdomain, and textdomain.
Include "asintl.h".
* read.c (Z_): Renamed from `_'.
* Makefile.am (SUBDIRS): Added po.
(POTFILES): new macro.
(po/POTFILES.in): New target.
($(OBJS)): Added asintl.h.
(HFILES): Likewise.
(INCLUDES): Added -DLOCALEDIR, -I$(top_srcdir)/../intl.
(as_new_LDADD): Added $(INTLLIBS).
(as_new_DEPENDENCIES): Added $(INTLDEPS).
(gasp_new_LDADD): Added $(INTLLIBS).
(gasp_new_DEPENDENCIES): New macro.
* configure, aclocal.m4: Rebuilt.
* configure.in: Call CY_GNU_GETTEXT. Generate po/Makefile.in and
po/Makefile.
(ALL_LINGUAS): Define.
* macro.c: Include "asintl.h".
* as.c (main): Call setlocale, bindtextdomain, and textdomain.
* as.h: Include "asintl.h".
* config/tc-i386.c (ordinal_names): Removed.
(md_assemble): Changed error text to avoid ordinal_names.
(i386_operand): Likewise.
(reloc): Added as_bad to avoid i18n problems.
(tc_gen_reloc): Likewise.
* config/tc-arm.c (bad_args): Now a #define.
(bad_pc): Likewise.
* config/obj-vms.c (VMS_stab_parse): Changed type of
`long_const_msg'.
(global_symbol_directory): Unified strings to avoid i18n
problems.
* config/tc-m68k.c (get_reloc_code): Added some as_bad calls to
avoid i18n problems.
* config/tc-ns32k.c (reloc): Added as_bad to avoid i18n problems.
* config/tc-ppc.c (md_apply_fix3): Added as_bad_where to avoid
i18n problems.
* config/tc-sh.c (md_convert_frag): Added as_bad to avoid i18n
problems.
start-sanitize-v850
* config/tc-v850.c (md_assemble): Changed C++ comment into C
comment.
end-sanitize-v850
* config/tc-vax.c (md_assemble): Added as_warn to avoid i18n
problems.
* as.c (print_version_id): Added an fprintf to avoid i18n
problems.
* cond.c (cond_finish_check): Added as_bad call to avoid i18n
problems.
* expr.c (expr): Added as_warn call to avoid i18n problems.
* messages.c (as_assert): Changed code to avoid i18n problems.
(as_abort): Likewise.
* read.c (pseudo_set): Added as_bad call to avoid i18n problems.
(s_space): Likewise.
* po/Make-in, po/POTFILES.in, po/gas.pot: New files.
Diffstat (limited to 'gas/ecoff.c')
-rw-r--r-- | gas/ecoff.c | 245 |
1 files changed, 80 insertions, 165 deletions
diff --git a/gas/ecoff.c b/gas/ecoff.c index 0821922..f8e538f 100644 --- a/gas/ecoff.c +++ b/gas/ecoff.c @@ -1,5 +1,5 @@ /* ECOFF debugging support. - Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc. Contributed by Cygnus Support. This file was put together by Ian Lance Taylor <ian@cygnus.com>. A good deal of it comes directly from mips-tfile.c, by Michael @@ -768,13 +768,24 @@ enum aux_type { If PAGE_SIZE is > 4096, the string length in the shash_t structure can't be represented (assuming there are strings > 4096 bytes). */ +/* FIXME: Yes, there can be such strings while emitting C++ class debug + info. Templates are the offender here, the test case in question + having a mangled class name of + + t7rb_tree4Z4xkeyZt4pair2ZC4xkeyZt7xsocket1Z4UserZt9select1st2Zt4pair\ + 2ZC4xkeyZt7xsocket1Z4UserZ4xkeyZt4less1Z4xkey + + Repeat that a couple dozen times while listing the class members and + you've got strings over 4k. Hack around this for now by increasing + the page size. A proper solution would abandon this structure scheme + certainly for very large strings, and possibly entirely. */ + #ifndef PAGE_SIZE -#define PAGE_SIZE 4096 /* size of varray pages */ +#define PAGE_SIZE (8*1024) /* size of varray pages */ #endif #define PAGE_USIZE ((unsigned long) PAGE_SIZE) - #ifndef MAX_CLUSTER_PAGES /* # pages to get from system */ #define MAX_CLUSTER_PAGES 63 #endif @@ -1482,7 +1493,6 @@ static forward_t *allocate_forward PARAMS ((void)); static thead_t *allocate_thead PARAMS ((void)); static void free_thead PARAMS ((thead_t *ptr)); static lineno_list_t *allocate_lineno_list PARAMS ((void)); -static void generate_ecoff_stab PARAMS ((int, const char *, int, int, int)); /* This function should be called when the assembler starts up. */ @@ -1560,7 +1570,7 @@ add_string (vp, hash_tbl, str, ret_hash) register shash_t *hash_ptr; if (len >= PAGE_USIZE) - as_fatal ("String too big (%lu bytes)", len); + as_fatal (_("String too big (%lu bytes)"), len); hash_ptr = (shash_t *) hash_find (hash_tbl, str); if (hash_ptr == (shash_t *) NULL) @@ -1586,7 +1596,7 @@ add_string (vp, hash_tbl, str, ret_hash) err = hash_insert (hash_tbl, str, (char *) hash_ptr); if (err) - as_fatal ("Inserting \"%s\" into string hash table: %s", + as_fatal (_("Inserting \"%s\" into string hash table: %s"), str, err); } @@ -1618,7 +1628,7 @@ add_ecoff_symbol (str, type, storage, sym_value, addend, value, indx) shash_t *hash_ptr = (shash_t *) NULL; if (cur_file_ptr == (efdr_t *) NULL) - as_fatal ("no current file pointer"); + as_fatal (_("no current file pointer")); vp = &cur_file_ptr->symbols; @@ -1705,7 +1715,7 @@ add_ecoff_symbol (str, type, storage, sym_value, addend, value, indx) case st_End: pscope = cur_file_ptr->cur_scope; if (pscope == (scope_t *) NULL) - as_fatal ("too many st_End's"); + as_fatal (_("too many st_End's")); else { st_t begin_type = (st_t) pscope->lsym->ecoff_sym.asym.st; @@ -1811,7 +1821,7 @@ add_aux_sym_symint (aux_word) register aux_t *aux_ptr; if (cur_file_ptr == (efdr_t *) NULL) - as_fatal ("no current file pointer"); + as_fatal (_("no current file pointer")); vp = &cur_file_ptr->aux_syms; @@ -1837,7 +1847,7 @@ add_aux_sym_rndx (file_index, sym_index) register aux_t *aux_ptr; if (cur_file_ptr == (efdr_t *) NULL) - as_fatal ("no current file pointer"); + as_fatal (_("no current file pointer")); vp = &cur_file_ptr->aux_syms; @@ -1869,7 +1879,7 @@ add_aux_sym_tir (t, state, hash_tbl) AUXU aux; if (cur_file_ptr == (efdr_t *) NULL) - as_fatal ("no current file pointer"); + as_fatal (_("no current file pointer")); vp = &cur_file_ptr->aux_syms; @@ -2025,7 +2035,7 @@ get_tag (tag, sym, basic_type) tag_t *tag_ptr; if (cur_file_ptr == (efdr_t *) NULL) - as_fatal ("no current file pointer"); + as_fatal (_("no current file pointer")); hash_ptr = (shash_t *) hash_find (tag_hash, tag); @@ -2051,7 +2061,7 @@ get_tag (tag, sym, basic_type) hash_ptr = allocate_shash (); err = hash_insert (tag_hash, perm, (char *) hash_ptr); if (err) - as_fatal ("Inserting \"%s\" into tag hash table: %s", + as_fatal (_("Inserting \"%s\" into tag hash table: %s"), tag, err); hash_ptr->string = perm; } @@ -2139,7 +2149,7 @@ add_procedure (func) #endif if (cur_file_ptr == (efdr_t *) NULL) - as_fatal ("no current file pointer"); + as_fatal (_("no current file pointer")); vp = &cur_file_ptr->procs; @@ -2211,7 +2221,7 @@ add_file (file_name, indx, fake) char *file; if (first_file != (efdr_t *) NULL) - as_fatal ("fake .file after real one"); + as_fatal (_("fake .file after real one")); as_where (&file, (unsigned int *) NULL); file_name = (const char *) file; @@ -2299,7 +2309,7 @@ add_file (file_name, indx, fake) (shash_t **)0); if (strlen (file_name) > PAGE_USIZE - 2) - as_fatal ("Filename goes over one page boundary."); + as_fatal (_("Filename goes over one page boundary.")); /* Push the start of the filename. We assume that the filename will be stored at string offset 1. */ @@ -2434,14 +2444,14 @@ ecoff_directive_begin (ignore) if (cur_file_ptr == (efdr_t *) NULL) { - as_warn (".begin directive without a preceding .file directive"); + as_warn (_(".begin directive without a preceding .file directive")); demand_empty_rest_of_line (); return; } if (cur_proc_ptr == (proc_t *) NULL) { - as_warn (".begin directive without a preceding .ent directive"); + as_warn (_(".begin directive without a preceding .ent directive")); demand_empty_rest_of_line (); return; } @@ -2473,14 +2483,14 @@ ecoff_directive_bend (ignore) if (cur_file_ptr == (efdr_t *) NULL) { - as_warn (".bend directive without a preceding .file directive"); + as_warn (_(".bend directive without a preceding .file directive")); demand_empty_rest_of_line (); return; } if (cur_proc_ptr == (proc_t *) NULL) { - as_warn (".bend directive without a preceding .ent directive"); + as_warn (_(".bend directive without a preceding .ent directive")); demand_empty_rest_of_line (); return; } @@ -2493,7 +2503,7 @@ ecoff_directive_bend (ignore) the symbol. */ endsym = symbol_find (name); if (endsym == (symbolS *) NULL) - as_warn (".bend directive names unknown symbol"); + as_warn (_(".bend directive names unknown symbol")); else (void) add_ecoff_symbol ((const char *) NULL, st_End, sc_Text, endsym, (bfd_vma) 0, (symint_t) 0, (symint_t) 0); @@ -2537,9 +2547,9 @@ ecoff_directive_def (ignore) name_end = get_symbol_end (); if (coff_sym_name != (char *) NULL) - as_warn (".def pseudo-op used inside of .def/.endef; ignored"); + as_warn (_(".def pseudo-op used inside of .def/.endef; ignored")); else if (*name == '\0') - as_warn ("Empty symbol name in .def; ignored"); + as_warn (_("Empty symbol name in .def; ignored")); else { if (coff_sym_name != (char *) NULL) @@ -2577,7 +2587,7 @@ ecoff_directive_dim (ignore) if (coff_sym_name == (char *) NULL) { - as_warn (".dim pseudo-op used outside of .def/.endef; ignored"); + as_warn (_(".dim pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); return; } @@ -2592,7 +2602,7 @@ ecoff_directive_dim (ignore) { if (*input_line_pointer != '\n' && *input_line_pointer != ';') - as_warn ("Badly formed .dim directive"); + as_warn (_("Badly formed .dim directive")); break; } } @@ -2605,7 +2615,7 @@ ecoff_directive_dim (ignore) { if (coff_type.num_dims >= N_TQ) { - as_warn ("Too many .dim entries"); + as_warn (_("Too many .dim entries")); break; } coff_type.dimensions[coff_type.num_dims] = dimens[i]; @@ -2626,7 +2636,7 @@ ecoff_directive_scl (ignore) if (coff_sym_name == (char *) NULL) { - as_warn (".scl pseudo-op used outside of .def/.endef; ignored"); + as_warn (_(".scl pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); return; } @@ -2652,7 +2662,7 @@ ecoff_directive_size (ignore) if (coff_sym_name == (char *) NULL) { - as_warn (".size pseudo-op used outside of .def/.endef; ignored"); + as_warn (_(".size pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); return; } @@ -2667,7 +2677,7 @@ ecoff_directive_size (ignore) { if (*input_line_pointer != '\n' && *input_line_pointer != ';') - as_warn ("Badly formed .size directive"); + as_warn (_("Badly formed .size directive")); break; } } @@ -2680,7 +2690,7 @@ ecoff_directive_size (ignore) { if (coff_type.num_sizes >= N_TQ) { - as_warn ("Too many .size entries"); + as_warn (_("Too many .size entries")); break; } coff_type.sizes[coff_type.num_sizes] = sizes[i]; @@ -2703,7 +2713,7 @@ ecoff_directive_type (ignore) if (coff_sym_name == (char *) NULL) { - as_warn (".type pseudo-op used outside of .def/.endef; ignored"); + as_warn (_(".type pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); return; } @@ -2721,7 +2731,7 @@ ecoff_directive_type (ignore) /* FIXME: We could handle this by setting the continued bit. There would still be a limit: the .type argument can not be infinite. */ - as_warn ("The type of %s is too complex; it will be simplified", + as_warn (_("The type of %s is too complex; it will be simplified"), coff_sym_name); break; } @@ -2732,7 +2742,7 @@ ecoff_directive_type (ignore) else if (ISARY (val)) *--tq_ptr = tq_Array; else - as_fatal ("Unrecognized .type argument"); + as_fatal (_("Unrecognized .type argument")); val = DECREF (val); } @@ -2771,7 +2781,7 @@ ecoff_directive_tag (ignore) if (coff_sym_name == (char *) NULL) { - as_warn (".tag pseudo-op used outside of .def/.endef; ignored"); + as_warn (_(".tag pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); return; } @@ -2798,7 +2808,7 @@ ecoff_directive_val (ignore) if (coff_sym_name == (char *) NULL) { - as_warn (".val pseudo-op used outside of .def/.endef; ignored"); + as_warn (_(".val pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); return; } @@ -2806,7 +2816,7 @@ ecoff_directive_val (ignore) expression (&exp); if (exp.X_op != O_constant && exp.X_op != O_symbol) { - as_bad (".val expression is too copmlex"); + as_bad (_(".val expression is too copmlex")); demand_empty_rest_of_line (); return; } @@ -2837,7 +2847,7 @@ ecoff_directive_endef (ignore) if (coff_sym_name == (char *) NULL) { - as_warn (".endef pseudo-op used before .def; ignored"); + as_warn (_(".endef pseudo-op used before .def; ignored")); return; } @@ -2863,7 +2873,7 @@ ecoff_directive_endef (ignore) if (coff_type.num_sizes != 1 || diff < 0) { - as_warn ("Bad COFF debugging info"); + as_warn (_("Bad COFF debugging info")); return; } @@ -2912,7 +2922,7 @@ ecoff_directive_endef (ignore) { if (coff_tag == (char *) NULL) { - as_warn ("No tag specified for %s", name); + as_warn (_("No tag specified for %s"), name); return; } @@ -2944,7 +2954,7 @@ ecoff_directive_endef (ignore) if (coff_type.num_sizes - coff_type.num_dims - coff_type.extra_sizes != 1) { - as_warn ("Bad COFF debugging information"); + as_warn (_("Bad COFF debugging information")); return; } else @@ -3016,14 +3026,14 @@ ecoff_directive_end (ignore) if (cur_file_ptr == (efdr_t *) NULL) { - as_warn (".end directive without a preceding .file directive"); + as_warn (_(".end directive without a preceding .file directive")); demand_empty_rest_of_line (); return; } if (cur_proc_ptr == (proc_t *) NULL) { - as_warn (".end directive without a preceding .ent directive"); + as_warn (_(".end directive without a preceding .ent directive")); demand_empty_rest_of_line (); return; } @@ -3034,7 +3044,7 @@ ecoff_directive_end (ignore) ch = *name; if (! is_name_beginner (ch)) { - as_warn (".end directive has no name"); + as_warn (_(".end directive has no name")); *input_line_pointer = name_end; demand_empty_rest_of_line (); return; @@ -3046,7 +3056,7 @@ ecoff_directive_end (ignore) symbol. */ ent = symbol_find (name); if (ent == (symbolS *) NULL) - as_warn (".end directive names unknown symbol"); + as_warn (_(".end directive names unknown symbol")); else (void) add_ecoff_symbol ((const char *) NULL, st_End, sc_Text, symbol_new ("L0\001", now_seg, @@ -3075,7 +3085,7 @@ ecoff_directive_ent (ignore) if (cur_proc_ptr != (proc_t *) NULL) { - as_warn ("second .ent directive found before .end directive"); + as_warn (_("second .ent directive found before .end directive")); demand_empty_rest_of_line (); return; } @@ -3086,7 +3096,7 @@ ecoff_directive_ent (ignore) ch = *name; if (! is_name_beginner (ch)) { - as_warn (".ent directive has no name"); + as_warn (_(".ent directive has no name")); *input_line_pointer = name_end; demand_empty_rest_of_line (); return; @@ -3149,7 +3159,7 @@ ecoff_directive_file (ignore) if (cur_proc_ptr != (proc_t *) NULL) { - as_warn ("No way to handle .file within .ent/.end section"); + as_warn (_("No way to handle .file within .ent/.end section")); demand_empty_rest_of_line (); return; } @@ -3174,14 +3184,14 @@ ecoff_directive_fmask (ignore) if (cur_proc_ptr == (proc_t *) NULL) { - as_warn (".fmask outside of .ent"); + as_warn (_(".fmask outside of .ent")); demand_empty_rest_of_line (); return; } if (get_absolute_expression_and_terminator (&val) != ',') { - as_warn ("Bad .fmask directive"); + as_warn (_("Bad .fmask directive")); --input_line_pointer; demand_empty_rest_of_line (); return; @@ -3203,7 +3213,7 @@ ecoff_directive_frame (ignore) if (cur_proc_ptr == (proc_t *) NULL) { - as_warn (".frame outside of .ent"); + as_warn (_(".frame outside of .ent")); demand_empty_rest_of_line (); return; } @@ -3214,7 +3224,7 @@ ecoff_directive_frame (ignore) if (*input_line_pointer++ != ',' || get_absolute_expression_and_terminator (&val) != ',') { - as_warn ("Bad .frame directive"); + as_warn (_("Bad .frame directive")); --input_line_pointer; demand_empty_rest_of_line (); return; @@ -3243,14 +3253,14 @@ ecoff_directive_mask (ignore) if (cur_proc_ptr == (proc_t *) NULL) { - as_warn (".mask outside of .ent"); + as_warn (_(".mask outside of .ent")); demand_empty_rest_of_line (); return; } if (get_absolute_expression_and_terminator (&val) != ',') { - as_warn ("Bad .mask directive"); + as_warn (_("Bad .mask directive")); --input_line_pointer; demand_empty_rest_of_line (); return; @@ -3273,14 +3283,14 @@ ecoff_directive_loc (ignore) if (cur_file_ptr == (efdr_t *) NULL) { - as_warn (".loc before .file"); + as_warn (_(".loc before .file")); demand_empty_rest_of_line (); return; } if (now_seg != text_section) { - as_warn (".loc outside of .text"); + as_warn (_(".loc outside of .text")); demand_empty_rest_of_line (); return; } @@ -3377,7 +3387,8 @@ mark_stabs (ignore) } /* Parse .weakext directives. */ - +#ifndef TC_MIPS +/* For TC_MIPS use the version in tc-mips.c. */ void ecoff_directive_weakext (ignore) int ignore; @@ -3398,7 +3409,7 @@ ecoff_directive_weakext (ignore) { if (S_IS_DEFINED (symbolP)) { - as_bad ("Ignoring attempt to redefine symbol `%s'.", + as_bad (_("Ignoring attempt to redefine symbol `%s'."), S_GET_NAME (symbolP)); ignore_rest_of_line (); return; @@ -3411,7 +3422,7 @@ ecoff_directive_weakext (ignore) expression (&exp); if (exp.X_op != O_symbol) { - as_bad ("bad .weakext directive"); + as_bad (_("bad .weakext directive")); ignore_rest_of_line(); return; } @@ -3423,6 +3434,7 @@ ecoff_directive_weakext (ignore) demand_empty_rest_of_line (); } +#endif /* not TC_MIPS */ /* Handle .stabs directives. The actual parsing routine is done by a generic routine. This routine is called via OBJ_PROCESS_STAB. @@ -3479,7 +3491,7 @@ ecoff_stab (sec, what, string, type, other, desc) /* We don't handle .stabd. */ if (what != 's' && what != 'n') { - as_bad (".stab%c is not supported", what); + as_bad (_(".stab%c is not supported"), what); return; } @@ -3489,7 +3501,7 @@ ecoff_stab (sec, what, string, type, other, desc) /* We ignore the other field. */ if (other != 0) - as_warn (".stab%c: ignoring non-zero other field", what); + as_warn (_(".stab%c: ignoring non-zero other field"), what); /* Make sure we have a current file. */ if (cur_file_ptr == (efdr_t *) NULL) @@ -3523,7 +3535,7 @@ ecoff_stab (sec, what, string, type, other, desc) dummy_symr.index = desc; if (dummy_symr.index != desc) { - as_warn ("Line number (%d) for .stab%c directive cannot fit in index field (20 bits)", + as_warn (_("Line number (%d) for .stab%c directive cannot fit in index field (20 bits)"), desc, what); return; } @@ -3559,7 +3571,7 @@ ecoff_stab (sec, what, string, type, other, desc) } else if (! is_name_beginner ((unsigned char) *input_line_pointer)) { - as_warn ("Illegal .stab%c directive, bad character", what); + as_warn (_("Illegal .stab%c directive, bad character"), what); return; } else @@ -3642,7 +3654,7 @@ ecoff_frob_symbol (sym) if (sym->bsym->flags & BSF_WEAK) { if (S_IS_COMMON (sym)) - as_bad ("Symbol `%s' can not be both weak and common", + as_bad (_("Symbol `%s' can not be both weak and common"), S_GET_NAME (sym)); } } @@ -4016,7 +4028,7 @@ ecoff_build_symbols (backend, buf, bufend, offset) begin_sym = sym_ptr->proc_ptr->sym->as_sym; if (S_GET_SEGMENT (as_sym) != S_GET_SEGMENT (begin_sym)) - as_warn (".begin/.bend in different segments"); + as_warn (_(".begin/.bend in different segments")); sym_ptr->ecoff_sym.asym.value = S_GET_VALUE (as_sym) - S_GET_VALUE (begin_sym); } @@ -4203,7 +4215,7 @@ ecoff_build_symbols (backend, buf, bufend, offset) know (begin_ptr->as_sym != (symbolS *) NULL); if (S_GET_SEGMENT (as_sym) != S_GET_SEGMENT (begin_ptr->as_sym)) - as_warn (".begin/.bend in different segments"); + as_warn (_(".begin/.bend in different segments")); sym_ptr->ecoff_sym.asym.value = (S_GET_VALUE (as_sym) - S_GET_VALUE (begin_ptr->as_sym)); @@ -4228,7 +4240,7 @@ ecoff_build_symbols (backend, buf, bufend, offset) begin_sym = sym_ptr->proc_ptr->sym->as_sym; if (S_GET_SEGMENT (as_sym) != S_GET_SEGMENT (begin_sym)) - as_warn (".begin/.bend in different segments"); + as_warn (_(".begin/.bend in different segments")); sym_ptr->ecoff_sym.asym.value = S_GET_VALUE (as_sym) - S_GET_VALUE (begin_sym); } @@ -4726,7 +4738,7 @@ ecoff_build_debug (hdr, bufp, backend) cur_file_ptr->cur_scope = cur_file_ptr->cur_scope->prev; if (! end_warning && ! cur_file_ptr->fake) { - as_warn ("Missing .end or .bend at end of file"); + as_warn (_("Missing .end or .bend at end of file")); end_warning = 1; } } @@ -5217,110 +5229,13 @@ ecoff_set_gp_prolog_size (sz) cur_proc_ptr->pdr.gp_prologue = sz; if (cur_proc_ptr->pdr.gp_prologue != sz) { - as_warn ("GP prologue size exceeds field size, using 0 instead"); + as_warn (_("GP prologue size exceeds field size, using 0 instead")); cur_proc_ptr->pdr.gp_prologue = 0; } cur_proc_ptr->pdr.gp_used = 1; } -static void -generate_ecoff_stab (what, string, type, other, desc) - int what; - const char *string; - int type; - int other; - int desc; -{ - efdr_t *save_file_ptr = cur_file_ptr; - symbolS *sym; - symint_t value; - st_t st; - sc_t sc; - symint_t indx; - localsym_t *hold = NULL; - - /* We don't handle .stabd. */ - if (what != 's' && what != 'n') - { - as_bad (".stab%c is not supported", what); - return; - } - - /* We ignore the other field. */ - if (other != 0) - as_warn (".stab%c: ignoring non-zero other field", what); - - /* Make sure we have a current file. */ - if (cur_file_ptr == (efdr_t *) NULL) - { - add_file ((const char *) NULL, 0, 1); - save_file_ptr = cur_file_ptr; - } - - /* For stabs in ECOFF, the first symbol must be @stabs. This is a - signal to gdb. */ - if (stabs_seen == 0) - mark_stabs (0); - - /* Line number stabs are handled differently, since they have two - values, the line number and the address of the label. We use the - index field (aka desc) to hold the line number, and the value - field to hold the address. The symbol type is st_Label, which - should be different from the other stabs, so that gdb can - recognize it. */ - if (type == N_SLINE) - { - SYMR dummy_symr; - -#ifndef NO_LISTING - if (listing) - listing_source_line ((unsigned int) desc); -#endif - - dummy_symr.index = desc; - if (dummy_symr.index != desc) - { - as_warn ("Line number (%d) for .stab%c directive cannot fit in index field (20 bits)", - desc, what); - return; - } - - sym = symbol_find_or_make ((char *)string); - value = 0; - st = st_Label; - sc = sc_Text; - indx = desc; - } - else - { -#ifndef NO_LISTING - if (listing && (type == N_SO || type == N_SOL)) - listing_source_file (string); -#endif - - sym = symbol_find_or_make ((char *)string); - sc = sc_Nil; - st = st_Nil; - value = 0; - indx = ECOFF_MARK_STAB (type); - } - - /* Don't store the stabs symbol we are creating as the type of the - ECOFF symbol. We want to compute the type of the ECOFF symbol - independently. */ - if (sym != (symbolS *) NULL) - hold = sym->ecoff_symbol; - - (void) add_ecoff_symbol (string, st, sc, sym, (bfd_vma) 0, value, indx); - - if (sym != (symbolS *) NULL) - sym->ecoff_symbol = hold; - - /* Restore normal file type. */ - cur_file_ptr = save_file_ptr; -} - int ecoff_no_current_file () { |