aboutsummaryrefslogtreecommitdiff
path: root/gold/script-sections.cc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2008-07-22 23:01:20 +0000
committerIan Lance Taylor <ian@airs.com>2008-07-22 23:01:20 +0000
commitaf6156ef8ded31c7b8e19fa7995e4de14a5b9639 (patch)
treeb6f76e21579975faa46d823307fa81ae589c5b0d /gold/script-sections.cc
parent92de84a60cbdb80b808c8571e709c1384c6ee6fc (diff)
downloadgdb-af6156ef8ded31c7b8e19fa7995e4de14a5b9639.zip
gdb-af6156ef8ded31c7b8e19fa7995e4de14a5b9639.tar.gz
gdb-af6156ef8ded31c7b8e19fa7995e4de14a5b9639.tar.bz2
* options.h (class General_options): Define -n/--nmagic and
-N/--omagic. * options.cc (General_options::finalize): For -n/--nmagic or -N/--omagic, set -static. * layout.cc (Layout::attach_allocated_section_to_segment): If -N/--omagic, don't put read-only and read-write sections in different segments. (Layout::find_first_load_seg): If -N/--omagic, don't insist on finding a read-only segment. (Layout::set_segment_offsets): If -N/--omagic or -n/--nmagic, don't set the minimum segment alignment to the common page size, and don't set the file offset to the address modulo the page size. * script-sections.cc (Script_sections::create_segments): If -n/--omagic, don't put read-only and read-write sections in different segments.
Diffstat (limited to 'gold/script-sections.cc')
-rw-r--r--gold/script-sections.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gold/script-sections.cc b/gold/script-sections.cc
index 4891ac7..13c9771 100644
--- a/gold/script-sections.cc
+++ b/gold/script-sections.cc
@@ -2657,7 +2657,8 @@ Script_sections::create_segments(Layout* layout)
need_new_segment = true;
}
else if (is_current_seg_readonly
- && ((*p)->flags() & elfcpp::SHF_WRITE) != 0)
+ && ((*p)->flags() & elfcpp::SHF_WRITE) != 0
+ && !parameters->options().omagic())
{
// Don't put a writable section in the same segment as a
// non-writable section.