toolchain/gcc: remove upstreamed patch, add backport
This patch has been upstream since GCC 10.
Dragan Mladjenovic (2):
      Emit .note.GNU-stack for soft-float linux targets.
      Emit .note.GNU-stack for hard-float linux targets.
Link: https://gcc.gnu.org/g:a3c1e1f2ff88
Link: https://gcc.gnu.org/g:54b3d52c3cca
Add backport patch to define TARGET_LIBC_GNUSTACK on musl to add
.note.GNU-stack on hard-float MIPS targets.
Link: https://gcc.gnu.org/g:25abbb924968
The net effect should be the exact same functionality while following
upstream code instead of a custom outdated patch.
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
			
			
This commit is contained in:
		 Ilya Lipnitskiy
					Ilya Lipnitskiy
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							eabb4a5c5d
						
					
				
				
					commit
					475b366a5b
				
			| @@ -0,0 +1,46 @@ | |||||||
|  | From ea650cae26da4a8fc04f0c4666f4dd776d0b5fc0 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> | ||||||
|  | Date: Sun, 14 Nov 2021 21:54:25 -0800 | ||||||
|  | Subject: [PATCH] configure: define TARGET_LIBC_GNUSTACK on musl | ||||||
|  |  | ||||||
|  | musl only uses PT_GNU_STACK to set default thread stack size and has no | ||||||
|  | executable stack support[0], so there is no reason not to emit the | ||||||
|  | .note.GNU-stack section on musl builds. | ||||||
|  |  | ||||||
|  | [0]: https://lore.kernel.org/all/20190423192534.GN23599@brightrain.aerifal.cx/T/#u | ||||||
|  |  | ||||||
|  | gcc/ChangeLog: | ||||||
|  |  | ||||||
|  | 	* configure: Regenerate. | ||||||
|  | 	* configure.ac: define TARGET_LIBC_GNUSTACK on musl | ||||||
|  |  | ||||||
|  | Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> | ||||||
|  | --- | ||||||
|  |  gcc/configure    | 3 +++ | ||||||
|  |  gcc/configure.ac | 3 +++ | ||||||
|  |  2 files changed, 6 insertions(+) | ||||||
|  |  | ||||||
|  | --- a/gcc/configure | ||||||
|  | +++ b/gcc/configure | ||||||
|  | @@ -30954,6 +30954,9 @@ fi | ||||||
|  |  # Check if the target LIBC handles PT_GNU_STACK. | ||||||
|  |  gcc_cv_libc_gnustack=unknown | ||||||
|  |  case "$target" in | ||||||
|  | +  mips*-*-linux-musl*) | ||||||
|  | +    gcc_cv_libc_gnustack=yes | ||||||
|  | +    ;; | ||||||
|  |    mips*-*-linux*) | ||||||
|  |   | ||||||
|  |  if test $glibc_version_major -gt 2 \ | ||||||
|  | --- a/gcc/configure.ac | ||||||
|  | +++ b/gcc/configure.ac | ||||||
|  | @@ -6788,6 +6788,9 @@ fi | ||||||
|  |  # Check if the target LIBC handles PT_GNU_STACK. | ||||||
|  |  gcc_cv_libc_gnustack=unknown | ||||||
|  |  case "$target" in | ||||||
|  | +  mips*-*-linux-musl*) | ||||||
|  | +    gcc_cv_libc_gnustack=yes | ||||||
|  | +    ;; | ||||||
|  |    mips*-*-linux*) | ||||||
|  |      GCC_GLIBC_VERSION_GTE_IFELSE([2], [31], [gcc_cv_libc_gnustack=yes], ) | ||||||
|  |      ;; | ||||||
| @@ -1,111 +0,0 @@ | |||||||
| From da45b3fde60095756f5f6030f6012c23a3d34429 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Andrew McDonnell <bugs@andrewmcdonnell.net> |  | ||||||
| Date: Fri, 3 Oct 2014 19:09:00 +0930 |  | ||||||
| Subject: Add .note.GNU-stack section |  | ||||||
|  |  | ||||||
| See http://lists.busybox.net/pipermail/uclibc/2014-October/048671.html |  | ||||||
| Below copied from https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02430.html |  | ||||||
|  |  | ||||||
| Re: [Patch, MIPS] Add .note.GNU-stack section |  | ||||||
|  |  | ||||||
|     From: Steve Ellcey <sellcey at mips dot com> |  | ||||||
|  |  | ||||||
| On Wed, 2014-09-10 at 10:15 -0700, Eric Christopher wrote: |  | ||||||
| > |  | ||||||
| > |  | ||||||
| > On Wed, Sep 10, 2014 at 9:27 AM, <pinskia@gmail.com> wrote: |  | ||||||
|  |  | ||||||
| >         This works except you did not update the assembly files in |  | ||||||
| >         libgcc or glibc. We (Cavium) have the same patch in our tree |  | ||||||
| >         for a few released versions. |  | ||||||
|  |  | ||||||
| > Mind just checking yours in then Andrew? |  | ||||||
|  |  | ||||||
| > Thanks! |  | ||||||
| > -eric |  | ||||||
|  |  | ||||||
| I talked to Andrew about what files he changed in GCC and created and |  | ||||||
| tested this new patch.  Andrew also mentioned changing some assembly |  | ||||||
| files in glibc but I don't see any use of '.section .note.GNU-stack' in |  | ||||||
| any assembly files in glibc (for any platform) so I wasn't planning on |  | ||||||
| creating a glibc to add them to mips glibc assembly language files. |  | ||||||
|  |  | ||||||
| OK to check in this patch? |  | ||||||
|  |  | ||||||
| Steve Ellcey |  | ||||||
| sellcey@mips.com |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 2014-09-26  Steve Ellcey  <sellcey@mips.com> |  | ||||||
| --- |  | ||||||
|  gcc/config/mips/mips.c          | 3 +++ |  | ||||||
|  libgcc/config/mips/crti.S       | 4 ++++ |  | ||||||
|  libgcc/config/mips/crtn.S       | 3 +++ |  | ||||||
|  libgcc/config/mips/mips16.S     | 4 ++++ |  | ||||||
|  libgcc/config/mips/vr4120-div.S | 4 ++++ |  | ||||||
|  5 files changed, 18 insertions(+) |  | ||||||
|  |  | ||||||
| --- a/gcc/config/mips/mips.c |  | ||||||
| +++ b/gcc/config/mips/mips.c |  | ||||||
| @@ -22890,6 +22890,9 @@ mips_asm_file_end (void) |  | ||||||
|  #define TARGET_ASM_FILE_END mips_asm_file_end |  | ||||||
|   |  | ||||||
|   |  | ||||||
| +#undef TARGET_ASM_FILE_END |  | ||||||
| +#define TARGET_ASM_FILE_END file_end_indicate_exec_stack |  | ||||||
| + |  | ||||||
|  struct gcc_target targetm = TARGET_INITIALIZER; |  | ||||||
|   |  | ||||||
|  #include "gt-mips.h" |  | ||||||
| --- a/libgcc/config/mips/crti.S |  | ||||||
| +++ b/libgcc/config/mips/crti.S |  | ||||||
| @@ -24,6 +24,10 @@ see the files COPYING3 and COPYING.RUNTI |  | ||||||
|  /* An executable stack is *not* required for these functions.  */ |  | ||||||
|  #include "gnustack.h" |  | ||||||
|   |  | ||||||
| + |  | ||||||
| +/* An executable stack is *not* required for these functions.  */ |  | ||||||
| +	.section .note.GNU-stack,"",%progbits |  | ||||||
| + |  | ||||||
|  /* 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.  */ |  | ||||||
|   |  | ||||||
| --- a/libgcc/config/mips/crtn.S |  | ||||||
| +++ b/libgcc/config/mips/crtn.S |  | ||||||
| @@ -24,6 +24,9 @@ see the files COPYING3 and COPYING.RUNTI |  | ||||||
|  /* An executable stack is *not* required for these functions.  */ |  | ||||||
|  #include "gnustack.h" |  | ||||||
|   |  | ||||||
| +/* An executable stack is *not* required for these functions.  */ |  | ||||||
| +	.section .note.GNU-stack,"",%progbits |  | ||||||
| + |  | ||||||
|  /* 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.  */ |  | ||||||
|   |  | ||||||
| --- a/libgcc/config/mips/mips16.S |  | ||||||
| +++ b/libgcc/config/mips/mips16.S |  | ||||||
| @@ -51,6 +51,10 @@ see the files COPYING3 and COPYING.RUNTI |  | ||||||
|     values using the soft-float calling convention, but do the actual |  | ||||||
|     operation using the hard floating point instructions.  */ |  | ||||||
|   |  | ||||||
| +/* An executable stack is *not* required for these functions.  */ |  | ||||||
| +	.section .note.GNU-stack,"",%progbits |  | ||||||
| +	.previous |  | ||||||
| + |  | ||||||
|  #if defined _MIPS_SIM && (_MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIO64) |  | ||||||
|   |  | ||||||
|  /* This file contains 32-bit assembly code.  */ |  | ||||||
| --- a/libgcc/config/mips/vr4120-div.S |  | ||||||
| +++ b/libgcc/config/mips/vr4120-div.S |  | ||||||
| @@ -29,6 +29,10 @@ see the files COPYING3 and COPYING.RUNTI |  | ||||||
|     -mfix-vr4120.  div and ddiv do not give the correct result when one |  | ||||||
|     of the operands is negative.  */ |  | ||||||
|   |  | ||||||
| +/* An executable stack is *not* required for these functions.  */ |  | ||||||
| +	.section .note.GNU-stack,"",%progbits |  | ||||||
| +	.previous |  | ||||||
| + |  | ||||||
|  	.set	nomips16 |  | ||||||
|   |  | ||||||
|  #define DIV								\ |  | ||||||
		Reference in New Issue
	
	Block a user