aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2000-05-23 21:03:35 +0000
committerNick Clifton <nickc@redhat.com>2000-05-23 21:03:35 +0000
commit1f0df59a2728f37b246fb21e3c8ae4890044af24 (patch)
tree91a0d91c20a2b581d96de3501ae63e5efb84f2ee
parent863e0fe46a35751d8873ad26cc6177346807998d (diff)
downloadfsf-binutils-gdb-1f0df59a2728f37b246fb21e3c8ae4890044af24.zip
fsf-binutils-gdb-1f0df59a2728f37b246fb21e3c8ae4890044af24.tar.gz
fsf-binutils-gdb-1f0df59a2728f37b246fb21e3c8ae4890044af24.tar.bz2
When deciding if ".text" section should be read-only, don't forget to reset
SEC_READONLY because it could be already set.
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/ldmain.c21
2 files changed, 17 insertions, 10 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 801de43..f0f2b6b 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2000-05-22 Igor Shevlyakov <igor@windriver.com>
+
+ * ldmain.c (main): When deciding if ".text" section should be
+ read-only, don't forget to reset SEC_READONLY because it
+ could be already set.
+
2000-05-22 Thomas de Lellis <tdel@windriver.com>
* ld.1: Add documentation for new command line option:
diff --git a/ld/ldmain.c b/ld/ldmain.c
index cfdbdd7..7372594 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -347,17 +347,18 @@ main (argc, argv)
/* Print error messages for any missing symbols, for any warning
symbols, and possibly multiple definitions */
-
- if (config.text_read_only)
- {
- /* Look for a text section and mark the readonly attribute in it */
- asection *found = bfd_get_section_by_name (output_bfd, ".text");
-
- if (found != (asection *) NULL)
- {
+ /* Look for a text section and switch the readonly attribute in it. */
+ {
+ asection * found = bfd_get_section_by_name (output_bfd, ".text");
+
+ if (found != (asection *) NULL)
+ {
+ if (config.text_read_only)
found->flags |= SEC_READONLY;
- }
- }
+ else
+ found->flags &= ~SEC_READONLY;
+ }
+ }
if (link_info.relocateable)
output_bfd->flags &= ~EXEC_P;