diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-02-01 21:24:15 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-02-01 21:24:15 +0000 |
commit | 9e396994aa2d40359a4ae3dc1ca5b81342d1fe8b (patch) | |
tree | fdbfab43384b29ade1735637564b1be811a8c1b9 /gas/config | |
parent | 6c55897c9ff5be0d80f5ce317d816ed1aeb29298 (diff) | |
download | gdb-9e396994aa2d40359a4ae3dc1ca5b81342d1fe8b.zip gdb-9e396994aa2d40359a4ae3dc1ca5b81342d1fe8b.tar.gz gdb-9e396994aa2d40359a4ae3dc1ca5b81342d1fe8b.tar.bz2 |
* config/obj-aout.h (S_IS_LOCAL): Check for \002 as well as \001.
* config/obj-bout.h (S_IS_LOCAL): Likewise.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/obj-aout.h | 30 | ||||
-rw-r--r-- | gas/config/obj-bout.h | 12 |
2 files changed, 25 insertions, 17 deletions
diff --git a/gas/config/obj-aout.h b/gas/config/obj-aout.h index f68dc9e..537fb19 100644 --- a/gas/config/obj-aout.h +++ b/gas/config/obj-aout.h @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with GAS; see the file COPYING. If not, write - to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Tag to validate a.out object file format processing */ #define OBJ_AOUT 1 @@ -24,11 +24,9 @@ #ifdef BFD_ASSEMBLER -#include "../bfd/libaout.h" +#include "bfd/libaout.h" -#ifndef TARGET_FORMAT -/* #define TARGET_FORMAT "a.out" / * There is no "a.out" target. */ -#endif +#define OUTPUT_FLAVOR bfd_target_aout_flavour #else /* ! BFD_ASSEMBLER */ @@ -78,6 +76,9 @@ extern void obj_aout_frob_file PARAMS ((void)); #else +/* We use the sy_obj field to record whether a symbol is weak. */ +#define OBJ_SYMFIELD_TYPE char + /* * Macros to extract information from a symbol table entry. * This syntaxic indirection allows independence regarding a.out or coff. @@ -95,12 +96,12 @@ extern void obj_aout_frob_file PARAMS ((void)); /* True if a debug special symbol entry */ #define S_IS_DEBUG(s) ((s)->sy_symbol.n_type & N_STAB) /* True if a symbol is local symbol name */ -/* A symbol name whose name begin with ^A is a gas internal pseudo symbol - nameless symbols come from .stab directives. */ -#define S_IS_LOCAL(s) (S_GET_NAME(s) && \ - !S_IS_DEBUG(s) && \ - (S_GET_NAME(s)[0] == '\001' || \ - (S_LOCAL_NAME(s) && !flag_keep_locals))) +#define S_IS_LOCAL(s) \ + (S_GET_NAME (s) \ + && !S_IS_DEBUG (s) \ + && (strchr (S_GET_NAME (s), '\001') != NULL \ + || strchr (S_GET_NAME (s), '\002') != NULL \ + || (S_LOCAL_NAME(s) && !flag_keep_locals))) /* True if a symbol is not defined in this file */ #define S_IS_EXTERN(s) ((s)->sy_symbol.n_type & N_EXT) /* True if the symbol has been generated because of a .stabd directive */ @@ -119,6 +120,8 @@ extern void obj_aout_frob_file PARAMS ((void)); #define S_GET_OTHER(s) ((s)->sy_symbol.n_other) /* The n_desc expression value */ #define S_GET_DESC(s) ((s)->sy_symbol.n_desc) +/* Whether the symbol is weak. */ +#define S_GET_WEAK(s) ((s)->sy_obj) /* Modifiers */ /* Assume that a symbol cannot be simultaneously in more than on segment */ @@ -138,6 +141,9 @@ extern void obj_aout_frob_file PARAMS ((void)); #define S_SET_OTHER(s,v) ((s)->sy_symbol.n_other = (v)) /* Set the n_desc expression value */ #define S_SET_DESC(s,v) ((s)->sy_symbol.n_desc = (v)) +/* Mark the symbol as weak. This causes n_type to be adjusted when + the symbol is written out. */ +#define S_SET_WEAK(s) ((s)->sy_obj = 1) /* File header macro and type definition */ @@ -219,4 +225,6 @@ void tc_aout_fix_to_chars PARAMS ((char *where, struct fix *fixP, relax_addressT #define EMIT_SECTION_SYMBOLS 0 +#define AOUT_STABS + /* end of obj-aout.h */ diff --git a/gas/config/obj-bout.h b/gas/config/obj-bout.h index 959ab94..81621b9 100644 --- a/gas/config/obj-bout.h +++ b/gas/config/obj-bout.h @@ -186,12 +186,12 @@ struct relocation_info /* True if a debug special symbol entry */ #define S_IS_DEBUG(s) ((s)->sy_symbol.n_type & N_STAB) /* True if a symbol is local symbol name */ -/* A symbol name whose name begin with ^A is a gas internal pseudo symbol - nameless symbols come from .stab directives. */ -#define S_IS_LOCAL(s) (S_GET_NAME(s) && \ - !S_IS_DEBUG(s) && \ - (S_GET_NAME(s)[0] == '\001' || \ - (S_LOCAL_NAME(s) && !flag_keep_locals))) +#define S_IS_LOCAL(s) \ + (S_GET_NAME (s) \ + && !S_IS_DEBUG (s) \ + && (strchr (S_GET_NAME (s), '\001') != NULL \ + || strchr (S_GET_NAME (s), '\002') != NULL \ + || (S_LOCAL_NAME(s) && !flag_keep_locals))) /* True if a symbol is not defined in this file */ #define S_IS_EXTERN(s) ((s)->sy_symbol.n_type & N_EXT) /* True if the symbol has been generated because of a .stabd directive */ |