mirror of
https://github.com/richfelker/musl-cross-make.git
synced 2025-08-14 12:23:24 +02:00

This adds the patches from the previously tested gcc version 14.3.0 and they have been tested to successfully apply to 15.1.0 with no issues. The corresponding hash has been added.
93 lines
3.2 KiB
Diff
93 lines
3.2 KiB
Diff
diff --git a/gcc/common.opt b/gcc/common.opt
|
|
index a75b44ee47e..7c564818b49 100644
|
|
--- a/gcc/common.opt
|
|
+++ b/gcc/common.opt
|
|
@@ -3473,11 +3473,11 @@ Driver
|
|
|
|
no-pie
|
|
Driver RejectNegative Negative(shared)
|
|
-Don't create a dynamically linked position independent executable.
|
|
+Don't create a position independent executable.
|
|
|
|
pie
|
|
Driver RejectNegative Negative(no-pie)
|
|
-Create a dynamically linked position independent executable.
|
|
+Create a position independent executable.
|
|
|
|
static-pie
|
|
Driver RejectNegative Negative(pie)
|
|
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
|
|
index 5ebbf42a13d..bb907d8e89a 100644
|
|
--- a/gcc/config/gnu-user.h
|
|
+++ b/gcc/config/gnu-user.h
|
|
@@ -51,13 +51,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
#define GNU_USER_TARGET_STARTFILE_SPEC \
|
|
"%{shared:; \
|
|
pg|p|profile:%{static-pie:grcrt1.o%s;:gcrt1.o%s}; \
|
|
- static:crt1.o%s; \
|
|
- static-pie:rcrt1.o%s; \
|
|
+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \
|
|
" PIE_SPEC ":Scrt1.o%s; \
|
|
:crt1.o%s} " \
|
|
GNU_USER_TARGET_CRTI " \
|
|
- %{static:crtbeginT.o%s; \
|
|
- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \
|
|
+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \
|
|
+ static:crtbeginT.o%s; \
|
|
:crtbegin.o%s} \
|
|
%{fvtable-verify=none:%s; \
|
|
fvtable-verify=preinit:vtv_start_preinit.o%s; \
|
|
@@ -73,11 +72,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
GNU userspace "finalizer" file, `crtn.o'. */
|
|
|
|
#define GNU_USER_TARGET_ENDFILE_SPEC \
|
|
- "%{!static:%{fvtable-verify=none:%s; \
|
|
+ "%{static|static-pie:; \
|
|
+ fvtable-verify=none:%s; \
|
|
fvtable-verify=preinit:vtv_end_preinit.o%s; \
|
|
- fvtable-verify=std:vtv_end.o%s}} \
|
|
- %{static:crtend.o%s; \
|
|
- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \
|
|
+ fvtable-verify=std:vtv_end.o%s} \
|
|
+ %{shared|" PIE_SPEC ":crtendS.o%s; \
|
|
:crtend.o%s} " \
|
|
GNU_USER_TARGET_CRTN " " \
|
|
CRTOFFLOADEND
|
|
@@ -106,7 +105,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
|
|
|
|
#if defined(HAVE_LD_EH_FRAME_HDR)
|
|
-#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
|
|
+#define LINK_EH_SPEC "%{!static|" PIE_SPEC ":--eh-frame-hdr} "
|
|
#endif
|
|
|
|
#define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \
|
|
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
|
|
index 3c81c5798d8..cd96eac5d12 100644
|
|
--- a/gcc/gcc.cc
|
|
+++ b/gcc/gcc.cc
|
|
@@ -1010,7 +1010,7 @@ proper position among the other output files. */
|
|
#define NO_FPIE_AND_FPIC_SPEC NO_FPIE_SPEC "|" NO_FPIC_SPEC
|
|
#define FPIE_OR_FPIC_SPEC NO_FPIE_AND_FPIC_SPEC ":;"
|
|
#else
|
|
-#define PIE_SPEC "pie"
|
|
+#define PIE_SPEC "pie|static-pie"
|
|
#define FPIE1_SPEC "fpie"
|
|
#define NO_FPIE1_SPEC FPIE1_SPEC ":;"
|
|
#define FPIE2_SPEC "fPIE"
|
|
@@ -1034,12 +1034,12 @@ proper position among the other output files. */
|
|
#ifndef LINK_PIE_SPEC
|
|
#ifdef HAVE_LD_PIE
|
|
#ifndef LD_PIE_SPEC
|
|
-#define LD_PIE_SPEC "-pie"
|
|
+#define LD_PIE_SPEC "-pie %{static|static-pie:--no-dynamic-linker -z text -Bsymbolic}"
|
|
#endif
|
|
#else
|
|
#define LD_PIE_SPEC ""
|
|
#endif
|
|
-#define LINK_PIE_SPEC "%{static|shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
|
|
+#define LINK_PIE_SPEC "%{shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} "
|
|
#endif
|
|
|
|
#ifndef LINK_BUILDID_SPEC
|