summaryrefslogtreecommitdiff
path: root/gold/layout.cc
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2011-08-01 18:25:21 +0000
committerCary Coutant <ccoutant@google.com>2011-08-01 18:25:21 +0000
commita68d5f1957188d6bb652e6888c446ce5efb3fb38 (patch)
tree616320c3f258b704f77134e6e663910ef8166684 /gold/layout.cc
parent2fc767fcbdf14b7866721da767be372034bd4e4b (diff)
downloadbinutils-redhat-a68d5f1957188d6bb652e6888c446ce5efb3fb38.tar.gz
* layout.cc (Layout::set_segment_offsets): Don't realign text
segment if -Ttext was specified. * object.cc (Sized_relobj_file::Sized_relobj_file): Store the ELF file type. * object.h (Sized_relobj_file::e_type): New function. (Sized_relobj_file::e_type_): New data member. * symtab.cc (Symbol_table::add_from_relobj): Don't add section base address for ET_EXEC files. * target.cc (Target::do_make_elf_object_implementation): Allow ET_EXEC files with --just-symbols option.
Diffstat (limited to 'gold/layout.cc')
-rw-r--r--gold/layout.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/gold/layout.cc b/gold/layout.cc
index 2a8d3b49c0..44c2e183e8 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -3039,6 +3039,11 @@ Layout::set_segment_offsets(const Target* target, Output_segment* load_seg,
// the physical address.
addr = (*p)->paddr();
}
+ else if (parameters->options().user_set_Ttext()
+ && ((*p)->flags() & elfcpp::PF_W) == 0)
+ {
+ are_addresses_set = true;
+ }
else if (parameters->options().user_set_Tdata()
&& ((*p)->flags() & elfcpp::PF_W) != 0
&& (!parameters->options().user_set_Tbss()