mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 04:49:54 +08:00
* config/tc-arm.c: Remove OBJ_ELF definitions for
S_GET_STORAGE_CLASS and S_SET_STORAGE_CLASS. Only use arm_adjust_symtab for OBJ_COFF. (armelf_adjust_symtab): New Routine. * config/tc-arm.h: Define obj_adjust_symtab to armelf_adjust_symtab for OBJ_ELF.
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
Mon Aug 31 10:58:06 1998 Catherine Moore <clm@cygnus.com>
|
||||||
|
|
||||||
|
* config/tc-arm.c: Remove OBJ_ELF definitions for
|
||||||
|
S_GET_STORAGE_CLASS and S_SET_STORAGE_CLASS. Only
|
||||||
|
use arm_adjust_symtab for OBJ_COFF.
|
||||||
|
(armelf_adjust_symtab): New Routine.
|
||||||
|
* config/tc-arm.h: Define obj_adjust_symtab to
|
||||||
|
armelf_adjust_symtab for OBJ_ELF.
|
||||||
|
|
||||||
Sat Aug 29 22:18:51 1998 Richard Henderson <rth@cygnus.com>
|
Sat Aug 29 22:18:51 1998 Richard Henderson <rth@cygnus.com>
|
||||||
|
|
||||||
* configure.in: Make all i386-elf targets use bfd_gas.
|
* configure.in: Make all i386-elf targets use bfd_gas.
|
||||||
|
@ -6310,13 +6310,13 @@ arm_frob_label (sym)
|
|||||||
ARM ones. */
|
ARM ones. */
|
||||||
|
|
||||||
#ifdef OBJ_ELF
|
#ifdef OBJ_ELF
|
||||||
#define S_GET_STORAGE_CLASS(S) (elf_symbol ((S)->bsym)->internal_elf_sym.st_other)
|
#define S_GET_STORAGE_CLASS(S) (elf_symbol ((S)->bsym)->internal_elf_sym.st_info)
|
||||||
#define S_SET_STORAGE_CLASS(S,V) (elf_symbol ((S)->bsym)->internal_elf_sym.st_other = (V))
|
#define S_SET_STORAGE_CLASS(S,V) (elf_symbol ((S)->bsym)->internal_elf_sym.st_info = (V))
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef OBJ_COFF
|
||||||
void
|
void
|
||||||
arm_adjust_symtab ()
|
arm_adjust_symtab ()
|
||||||
{
|
{
|
||||||
#if defined OBJ_COFF || defined OBJ_ELF
|
|
||||||
symbolS * sym;
|
symbolS * sym;
|
||||||
|
|
||||||
for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym))
|
for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym))
|
||||||
@ -6329,6 +6329,7 @@ arm_adjust_symtab ()
|
|||||||
if ( S_GET_STORAGE_CLASS (sym) == C_STAT
|
if ( S_GET_STORAGE_CLASS (sym) == C_STAT
|
||||||
|| S_GET_STORAGE_CLASS (sym) == C_LABEL) /* This can happen! */
|
|| S_GET_STORAGE_CLASS (sym) == C_LABEL) /* This can happen! */
|
||||||
S_SET_STORAGE_CLASS (sym, C_THUMBSTATFUNC);
|
S_SET_STORAGE_CLASS (sym, C_THUMBSTATFUNC);
|
||||||
|
|
||||||
else if (S_GET_STORAGE_CLASS (sym) == C_EXT)
|
else if (S_GET_STORAGE_CLASS (sym) == C_EXT)
|
||||||
S_SET_STORAGE_CLASS (sym, C_THUMBEXTFUNC);
|
S_SET_STORAGE_CLASS (sym, C_THUMBEXTFUNC);
|
||||||
else
|
else
|
||||||
@ -6350,14 +6351,36 @@ arm_adjust_symtab ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OBJ_COFF
|
|
||||||
if (ARM_IS_INTERWORK (sym))
|
if (ARM_IS_INTERWORK (sym))
|
||||||
coffsymbol(sym->bsym)->native->u.syment.n_flags = 0xFF;
|
coffsymbol(sym->bsym)->native->u.syment.n_flags = 0xFF;
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef OBJ_ELF
|
#ifdef OBJ_ELF
|
||||||
void
|
void
|
||||||
armelf_frob_symbol (symp, puntp)
|
armelf_frob_symbol (symp, puntp)
|
||||||
@ -6367,6 +6390,7 @@ armelf_frob_symbol (symp, puntp)
|
|||||||
{
|
{
|
||||||
elf_frob_symbol (symp, puntp);
|
elf_frob_symbol (symp, puntp);
|
||||||
|
|
||||||
|
/*
|
||||||
if (S_IS_EXTERNAL (symp))
|
if (S_IS_EXTERNAL (symp))
|
||||||
S_SET_STORAGE_CLASS(symp, C_EXT);
|
S_SET_STORAGE_CLASS(symp, C_EXT);
|
||||||
|
|
||||||
@ -6378,6 +6402,7 @@ armelf_frob_symbol (symp, puntp)
|
|||||||
else
|
else
|
||||||
S_SET_STORAGE_CLASS (symp, C_STAT);
|
S_SET_STORAGE_CLASS (symp, C_STAT);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
int
|
int
|
||||||
|
@ -150,8 +150,13 @@ char *arm_canonicalize_symbol_name PARAMS ((char *));
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Finish processing the entire symbol table: */
|
/* Finish processing the entire symbol table: */
|
||||||
#define tc_adjust_symtab() arm_adjust_symtab ()
|
#ifdef OBJ_ELF
|
||||||
|
#define obj_adjust_symtab() armelf_adjust_symtab ()
|
||||||
|
extern void armelf_adjust_symtab PARAMS ((void));
|
||||||
|
#else
|
||||||
|
#define obj_adjust_symtab() arm_adjust_symtab ()
|
||||||
extern void arm_adjust_symtab PARAMS ((void));
|
extern void arm_adjust_symtab PARAMS ((void));
|
||||||
|
#endif
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
#define tc_crawl_symbol_chain(a) {;} /* not used */
|
#define tc_crawl_symbol_chain(a) {;} /* not used */
|
||||||
|
Reference in New Issue
Block a user