summarylogtreecommitdiffstats
path: root/0001-Use-ld-as-Library_Partial_Linker.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-Use-ld-as-Library_Partial_Linker.patch')
-rw-r--r--0001-Use-ld-as-Library_Partial_Linker.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/0001-Use-ld-as-Library_Partial_Linker.patch b/0001-Use-ld-as-Library_Partial_Linker.patch
new file mode 100644
index 000000000000..24316cb0d093
--- /dev/null
+++ b/0001-Use-ld-as-Library_Partial_Linker.patch
@@ -0,0 +1,39 @@
+From f17b183cbc296edc7d5f3611053e47229a7cb4e2 Mon Sep 17 00:00:00 2001
+From: Xiretza <xiretza@xiretza.xyz>
+Date: Tue, 13 Jul 2021 20:18:29 +0200
+Subject: [PATCH] Use ld as Library_Partial_Linker
+
+Arch's GCC is built with --enable-default-pie, so if it's used as a linker
+frontend, it passes -pie to ld internally. Because -pie is incompatible
+with -r, stand-alone libraries[1], which use partial linking, fail to build.
+
+[1]: https://docs.adacore.com/gprbuild-docs/html/gprbuild_ug/gnat_project_manager.html#stand-alone-library-projects
+---
+ db/linker.xml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/db/linker.xml b/db/linker.xml
+index e14f4fb..6f85636 100644
+--- a/db/linker.xml
++++ b/db/linker.xml
+@@ -1128,7 +1128,7 @@
+ </targets>
+ <config>
+ for Library_Partial_Linker use
+- ("${PATH(ada)}${PREFIX(ada)}gcc", "-nostdlib", "-Wl,-r", "-o");
++ ("${PATH(ada)}${PREFIX(ada)}ld", "-nostdlib", "-r", "-o");
+ </config>
+ </configuration>
+
+@@ -1147,7 +1147,7 @@
+ </targets>
+ <config>
+ for Library_Partial_Linker use
+- ("${PATH(c)}${PREFIX(c)}gcc", "-nostdlib", "-Wl,-r", "-o");
++ ("${PATH(c)}${PREFIX(c)}ld", "-nostdlib", "-r", "-o");
+ </config>
+ </configuration>
+
+--
+2.32.0
+