aboutsummaryrefslogtreecommitdiff
path: root/gas/config/obj-coff.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-09-12 03:07:49 +0000
committerIan Lance Taylor <ian@airs.com>1999-09-12 03:07:49 +0000
commit7a6284c477f914e1c4a9264feadc08733c745ee3 (patch)
tree8e8555d6cb76a7d2df97d6916686067a3abad6bb /gas/config/obj-coff.c
parent8828d8620249e09d98139788f6be8535cfe57728 (diff)
downloadgdb-7a6284c477f914e1c4a9264feadc08733c745ee3.zip
gdb-7a6284c477f914e1c4a9264feadc08733c745ee3.tar.gz
gdb-7a6284c477f914e1c4a9264feadc08733c745ee3.tar.bz2
1999-09-11 Donn Terry <donn@interix.com>
* config/obj-coff.c (obj_coff_ident): Add BFD_ASSEMBLER version. (obj_pseudo_table): Always handle ".ident" with obj-coff_ident.
Diffstat (limited to 'gas/config/obj-coff.c')
-rw-r--r--gas/config/obj-coff.c34
1 files changed, 31 insertions, 3 deletions
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index 86e0766..aa1ff29 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -42,6 +42,7 @@ static void obj_coff_scl PARAMS ((int));
static void obj_coff_tag PARAMS ((int));
static void obj_coff_val PARAMS ((int));
static void obj_coff_type PARAMS ((int));
+static void obj_coff_ident PARAMS ((int));
#ifdef BFD_ASSEMBLER
static void obj_coff_loc PARAMS((int));
#endif
@@ -552,6 +553,35 @@ obj_coff_loc (ignore)
add_lineno (frag_now, frag_now_fix (), lineno);
}
+/* Handle the .ident pseudo-op. */
+
+static void
+obj_coff_ident (ignore)
+ int ignore ATTRIBUTE_UNUSED;
+{
+ segT current_seg = now_seg;
+ subsegT current_subseg = now_subseg;
+
+#ifdef TE_PE
+ {
+ segT sec;
+
+ /* We could put it in .comment, but that creates an extra section
+ that shouldn't be loaded into memory, which requires linker
+ changes... For now, until proven otherwise, use .rdata. */
+ sec = subseg_new (".rdata$zzz", 0);
+ bfd_set_section_flags (stdoutput, sec,
+ ((SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA)
+ & bfd_applicable_section_flags (stdoutput)));
+ }
+#else
+ subseg_new (".comment", 0);
+#endif
+
+ stringer (1);
+ subseg_set (current_seg, current_subseg);
+}
+
/*
* def()
*
@@ -1626,7 +1656,6 @@ static void adjust_stab_section PARAMS ((bfd *abfd, segT seg));
static void obj_coff_lcomm PARAMS ((int));
static void obj_coff_text PARAMS ((int));
static void obj_coff_data PARAMS ((int));
-static void obj_coff_ident PARAMS ((int));
void obj_coff_section PARAMS ((int));
/* When not using BFD_ASSEMBLER, we permit up to 40 sections.
@@ -4521,15 +4550,14 @@ const pseudo_typeS obj_pseudo_table[] =
earlier versions of gas. */
{"bss", obj_coff_bss, 0},
{"weak", obj_coff_weak, 0},
+ {"ident", obj_coff_ident, 0},
#ifndef BFD_ASSEMBLER
{"use", obj_coff_section, 0},
{"text", obj_coff_text, 0},
{"data", obj_coff_data, 0},
{"lcomm", obj_coff_lcomm, 0},
- {"ident", obj_coff_ident, 0},
#else
{"optim", s_ignore, 0}, /* For sun386i cc (?) */
- {"ident", s_ignore, 0}, /* we don't yet handle this. */
#endif
{"version", s_ignore, 0},
{"ABORT", s_abort, 0},