diff options
author | Dragan Mladjenovic <dragan.mladjenovic@rt-rk.com> | 2020-01-23 16:38:14 +0100 |
---|---|---|
committer | Dragan Mladjenovic <dragan.mladjenovic@rt-rk.com> | 2020-01-23 17:00:02 +0100 |
commit | a3c1e1f2ff88628cb163abc5331af752221eddc0 (patch) | |
tree | 4f2525598a928a04ba1c2a6ff88898961ebec2a9 /libgcc/config/mips | |
parent | c124b345e460780e3c3d4a6e58d0e6e03da982a1 (diff) | |
download | gcc-a3c1e1f2ff88628cb163abc5331af752221eddc0.zip gcc-a3c1e1f2ff88628cb163abc5331af752221eddc0.tar.gz gcc-a3c1e1f2ff88628cb163abc5331af752221eddc0.tar.bz2 |
Emit .note.GNU-stack for soft-float linux targets.
gcc/ChangeLog:
2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
* config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to
TARGET_SOFT_FLOAT.
* config/mips/mips.c (TARGET_ASM_FILE_END): Define to ...
(mips_asm_file_end): New function. Delegate to
file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true.
* config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0.
libgcc/ChangeLog:
2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
* config/mips/gnustack.h: New file.
* config/mips/crti.S: Include gnustack.h.
* config/mips/crtn.S: Likewise.
* config/mips/mips16.S: Likewise.
* config/mips/vr4120-div.S: Likewise.
Diffstat (limited to 'libgcc/config/mips')
-rw-r--r-- | libgcc/config/mips/crti.S | 3 | ||||
-rw-r--r-- | libgcc/config/mips/crtn.S | 3 | ||||
-rw-r--r-- | libgcc/config/mips/gnustack.h | 7 | ||||
-rw-r--r-- | libgcc/config/mips/mips16.S | 3 | ||||
-rw-r--r-- | libgcc/config/mips/vr4120-div.S | 3 |
5 files changed, 19 insertions, 0 deletions
diff --git a/libgcc/config/mips/crti.S b/libgcc/config/mips/crti.S index 3347a78..6705642 100644 --- a/libgcc/config/mips/crti.S +++ b/libgcc/config/mips/crti.S @@ -21,6 +21,9 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ +/* An executable stack is *not* required for these functions. */ +#include "gnustack.h" + /* 4 slots for argument spill area. 1 for cpreturn, 1 for stack. Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */ diff --git a/libgcc/config/mips/crtn.S b/libgcc/config/mips/crtn.S index 7f46829..ceede64 100644 --- a/libgcc/config/mips/crtn.S +++ b/libgcc/config/mips/crtn.S @@ -21,6 +21,9 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ +/* An executable stack is *not* required for these functions. */ +#include "gnustack.h" + /* 4 slots for argument spill area. 1 for cpreturn, 1 for stack. Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */ diff --git a/libgcc/config/mips/gnustack.h b/libgcc/config/mips/gnustack.h new file mode 100644 index 0000000..c7e9fe7 --- /dev/null +++ b/libgcc/config/mips/gnustack.h @@ -0,0 +1,7 @@ +#include "config.h" +#if defined(__ELF__) && defined(__linux__) +#if defined (__mips_soft_float) + .section .note.GNU-stack,"",%progbits + .previous +#endif +#endif diff --git a/libgcc/config/mips/mips16.S b/libgcc/config/mips/mips16.S index 396285e..5c3678b 100644 --- a/libgcc/config/mips/mips16.S +++ b/libgcc/config/mips/mips16.S @@ -21,6 +21,9 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ +/* An executable stack is *not* required for these functions. */ +#include "gnustack.h" + #include "auto-host.h" #if defined(__mips_micromips) || defined(__mips_soft_float) \ diff --git a/libgcc/config/mips/vr4120-div.S b/libgcc/config/mips/vr4120-div.S index 92226b5..2999c77 100644 --- a/libgcc/config/mips/vr4120-div.S +++ b/libgcc/config/mips/vr4120-div.S @@ -22,6 +22,9 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see <http://www.gnu.org/licenses/>. */ +/* An executable stack is *not* required for these functions. */ +#include "gnustack.h" + /* This file contains functions which implement divsi3 and modsi3 for -mfix-vr4120. div and ddiv do not give the correct result when one of the operands is negative. */ |