Fixed generation of thumb function symbols.

This commit is contained in:
Nick Clifton
1998-09-05 02:58:46 +00:00
parent 49fe88644c
commit a03925a2fc
3 changed files with 22 additions and 35 deletions

View File

@ -1,3 +1,8 @@
Fri Sep 4 17:07:14 1998 Nick Clifton <nickc@cygnus.com>
* config/tc-arm.h (obj_adjust_symtab): Fixed typo.
* config/tc-arm.c (armelf_adjust_symtab): Reformatted.
Fri Sep 4 13:57:43 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz> Fri Sep 4 13:57:43 1998 Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>
* config/tc-sparc.c (in_signed_range): Sign extend 32-bit words * config/tc-sparc.c (in_signed_range): Sign extend 32-bit words

View File

@ -6355,56 +6355,38 @@ arm_adjust_symtab ()
coffsymbol(sym->bsym)->native->u.syment.n_flags = 0xFF; coffsymbol(sym->bsym)->native->u.syment.n_flags = 0xFF;
} }
} }
#endif #endif /* OBJ_COFF */
#ifdef OBJ_ELF #ifdef OBJ_ELF
void void
armelf_adjust_symtab () armelf_adjust_symtab ()
{ {
symbolS * sym; symbolS * sym;
elf_symbol_type *elf_sym;
char bind;
for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym)) for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym))
{ {
if (ARM_IS_THUMB (sym)) if (ARM_IS_THUMB (sym) && (THUMB_IS_FUNC (sym)))
{ {
if (THUMB_IS_FUNC (sym)) elf_symbol_type * elf_sym;
{ unsigned char bind;
elf_sym = elf_symbol(sym->bsym);
bind = ELF_ST_BIND(elf_sym);
elf_sym->internal_elf_sym.st_info = ELF_ST_INFO(bind, STT_ARM_TFUNC);
}
} elf_sym = elf_symbol (sym->bsym);
} bind = ELF_ST_BIND (elf_sym->internal_elf_sym.st_info);
elf_sym->internal_elf_sym.st_info = ELF_ST_INFO (bind, STT_ARM_TFUNC);
}
}
} }
#endif
#ifdef OBJ_ELF
void void
armelf_frob_symbol (symp, puntp) armelf_frob_symbol (symp, puntp)
symbolS *symp; symbolS * symp;
int *puntp; int * puntp;
{ {
elf_frob_symbol (symp, puntp); elf_frob_symbol (symp, puntp);
}
/* #endif /* OBJ_ELF */
if (S_IS_EXTERNAL (symp))
S_SET_STORAGE_CLASS(symp, C_EXT);
if (S_GET_STORAGE_CLASS (symp) == C_NULL)
{
if (S_GET_SEGMENT (symp) == text_section
&& symp != seg_info (text_section)->sym)
S_SET_STORAGE_CLASS (symp, C_LABEL);
else
S_SET_STORAGE_CLASS (symp, C_STAT);
}
*/
}
#endif
int int
arm_data_in_code () arm_data_in_code ()
{ {

View File

@ -151,10 +151,10 @@ char *arm_canonicalize_symbol_name PARAMS ((char *));
/* Finish processing the entire symbol table: */ /* Finish processing the entire symbol table: */
#ifdef OBJ_ELF #ifdef OBJ_ELF
#define obj_adjust_symtab() armelf_adjust_symtab () #define obj_adjust_symtab armelf_adjust_symtab
extern void armelf_adjust_symtab PARAMS ((void)); extern void armelf_adjust_symtab PARAMS ((void));
#else #else
#define obj_adjust_symtab() arm_adjust_symtab () #define obj_adjust_symtab arm_adjust_symtab
extern void arm_adjust_symtab PARAMS ((void)); extern void arm_adjust_symtab PARAMS ((void));
#endif #endif