mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
adjust STRIP_UNDERSCORE
This commit is contained in:
parent
ac7d9f2dd1
commit
a6c6eaf80b
@ -169,12 +169,6 @@ struct relocation_info {
|
||||
};
|
||||
#endif /* CUSTOM_RELOC_FORMAT */
|
||||
|
||||
/* If compiler generate leading underscores, remove them. */
|
||||
|
||||
#ifndef STRIP_UNDERSCORE
|
||||
#define STRIP_UNDERSCORE 0
|
||||
#endif /* STRIP_UNDERSCORE */
|
||||
|
||||
/*
|
||||
* Macros to extract information from a symbol table entry.
|
||||
* This syntaxic indirection allows independence regarding a.out or coff.
|
||||
|
@ -133,32 +133,6 @@ local_label_name(n, augend)
|
||||
return(symbol_name_build);
|
||||
} /* local_label_name() */
|
||||
|
||||
/*
|
||||
* decode name that may have been generated by local_label_name() above. If
|
||||
* the name wasn't generated by local_label_name(), then return it unaltered.
|
||||
* This is used for error messages.
|
||||
*/
|
||||
|
||||
char *decode_local_label_name(s)
|
||||
char *s;
|
||||
{
|
||||
char *symbol_decode;
|
||||
int label_number;
|
||||
/* int label_version; */
|
||||
char *message_format = "\"%d\" (instance number %s of a local label)";
|
||||
|
||||
if (s[0] != 'L'
|
||||
|| s[2] != 1) {
|
||||
return(s);
|
||||
} /* not a local_label_name() generated name. */
|
||||
|
||||
label_number = s[1] - '0';
|
||||
|
||||
(void) sprintf(symbol_decode = obstack_alloc(¬es, strlen(s + 3) + strlen(message_format) + 10),
|
||||
message_format, label_number, s + 3);
|
||||
|
||||
return(symbol_decode);
|
||||
} /* decode_local_label_name() */
|
||||
|
||||
void local_colon (n)
|
||||
int n; /* just saw "n:" */
|
||||
@ -196,7 +170,6 @@ fragS *frag; /* Associated fragment */
|
||||
unsigned int name_length;
|
||||
char *preserved_copy_of_name;
|
||||
symbolS *symbolP;
|
||||
extern int memset();
|
||||
|
||||
name_length = strlen(name) + 1; /* +1 for \0 */
|
||||
obstack_grow(¬es, name, name_length);
|
||||
@ -206,7 +179,7 @@ fragS *frag; /* Associated fragment */
|
||||
/* symbol must be born in some fixed state. This seems as good as any. */
|
||||
memset(symbolP, 0, sizeof(symbolS));
|
||||
|
||||
#if STRIP_UNDERSCORE
|
||||
#ifdef STRIP_UNDERSCORE
|
||||
S_SET_NAME(symbolP, (*preserved_copy_of_name == '_'
|
||||
? preserved_copy_of_name + 1
|
||||
: preserved_copy_of_name));
|
||||
@ -267,10 +240,11 @@ void colon(sym_name) /* just seen "x:" - rattle symbols & frags */
|
||||
int possible_bytes;
|
||||
fragS *frag_tmp;
|
||||
char *frag_opcode;
|
||||
|
||||
extern md_short_jump_size;
|
||||
extern md_long_jump_size;
|
||||
|
||||
possible_bytes=md_short_jump_size + new_broken_words * md_long_jump_size;
|
||||
|
||||
frag_tmp=frag_now;
|
||||
frag_opcode=frag_var(rs_broken_word,
|
||||
possible_bytes,
|
||||
@ -341,6 +315,10 @@ void colon(sym_name) /* just seen "x:" - rattle symbols & frags */
|
||||
* on the sparc also depends on it.
|
||||
*/
|
||||
/* char New_Type = SEGMENT_TO_SYMBOL_TYPE((int) now_seg); */
|
||||
#ifdef MANY_SEGMENTS
|
||||
#define SEG_BSS SEG_E2
|
||||
#define SEG_DATA SEG_E1
|
||||
#endif
|
||||
|
||||
if (((!S_IS_DEBUG(symbolP) && !S_IS_DEFINED(symbolP) && S_IS_EXTERNAL(symbolP))
|
||||
|| (S_GET_SEGMENT(symbolP) == SEG_BSS))
|
||||
@ -482,11 +460,12 @@ char *name;
|
||||
symbolS *symbol_find(name)
|
||||
char *name;
|
||||
{
|
||||
#ifndef STRIP_UNDERSCORE
|
||||
#define STRIP_UNDERSCORE 0
|
||||
#ifdef STRIP_UNDERSCORE
|
||||
return(symbol_find_base(name, 1));
|
||||
#else /* STRIP_UNDERSCORE */
|
||||
return(symbol_find_base(name, ));
|
||||
#endif /* STRIP_UNDERSCORE */
|
||||
return symbol_find_base(name, STRIP_UNDERSCORE);
|
||||
}
|
||||
} /* symbol_find() */
|
||||
|
||||
symbolS *symbol_find_base(name, strip_underscore)
|
||||
char *name;
|
||||
@ -635,6 +614,34 @@ symbolS *lastP;
|
||||
} /* verify_symbol_chain() */
|
||||
|
||||
|
||||
/*
|
||||
* decode name that may have been generated by local_label_name() above. If
|
||||
* the name wasn't generated by local_label_name(), then return it unaltered.
|
||||
* This is used for error messages.
|
||||
*/
|
||||
|
||||
char *decode_local_label_name(s)
|
||||
char *s;
|
||||
{
|
||||
char *symbol_decode;
|
||||
int label_number;
|
||||
/* int label_version; */
|
||||
char *message_format = "\"%d\" (instance number %s of a local label)";
|
||||
|
||||
if (s[0] != 'L'
|
||||
|| s[2] != 1) {
|
||||
return(s);
|
||||
} /* not a local_label_name() generated name. */
|
||||
|
||||
label_number = s[1] - '0';
|
||||
|
||||
(void) sprintf(symbol_decode = obstack_alloc(¬es, strlen(s + 3) + strlen(message_format) + 10),
|
||||
message_format, label_number, s + 3);
|
||||
|
||||
return(symbol_decode);
|
||||
} /* decode_local_label_name() */
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* comment-column: 0
|
||||
|
Loading…
Reference in New Issue
Block a user