PR28824, relro security issues, x86 keep COMMONPAGESIZE relro
authorAlan Modra <amodra@gmail.com>
Wed, 2 Feb 2022 22:27:47 +0000 (08:57 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 13 Feb 2022 03:30:56 +0000 (14:00 +1030)
commit31b4d3a16f200bf04db8439a63b72bba7af4e1be
treea422261355b8221ded5777ec889cc7054c99203f
parent9833b7757d246f22db4eb24b8e5db7eb5e05b6d9
PR28824, relro security issues, x86 keep COMMONPAGESIZE relro

x86 treats MAXPAGESIZE as a memory optimisation parameter, actual
hardware paging is always COMMPAGESIZE of 4k.  Use COMMONPAGESIZE for
the end of the relro segment alignment.

The previous patch regresses pr18176, increasing the testcase file
size from 322208 to 2099872 bytes.  Fixing this on x86 will require
introducing a gap after the end of the relro segment (of up to
relropagesize-1 bytes).

PR 28824
PR 18176
* ld.h (ld_config_type): Add relro_use_commonpagesize field.
* ldexp.c (fold_segment_align): Set relropagesize depending on
relro_use_commonpagesize.
* emultempl/elf-x86.em (elf_x86_create_output_section_statements):
Set relro_use_commonpagesize.
* testsuite/ld-x86-64/pr18176.d: xfail.
ld/emultempl/elf-x86.em
ld/ld.h
ld/ldexp.c
ld/testsuite/ld-x86-64/pr18176.d