diff options
-rw-r--r-- | binutils-2.21/gold/ChangeLog | 9 | ||||
-rw-r--r-- | binutils-2.21/gold/layout.cc | 12 | ||||
-rw-r--r-- | binutils-2.24/gold/ChangeLog | 8 | ||||
-rw-r--r-- | binutils-2.24/gold/layout.cc | 12 |
4 files changed, 35 insertions, 6 deletions
diff --git a/binutils-2.21/gold/ChangeLog b/binutils-2.21/gold/ChangeLog index b04fc3b6..9c148e0c 100644 --- a/binutils-2.21/gold/ChangeLog +++ b/binutils-2.21/gold/ChangeLog @@ -1,3 +1,12 @@ +2014-12-01 Cary Coutant <ccoutant@google.com> + + PR gold/17578 + * layout.cc (Layout::layout_gnu_stack): Don't warn when -z execstack + is given. + (Layout::create_executable_stack_info): Warn when -z noexecstack is + given but some inputs require executable stack. + + 2010-12-01 Ian Lance Taylor <iant@google.com> * testsuite/icf_virtual_function_folding_test.cc (class Bar): Add diff --git a/binutils-2.21/gold/layout.cc b/binutils-2.21/gold/layout.cc index 5f7259cc..3f257a02 100644 --- a/binutils-2.21/gold/layout.cc +++ b/binutils-2.21/gold/layout.cc @@ -1643,8 +1643,7 @@ Layout::layout_gnu_stack(bool seen_gnu_stack, uint64_t gnu_stack_flags, if ((gnu_stack_flags & elfcpp::SHF_EXECINSTR) != 0) { this->input_requires_executable_stack_ = true; - if (parameters->options().warn_execstack() - || parameters->options().is_stack_executable()) + if (parameters->options().warn_execstack()) gold_warning(_("%s: requires executable stack"), obj->name().c_str()); } @@ -2465,7 +2464,14 @@ Layout::create_executable_stack_info() { bool is_stack_executable; if (parameters->options().is_execstack_set()) - is_stack_executable = parameters->options().is_stack_executable(); + { + is_stack_executable = parameters->options().is_stack_executable(); + if (!is_stack_executable + && this->input_requires_executable_stack_ + && parameters->options().warn_execstack()) + gold_warning(_("one or more inputs require executable stack, " + "but -z noexecstack was given")); + } else if (!this->input_with_gnu_stack_note_) return; else diff --git a/binutils-2.24/gold/ChangeLog b/binutils-2.24/gold/ChangeLog index dcf7ed41..089a34a8 100644 --- a/binutils-2.24/gold/ChangeLog +++ b/binutils-2.24/gold/ChangeLog @@ -1,3 +1,11 @@ +2014-12-01 Cary Coutant <ccoutant@google.com> + + PR gold/17578 + * layout.cc (Layout::layout_gnu_stack): Don't warn when -z execstack + is given. + (Layout::create_executable_stack_info): Warn when -z noexecstack is + given but some inputs require executable stack. + 2013-11-22 Cary Coutant <ccoutant@google.com> * testsuite/Makefile.am (exception_x86_64_bnd_test): Use in-tree diff --git a/binutils-2.24/gold/layout.cc b/binutils-2.24/gold/layout.cc index 38fd272b..b0a90263 100644 --- a/binutils-2.24/gold/layout.cc +++ b/binutils-2.24/gold/layout.cc @@ -2086,8 +2086,7 @@ Layout::layout_gnu_stack(bool seen_gnu_stack, uint64_t gnu_stack_flags, if ((gnu_stack_flags & elfcpp::SHF_EXECINSTR) != 0) { this->input_requires_executable_stack_ = true; - if (parameters->options().warn_execstack() - || parameters->options().is_stack_executable()) + if (parameters->options().warn_execstack()) gold_warning(_("%s: requires executable stack"), obj->name().c_str()); } @@ -2958,7 +2957,14 @@ Layout::create_executable_stack_info() { bool is_stack_executable; if (parameters->options().is_execstack_set()) - is_stack_executable = parameters->options().is_stack_executable(); + { + is_stack_executable = parameters->options().is_stack_executable(); + if (!is_stack_executable + && this->input_requires_executable_stack_ + && parameters->options().warn_execstack()) + gold_warning(_("one or more inputs require executable stack, " + "but -z noexecstack was given")); + } else if (!this->input_with_gnu_stack_note_) return; else |