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