summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog6
-rw-r--r--src/elflint.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 0bba5ca5..37127f56 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2008-03-26 Roland McGrath <[email protected]>
+
+ * elflint.c (check_program_header): Accept PT_GNU_RELRO p_flags
+ that matches its PT_LOAD's p_flags &~ PF_W. On sparc, PF_X really
+ is valid in RELRO.
+
2008-02-29 Roland McGrath <[email protected]>
* readelf.c (print_attributes): Add a cast.
diff --git a/src/elflint.c b/src/elflint.c
index 54aa1114..4448eef1 100644
--- a/src/elflint.c
+++ b/src/elflint.c
@@ -4055,9 +4055,10 @@ more than one GNU_RELRO entry in program header\n"));
if ((phdr2->p_flags & PF_W) == 0)
ERROR (gettext ("\
loadable segment GNU_RELRO applies to is not writable\n"));
- if ((phdr2->p_flags & PF_X) != 0)
+ if ((phdr2->p_flags &~ PF_W) != (phdr->p_flags &~ PF_W))
ERROR (gettext ("\
-loadable segment GNU_RELRO applies to is executable\n"));
+loadable segment [%u] flags do not match GNU_RELRO [%u] flags\n"),
+ cnt, inner);
break;
}
}