mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 13:27:26 +08:00
Fixed generation of thumb function symbols.
This commit is contained in:
@ -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
|
||||||
|
@ -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 ()
|
||||||
{
|
{
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user