Add support to readelf for the PT_OPENBSD_MUTABLE segment type.
Checks
Commit Message
binutils/ChangeLog:
2023-03-17 Frederic Cambus <fred@statdns.com>
* readelf.c (get_segment_type): Handle PT_OPENBSD_MUTABLE segment type.
include/ChangeLog:
2023-03-17 Frederic Cambus <fred@statdns.com>
* elf/common.h (PT_OPENBSD_MUTABLE): Define.
---
binutils/readelf.c | 1 +
include/elf/common.h | 1 +
2 files changed, 2 insertions(+)
Comments
Hi Fred,
> binutils/ChangeLog:
>
> 2023-03-17 Frederic Cambus <fred@statdns.com>
>
> * readelf.c (get_segment_type): Handle PT_OPENBSD_MUTABLE segment type.
>
> include/ChangeLog:
>
> 2023-03-17 Frederic Cambus <fred@statdns.com>
>
> * elf/common.h (PT_OPENBSD_MUTABLE): Define.
Patch approved - please apply.
Is there any chance that you could create a binutils/linker testcase
for this new feature ? You can use a linker script to create segments
with specific types...
Cheers
Nick
Hi Nick,
On Wed, Mar 22, 2023 at 01:42:08PM +0000, Nick Clifton wrote:
> > binutils/ChangeLog:
> >
> > 2023-03-17 Frederic Cambus <fred@statdns.com>
> >
> > * readelf.c (get_segment_type): Handle PT_OPENBSD_MUTABLE segment type.
> >
> > include/ChangeLog:
> >
> > 2023-03-17 Frederic Cambus <fred@statdns.com>
> >
> > * elf/common.h (PT_OPENBSD_MUTABLE): Define.
>
> Patch approved - please apply.
Thanks for the review. I don't have commit access, could you please
commit it for me?
> Is there any chance that you could create a binutils/linker testcase
> for this new feature ? You can use a linker script to create segments
> with specific types...
Sure, I can have a look when time allows. I haven't had the chance to get
exposure to the testing infrastructure yet, so that sounds like a great
opportunity to do so :)
Hi Frederic,
> Thanks for the review. I don't have commit access, could you please
> commit it for me?
Done. :-)
Cheers
Nick
@@ -4643,6 +4643,7 @@ get_segment_type (Filedata * filedata, unsigned long p_type)
case PT_OPENBSD_RANDOMIZE: return "OPENBSD_RANDOMIZE";
case PT_OPENBSD_WXNEEDED: return "OPENBSD_WXNEEDED";
case PT_OPENBSD_BOOTDATA: return "OPENBSD_BOOTDATA";
+ case PT_OPENBSD_MUTABLE: return "OPENBSD_MUTABLE";
default:
if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC))
@@ -492,6 +492,7 @@
#define PT_GNU_SFRAME (PT_LOOS + 0x474e554) /* SFrame stack trace information */
/* OpenBSD segment types. */
+#define PT_OPENBSD_MUTABLE (PT_LOOS + 0x5a3dbe5) /* Like bss, but not immutable. */
#define PT_OPENBSD_RANDOMIZE (PT_LOOS + 0x5a3dbe6) /* Fill with random data. */
#define PT_OPENBSD_WXNEEDED (PT_LOOS + 0x5a3dbe7) /* Program does W^X violations. */
#define PT_OPENBSD_BOOTDATA (PT_LOOS + 0x5a41be6) /* Section for boot arguments. */