From: H.J. Lu Date: Tue, 15 Feb 2022 00:02:45 +0000 (-0800) Subject: Revert "PR28824, relro security issues, x86 keep COMMONPAGESIZE relro" X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a1faa5ea8629adfcd60c2cc0d3b533ed3ab34ee2;p=binutils-gdb.git Revert "PR28824, relro security issues, x86 keep COMMONPAGESIZE relro" This reverts commit 31b4d3a16f200bf04db8439a63b72bba7af4e1be. --- diff --git a/ld/emultempl/elf-x86.em b/ld/emultempl/elf-x86.em index 134e4e1b616..f75521cecea 100644 --- a/ld/emultempl/elf-x86.em +++ b/ld/emultempl/elf-x86.em @@ -33,7 +33,6 @@ static struct elf_linker_x86_params params; static void elf_x86_create_output_section_statements (void) { - config.relro_use_commonpagesize = true; _bfd_elf_linker_x86_set_options (&link_info, ¶ms); } diff --git a/ld/ld.h b/ld/ld.h index c7e4ca3d334..f3086bf30de 100644 --- a/ld/ld.h +++ b/ld/ld.h @@ -276,10 +276,6 @@ typedef struct /* If set, code and non-code sections should never be in one segment. */ bool separate_code; - /* TRUE if the end of the relro segment should be aligned to - COMMONPAGESIZE rather than MAXPAGESIZE. */ - bool relro_use_commonpagesize; - /* The rpath separation character. Usually ':'. */ char rpath_separator; diff --git a/ld/ldexp.c b/ld/ldexp.c index 90760e0a8ca..c18b8284ca5 100644 --- a/ld/ldexp.c +++ b/ld/ldexp.c @@ -485,10 +485,7 @@ fold_segment_align (etree_value_type *lhs) seg->base = expld.result.value; seg->commonpagesize = commonpage; seg->maxpagesize = maxpage; - if (config.relro_use_commonpagesize) - seg->relropagesize = commonpage; - else - seg->relropagesize = maxpage; + seg->relropagesize = maxpage; seg->relro_end = 0; } else diff --git a/ld/testsuite/ld-x86-64/pr18176.d b/ld/testsuite/ld-x86-64/pr18176.d index 728c15a3dd8..a99ff15ac6b 100644 --- a/ld/testsuite/ld-x86-64/pr18176.d +++ b/ld/testsuite/ld-x86-64/pr18176.d @@ -3,7 +3,6 @@ #ld: -melf_x86_64 -shared -z relro -T pr18176.t -z max-page-size=0x200000 -z common-page-size=0x1000 $NO_DT_RELR_LDFLAGS #readelf: -l --wide #target: x86_64-*-linux* -#xfail: *-*-* #... GNU_RELRO 0x04bd17 0x000000000024bd17 0x000000000024bd17 0x0022e9 0x0022e9 R 0x1