aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1993-09-17 22:16:29 +0000
committerIan Lance Taylor <ian@airs.com>1993-09-17 22:16:29 +0000
commit80903ca67bad697cbc4af021b9657df618859724 (patch)
treeb96b822241a45a9686b89ea744a064774b81362c
parent4fe784bb8fbcd20dc0fd8251b8aa58bc42dc5009 (diff)
downloadgdb-80903ca67bad697cbc4af021b9657df618859724.zip
gdb-80903ca67bad697cbc4af021b9657df618859724.tar.gz
gdb-80903ca67bad697cbc4af021b9657df618859724.tar.bz2
* config/obj-elf.h (S_GET_SIZE): Define.
(obj_frob_forward_symbol): Define. * config/tc-i386.c (line_comment_chars): Initialize in all cases.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/obj-elf.h34
2 files changed, 32 insertions, 8 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 0048b96..dd0d3a5 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+Fri Sep 17 18:12:34 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
+
+ * config/obj-elf.h (S_GET_SIZE): Define.
+ (obj_frob_forward_symbol): Define.
+ * config/tc-i386.c (line_comment_chars): Initialize in all cases.
+
Thu Sep 16 14:23:08 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* tc.h: Declare tc_gen_reloc differently depending upong
diff --git a/gas/config/obj-elf.h b/gas/config/obj-elf.h
index 4775a76..7adee97 100644
--- a/gas/config/obj-elf.h
+++ b/gas/config/obj-elf.h
@@ -43,13 +43,7 @@
/* should be conditional on address size! */
#define elf_symbol(asymbol) ((elf_symbol_type *)(&(asymbol)->the_bfd))
-#define S_SET_OTHER(S,V) (elf_symbol((S)->bsym)->other = (V))
-#define S_SET_TYPE(S,T) (elf_symbol((S)->bsym)->type = (T))
-#define S_SET_DESC(S,D) (elf_symbol((S)->bsym)->desc = (D))
-#define S_GET_OTHER(S) (elf_symbol((S)->bsym)->other)
-#define S_GET_TYPE(S) (elf_symbol((S)->bsym)->type)
-#define S_GET_DESC(S) (elf_symbol((S)->bsym)->desc)
-
+#define S_GET_SIZE(S) (elf_symbol ((S)->bsym)->internal_elf_sym.st_size)
#define S_SET_SIZE(S,V) \
(elf_symbol((S)->bsym)->internal_elf_sym.st_size = (V))
@@ -60,6 +54,12 @@ extern asection *gdb_section;
#define obj_frob_symbol(S,PUNT) if ( obj_elf_frob_symbol (S, &PUNT) ) { i++; continue; }
#endif
+/* Copy over the function bit and size of a forwarded symbol. */
+#define obj_frob_forward_symbol(sym) \
+ (((sym)->bsym->flags |= \
+ ((sym)->sy_value.X_add_symbol->bsym->flags & BSF_FUNCTION)), \
+ S_SET_SIZE ((sym), S_GET_SIZE ((sym)->sy_value.X_add_symbol)))
+
#define obj_write_symbol(S) obj_elf_write_symbol (S)
#define obj_frob_file() elf_frob_file()
@@ -68,7 +68,25 @@ extern int obj_elf_frob_symbol PARAMS ((struct symbol *, int *));
extern void elf_frob_file PARAMS ((void));
extern void elf_file_symbol PARAMS ((char *));
+extern int obj_elf_write_symbol PARAMS ((struct symbol *));
+
extern void obj_elf_section PARAMS ((int));
-extern void obj_elf_previous PARAMS ((void));
+extern void obj_elf_previous PARAMS ((int));
+
+/* Stabs go in a separate section. */
+#define SEPARATE_STAB_SECTIONS
+
+/* We need 12 bytes at the start of the section to hold some initial
+ information. */
+#define INIT_STAB_SECTION(seg) (seg_info (seg)->stabu.p = frag_more (12))
+
+/* Set the filename offset. */
+#define OBJ_PROCESS_STAB(seg, string, stroff, type, other, desc) \
+ ((type) == N_SO \
+ ? (md_number_to_chars (seg_info (seg)->stabu.p, \
+ (valueT) (stroff), \
+ 4), \
+ 0) \
+ : 0)
#endif /* _OBJ_ELF_H */