From a4f5ad884ecd1b56c973e0d562d97720140d1ec8 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 4 Oct 2004 13:41:15 +0000 Subject: * ldgram.y (DATA_SEGMENT_RELRO_END): Add one argument. * scripttempl/elf.sc (DATA_SEGMENT_RELRO_END): Add 0 as first argument. (DATA_SEGMENT_RELRO_GOTPLT_END): Pass $SEPARATE_GOTPLT as first and . as second argument. (GOTPLT): Move $DATA_SEGMENT_RELRO_GOTPLT_END before the section. * ldexp.c (fold_unary): Remove DATA_SEGMENT_RELRO_END handling here. (fold_binary): Add it here. Insert padding to make relro_end COMMONPAGESIZE bytes aligned. For DATA_SEGMENT_ALIGN in exp_dataseg_relro_adjust phase just use previously computed exp_data_seg.base. * ldlang.c (lang_size_sections): Set exp_data_seg.base for relro_adjust here. Call lang_size_sections_1 once more if there was too big padding at DATA_SEGMENT_RELRO_END. * ld.texinfo (DATA_SEGMENT_RELRO_END): Add documentation. --- ld/ldgram.y | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ld/ldgram.y') diff --git a/ld/ldgram.y b/ld/ldgram.y index 75f4e70..f4f4589 100644 --- a/ld/ldgram.y +++ b/ld/ldgram.y @@ -808,8 +808,8 @@ exp : { $$ = exp_binop(ALIGN_K,$3,$5); } | DATA_SEGMENT_ALIGN '(' exp ',' exp ')' { $$ = exp_binop (DATA_SEGMENT_ALIGN, $3, $5); } - | DATA_SEGMENT_RELRO_END '(' exp ')' - { $$ = exp_unop(DATA_SEGMENT_RELRO_END, $3); } + | DATA_SEGMENT_RELRO_END '(' exp ',' exp ')' + { $$ = exp_binop (DATA_SEGMENT_RELRO_END, $5, $3); } | DATA_SEGMENT_END '(' exp ')' { $$ = exp_unop(DATA_SEGMENT_END, $3); } | BLOCK '(' exp ')' -- cgit v1.1