aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog3
-rw-r--r--bfd/peigen.c44
2 files changed, 3 insertions, 44 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ff1f942..51cac6f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -7,6 +7,9 @@
1999-09-11 Donn Terry <donn@interix.com>
+ * peigen.c (_bfd_pei_swap_scnhdr_out): Remove code which sets
+ section flags based on the section name.
+
* peicode.h (coff_swap_scnhdr_in): If COFF_IMAGE_WITH_PE, the
get the overflow of the s_nlnno field from the s_nreloc field.
* peigen.c (_bfd_pei_swap_scnhdr_out): If doing a final link, swap
diff --git a/bfd/peigen.c b/bfd/peigen.c
index a79b857..3593ba9 100644
--- a/bfd/peigen.c
+++ b/bfd/peigen.c
@@ -909,52 +909,8 @@ _bfd_pei_swap_scnhdr_out (abfd, in, out)
/* FIXME: even worse, I don't see how to get the original alignment field*/
/* back... */
- /* FIXME: Basing this on section names is bogus. Also, this should
- be in sec_to_styp_flags. */
-
{
int flags = scnhdr_int->s_flags;
- if (strcmp (scnhdr_int->s_name, ".data") == 0 ||
- strcmp (scnhdr_int->s_name, ".CRT") == 0 ||
- strcmp (scnhdr_int->s_name, ".bss") == 0)
- flags |= IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE;
- else if (strcmp (scnhdr_int->s_name, ".text") == 0)
- flags |= IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_EXECUTE;
- else if (strcmp (scnhdr_int->s_name, ".reloc") == 0)
- flags = (SEC_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_DISCARDABLE
- | IMAGE_SCN_MEM_SHARED);
- else if (strcmp (scnhdr_int->s_name, ".idata") == 0)
- flags = IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | SEC_DATA;
- else if (strcmp (scnhdr_int->s_name, ".rdata") == 0
- || strcmp (scnhdr_int->s_name, ".edata") == 0)
- flags = IMAGE_SCN_MEM_READ | SEC_DATA;
- else if (strcmp (scnhdr_int->s_name, ".pdata") == 0)
- flags = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_ALIGN_4BYTES |
- IMAGE_SCN_MEM_READ ;
- /* Remember this field is a max of 8 chars, so the null is _not_ there
- for an 8 character name like ".reldata". (yep. Stupid bug) */
- else if (strncmp (scnhdr_int->s_name, ".reldata", 8) == 0)
- flags = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_ALIGN_8BYTES |
- IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE ;
- else if (strcmp (scnhdr_int->s_name, ".ydata") == 0)
- flags = IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_ALIGN_8BYTES |
- IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE ;
- else if (strncmp (scnhdr_int->s_name, ".drectve", 8) == 0)
- flags = IMAGE_SCN_LNK_INFO | IMAGE_SCN_LNK_REMOVE ;
- else if (strncmp (scnhdr_int->s_name, ".stab", 5) == 0)
- flags |= (IMAGE_SCN_LNK_INFO | IMAGE_SCN_MEM_DISCARDABLE
- | IMAGE_SCN_MEM_SHARED | IMAGE_SCN_MEM_READ);
- else if (strcmp (scnhdr_int->s_name, ".rsrc") == 0)
- flags |= IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_SHARED;
- else
- {
- flags |= IMAGE_SCN_MEM_READ;
- if (! (flags & SEC_READONLY))
- flags |= IMAGE_SCN_MEM_WRITE;
- if (flags & SEC_SHARED)
- flags |= IMAGE_SCN_MEM_SHARED;
- }
-
bfd_h_put_32(abfd, flags, (bfd_byte *) scnhdr_ext->s_flags);
}