diff options
author | Ian Lance Taylor <ian@airs.com> | 1994-09-12 22:11:18 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1994-09-12 22:11:18 +0000 |
commit | c1444ec48f5d93e491a8f5e13c11531fb4d2cbf8 (patch) | |
tree | 2382077908af19e192085fba8db1d6be4dd9c39c /gas/ecoff.c | |
parent | 1b434ced730b92336e2602505b85985b93507f79 (diff) | |
download | gdb-c1444ec48f5d93e491a8f5e13c11531fb4d2cbf8.zip gdb-c1444ec48f5d93e491a8f5e13c11531fb4d2cbf8.tar.gz gdb-c1444ec48f5d93e491a8f5e13c11531fb4d2cbf8.tar.bz2 |
* config/tc-mips.c (md_pseudo_table): Handle .globl and .global.
(s_mips_globl): New static function; needed for Irix 5 support.
* ecoff.c (ecoff_build_symbols): If BSF_FUNCTION is set for an
external symbol with no type, set the type to st_Proc rather than
st_Global. Don't set the index of an external st_Proc or
st_StaticProc symbol unless it is also a local symbol.
Diffstat (limited to 'gas/ecoff.c')
-rw-r--r-- | gas/ecoff.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/gas/ecoff.c b/gas/ecoff.c index 8671b48..a064406 100644 --- a/gas/ecoff.c +++ b/gas/ecoff.c @@ -3904,7 +3904,12 @@ ecoff_build_symbols (backend, buf, bufend, offset) if (! ECOFF_IS_STAB (&sym_ptr->ecoff_sym.asym) && (S_IS_EXTERNAL (as_sym) || ! S_IS_DEFINED (as_sym))) - st = st_Global; + { + if ((as_sym->bsym->flags & BSF_FUNCTION) != 0) + st = st_Proc; + else + st = st_Global; + } else if (seg == text_section) st = st_Label; else @@ -4084,12 +4089,10 @@ ecoff_build_symbols (backend, buf, bufend, offset) if (as_sym != (symbolS *) NULL && as_sym->ecoff_symbol == sym_ptr) { - if (sym_ptr->ecoff_sym.asym.st == st_Proc - || sym_ptr->ecoff_sym.asym.st == st_StaticProc) - { - know (local); - sym_ptr->ecoff_sym.asym.index = isym - ifilesym - 1; - } + if ((sym_ptr->ecoff_sym.asym.st == st_Proc + || sym_ptr->ecoff_sym.asym.st == st_StaticProc) + && local) + sym_ptr->ecoff_sym.asym.index = isym - ifilesym - 1; sym_ptr->ecoff_sym.ifd = fil_ptr->file_index; } } |