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>
* 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;
}
}
#endif
#endif /* OBJ_COFF */
#ifdef OBJ_ELF
void
armelf_adjust_symtab ()
{
symbolS * sym;
elf_symbol_type *elf_sym;
char bind;
for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym))
{
if (ARM_IS_THUMB (sym))
{
if (THUMB_IS_FUNC (sym))
{
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);
}
if (ARM_IS_THUMB (sym) && (THUMB_IS_FUNC (sym)))
{
elf_symbol_type * elf_sym;
unsigned char bind;
}
}
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
armelf_frob_symbol (symp, puntp)
symbolS *symp;
int *puntp;
symbolS * symp;
int * puntp;
{
elf_frob_symbol (symp, puntp);
}
/*
if (S_IS_EXTERNAL (symp))
S_SET_STORAGE_CLASS(symp, C_EXT);
#endif /* OBJ_ELF */
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
arm_data_in_code ()
{

View File

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