Make the .rsrc section read only.

  PR 30142
  * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Do not force the .rsrc section to be writeable.
  * rescoff.c (write_coff_file): Add the SEC_READONLY flag to the .rsrc section.
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d9fe0d3..0d2d9cf 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2023-04-17  Nick Clifton  <nickc@redhat.com>
+
+	PR 30142
+	* peXXigen.c (_bfd_XXi_swap_scnhdr_out): Do not force the .rsrc
+	section to be writeable.
+
 2023-03-30  Nick Clifton  <nickc@redhat.com>
 
 	PR 30285
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index d240e01..da53f34 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -999,7 +999,7 @@
 	{ ".pdata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
 	{ ".rdata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
 	{ ".reloc", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_DISCARDABLE },
-	{ ".rsrc",  IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_WRITE },
+	{ ".rsrc",  IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
 	{ ".text" , IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE },
 	{ ".tls",   IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_WRITE },
 	{ ".xdata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 3b6f045..f705b6c 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2023-04-17  Nick Clifton  <nickc@redhat.com>
+
+	PR 30142
+	* rescoff.c (write_coff_file): Add the SEC_READONLY flag to the
+	.rsrc section. 
+
 2023-04-11  Nick Clifton  <nickc@redhat.com>
 
 	PR 30327
diff --git a/binutils/rescoff.c b/binutils/rescoff.c
index 40a8f45..5a99a28 100644
--- a/binutils/rescoff.c
+++ b/binutils/rescoff.c
@@ -477,7 +477,7 @@
 
   sec = bfd_make_section_with_flags (abfd, ".rsrc",
 				     (SEC_HAS_CONTENTS | SEC_ALLOC
-				      | SEC_LOAD | SEC_DATA));
+				      | SEC_LOAD | SEC_DATA | SEC_READONLY));
   if (sec == NULL)
     bfd_fatal ("bfd_make_section");