This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: patch for i386-pe section header [Re: section bug?]


Ian Lance Taylor <ian@zembu.com> 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  <khan@xraylith.wisc.edu>

	* peicode.h (coff_swap_scnhdr_out): Mark user-defined writable 
	sections as writable.

gas/ChangeLog:
Sat Jun 26 21:09:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
	* 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]