linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
2006-11-02 Carlos O'Donell <carlos@codesourcery.com> gcc/ * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1. * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call file_end_indicate_exec_stack. * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK): Define as 0. * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section for a non-executable stack. * crti.asm: Likewise. * crtn.asm: Likewise. * libunwind.S: Likewise. From-SVN: r118445
This commit is contained in:
parent
50f606a629
commit
978e411ffa
8 changed files with 52 additions and 0 deletions
|
@ -1,3 +1,16 @@
|
|||
2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
|
||||
|
||||
* config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
|
||||
* arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
|
||||
file_end_indicate_exec_stack.
|
||||
* arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
|
||||
Define as 0.
|
||||
* lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
|
||||
for a non-executable stack.
|
||||
* crti.asm: Likewise.
|
||||
* crtn.asm: Likewise.
|
||||
* libunwind.S: Likewise.
|
||||
|
||||
2006-11-02 Ben Elliston <bje@au.ibm.com>
|
||||
|
||||
* tree-ssa.c (warn_uninit): Use expand_location variables for
|
||||
|
|
|
@ -14417,6 +14417,10 @@ arm_file_end (void)
|
|||
{
|
||||
int regno;
|
||||
|
||||
if (NEED_INDICATE_EXEC_STACK)
|
||||
/* Add .note.GNU-stack. */
|
||||
file_end_indicate_exec_stack ();
|
||||
|
||||
if (! thumb_call_reg_needed)
|
||||
return;
|
||||
|
||||
|
|
|
@ -2591,4 +2591,10 @@ enum arm_builtins
|
|||
|
||||
ARM_BUILTIN_MAX
|
||||
};
|
||||
|
||||
/* Do not emit .note.GNU-stack by default. */
|
||||
#ifndef NEED_INDICATE_EXEC_STACK
|
||||
#define NEED_INDICATE_EXEC_STACK 0
|
||||
#endif
|
||||
|
||||
#endif /* ! GCC_ARM_H */
|
||||
|
|
|
@ -31,6 +31,12 @@
|
|||
# the executable file might be covered by the GNU General Public License.
|
||||
#
|
||||
|
||||
/* An executable stack is *not* required for these functions. */
|
||||
#if defined(__ELF__) && defined(__linux__)
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
.previous
|
||||
#endif
|
||||
|
||||
# This file just make a stack frame for the contents of the .fini and
|
||||
# .init sections. Users may put any desired instructions in those
|
||||
# sections.
|
||||
|
|
|
@ -31,6 +31,12 @@
|
|||
# the executable file might be covered by the GNU General Public License.
|
||||
#
|
||||
|
||||
/* An executable stack is *not* required for these functions. */
|
||||
#if defined(__ELF__) && defined(__linux__)
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
.previous
|
||||
#endif
|
||||
|
||||
# This file just makes sure that the .fini and .init sections do in
|
||||
# fact return. Users may put any desired instructions in those sections.
|
||||
# This file is the last thing linked into any executable.
|
||||
|
|
|
@ -27,6 +27,13 @@ You should have received a copy of the GNU General Public License
|
|||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
/* An executable stack is *not* required for these functions. */
|
||||
#if defined(__ELF__) && defined(__linux__)
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
.previous
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
/* We need to know what prefix to add to function names. */
|
||||
|
|
|
@ -26,6 +26,12 @@
|
|||
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
/* An executable stack is *not* required for these functions. */
|
||||
#if defined(__ELF__) && defined(__linux__)
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
.previous
|
||||
#endif
|
||||
|
||||
#ifndef __symbian__
|
||||
|
||||
#include "lib1funcs.asm"
|
||||
|
|
|
@ -104,3 +104,7 @@
|
|||
|
||||
/* The GNU/Linux profiler needs a frame pointer. */
|
||||
#define SUBTARGET_FRAME_POINTER_REQUIRED current_function_profile
|
||||
|
||||
/* Add .note.GNU-stack. */
|
||||
#undef NEED_INDICATE_EXEC_STACK
|
||||
#define NEED_INDICATE_EXEC_STACK 1
|
||||
|
|
Loading…
Add table
Reference in a new issue