From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mumit Khan To: Ian Lance Taylor Cc: ts1@cma.co.jp, binutils@sourceware.cygnus.com Subject: Re: patch for i386-pe section header [Re: section bug?] Date: Thu, 01 Jul 1999 00:00:00 -0000 Message-id: <199906270213.VAA15952@mercury.xraylith.wisc.edu> References: <19990627012422.14497.qmail@daffy.airs.com> X-SW-Source: 1999-q2/msg00367.html Ian Lance Taylor writes: > > In the second new line, shouldn't that be > flags |= IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE > ? > > I would almost just check that in, but I thought I'd better check to > see if I was missing something. > And I also forgot to diff the whole tree. Damn. Now it's tested on both NT and W9x. bfd/ChangeLog: Sat Jun 26 21:09:44 1999 Mumit Khan * peicode.h (coff_swap_scnhdr_out): Mark user-defined writable sections as writable. gas/ChangeLog: Sat Jun 26 21:09:44 1999 Mumit Khan * config/obj-coff.c (obj_coff_section): Mark writable sections as data. Index: bfd/peicode.h =================================================================== RCS file: /cvs/binutils/binutils/bfd/peicode.h,v retrieving revision 1.3 diff -u -3 -p -r1.3 peicode.h --- bfd/peicode.h 1999/05/25 11:37:40 1.3 +++ bfd/peicode.h 1999/06/27 02:08:58 @@ -1235,7 +1235,11 @@ coff_swap_scnhdr_out (abfd, in, out) else if (strcmp (scnhdr_int->s_name, ".rsrc") == 0) flags |= IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_SHARED; else - flags |= IMAGE_SCN_MEM_READ; + { + flags |= IMAGE_SCN_MEM_READ; + if (! (flags & SEC_READONLY)) + flags |= IMAGE_SCN_MEM_WRITE; + } bfd_h_put_32(abfd, flags, (bfd_byte *) scnhdr_ext->s_flags); } Index: gas/config/obj-coff.c =================================================================== RCS file: /cvs/binutils/binutils/gas/config/obj-coff.c,v retrieving revision 1.5 diff -u -3 -p -r1.5 obj-coff.c --- gas/config/obj-coff.c 1999/06/19 14:04:44 1.5 +++ gas/config/obj-coff.c 1999/06/27 02:08:59 @@ -1247,7 +1247,7 @@ obj_coff_section (ignore) case 'b': flags |= SEC_ALLOC; flags &=~ SEC_LOAD; break; case 'n': flags &=~ SEC_LOAD; break; case 'd': - case 'w': flags &=~ SEC_READONLY; break; + case 'w': flags |= SEC_DATA; flags &=~ SEC_READONLY; break; case 'x': flags |= SEC_CODE; break; case 'r': flags |= SEC_READONLY; break; Regards, Mumit