From d12a5ea8c9d5fb95d740c8e34a3d035c3c815635 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 25 Jul 2011 22:48:42 +0000 Subject: * layout.cc (Layout::relaxation_loop_body): Only clear load_seg if the -Ttext option is not 0 modulo the page size. If we clear load_seg, clear phdr_seg too. * testsuite/Makefile.am (check_PROGRAMS): Add flagstest_o_ttext_1. (flagstest_o_ttext_1): New target. (check_DATA): Add flagstest_o_ttext_2. (flagstest_o_ttext_2): New target. * testsuite/Makefile.in: Rebuild. --- gold/layout.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'gold/layout.cc') diff --git a/gold/layout.cc b/gold/layout.cc index 39aabf50e04..2a8d3b49c01 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -2095,8 +2095,12 @@ Layout::relaxation_loop_body( // If the user set the address of the text segment, that may not be // compatible with putting the segment headers and file headers into // that segment. - if (parameters->options().user_set_Ttext()) - load_seg = NULL; + if (parameters->options().user_set_Ttext() + && parameters->options().Ttext() % target->common_pagesize() != 0) + { + load_seg = NULL; + phdr_seg = NULL; + } gold_assert(phdr_seg == NULL || load_seg != NULL -- cgit v1.2.1