diff options
author | Ian Lance Taylor <ian@airs.com> | 1999-09-12 03:07:49 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1999-09-12 03:07:49 +0000 |
commit | 7a6284c477f914e1c4a9264feadc08733c745ee3 (patch) | |
tree | 8e8555d6cb76a7d2df97d6916686067a3abad6bb /gas/config/obj-coff.c | |
parent | 8828d8620249e09d98139788f6be8535cfe57728 (diff) | |
download | gdb-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.c | 34 |
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}, |