add patch fixing copy relocs issue on riscv
this is binutils issue 23825, but it's caused by gcc using local-exec model rather than initial-exec model with the intent of making binutils generate copy relocations. this is harmful, unnecessary, and not presently supported by musl (and probably should never be). patch taken from https://github.com/riscv/riscv-gcc/pull/118.
This commit is contained in:
parent
a9a3b3aee2
commit
52527c462f
|
@ -0,0 +1,16 @@
|
|||
diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
|
||||
index 677728e77ed..444d01e87ec 100644
|
||||
--- a/gcc/config/riscv/riscv.c
|
||||
+++ b/gcc/config/riscv/riscv.c
|
||||
@@ -1209,9 +1209,11 @@ riscv_legitimize_tls_address (rtx loc)
|
||||
rtx dest, tp, tmp;
|
||||
enum tls_model model = SYMBOL_REF_TLS_MODEL (loc);
|
||||
|
||||
+#if 0
|
||||
/* Since we support TLS copy relocs, non-PIC TLS accesses may all use LE. */
|
||||
if (!flag_pic)
|
||||
model = TLS_MODEL_LOCAL_EXEC;
|
||||
+#endif
|
||||
|
||||
switch (model)
|
||||
{
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
|
||||
index 677728e77ed..444d01e87ec 100644
|
||||
--- a/gcc/config/riscv/riscv.c
|
||||
+++ b/gcc/config/riscv/riscv.c
|
||||
@@ -1209,9 +1209,11 @@ riscv_legitimize_tls_address (rtx loc)
|
||||
rtx dest, tp, tmp;
|
||||
enum tls_model model = SYMBOL_REF_TLS_MODEL (loc);
|
||||
|
||||
+#if 0
|
||||
/* Since we support TLS copy relocs, non-PIC TLS accesses may all use LE. */
|
||||
if (!flag_pic)
|
||||
model = TLS_MODEL_LOCAL_EXEC;
|
||||
+#endif
|
||||
|
||||
switch (model)
|
||||
{
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
|
||||
index 677728e77ed..444d01e87ec 100644
|
||||
--- a/gcc/config/riscv/riscv.c
|
||||
+++ b/gcc/config/riscv/riscv.c
|
||||
@@ -1209,9 +1209,11 @@ riscv_legitimize_tls_address (rtx loc)
|
||||
rtx dest, tp, tmp;
|
||||
enum tls_model model = SYMBOL_REF_TLS_MODEL (loc);
|
||||
|
||||
+#if 0
|
||||
/* Since we support TLS copy relocs, non-PIC TLS accesses may all use LE. */
|
||||
if (!flag_pic)
|
||||
model = TLS_MODEL_LOCAL_EXEC;
|
||||
+#endif
|
||||
|
||||
switch (model)
|
||||
{
|
|
@ -0,0 +1,16 @@
|
|||
diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c
|
||||
index 677728e77ed..444d01e87ec 100644
|
||||
--- a/gcc/config/riscv/riscv.c
|
||||
+++ b/gcc/config/riscv/riscv.c
|
||||
@@ -1209,9 +1209,11 @@ riscv_legitimize_tls_address (rtx loc)
|
||||
rtx dest, tp, tmp;
|
||||
enum tls_model model = SYMBOL_REF_TLS_MODEL (loc);
|
||||
|
||||
+#if 0
|
||||
/* Since we support TLS copy relocs, non-PIC TLS accesses may all use LE. */
|
||||
if (!flag_pic)
|
||||
model = TLS_MODEL_LOCAL_EXEC;
|
||||
+#endif
|
||||
|
||||
switch (model)
|
||||
{
|
Loading…
Reference in New Issue