From: Ian Lance Taylor Date: Thu, 31 Dec 2009 05:43:29 +0000 (+0000) Subject: PR 10979 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=403a15dd3b16ecce8d632e82b6c6cd821cfaff0d;p=binutils-gdb.git PR 10979 * layout.cc (Layout::relaxation_loop_body): If -Ttext was used, don't put the file header and segment headers in the text segment. --- diff --git a/gold/ChangeLog b/gold/ChangeLog index 027940eacb6..b2d7a4fd960 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,5 +1,10 @@ 2009-12-30 Ian Lance Taylor + PR 10979 + * layout.cc (Layout::relaxation_loop_body): If -Ttext was used, + don't put the file header and segment headers in the text + segment. + PR 10979 * common.cc (Sort_commons::operator()): Stabilize sort when both entries are NULL. diff --git a/gold/layout.cc b/gold/layout.cc index 8bbeebe938a..c633d7be5fb 100644 --- a/gold/layout.cc +++ b/gold/layout.cc @@ -1482,6 +1482,12 @@ Layout::relaxation_loop_body( != General_options::OBJECT_FORMAT_ELF) load_seg = NULL; + // 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; + gold_assert(phdr_seg == NULL || load_seg != NULL || this->script_options_->saw_sections_clause());