summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorXiretza2021-07-13 21:56:44 +0200
committerXiretza2021-07-14 11:28:30 +0200
commit1d4e8a5cb982e79135a0aaa3ef87654bed1fe4f0 (patch)
tree2a267194b94f4c548ec3250e6eb4ed5d2f077cf7
parentaa5ed088ab87baf1b2a257712b21436eec1cab89 (diff)
downloadaur-1d4e8a5cb982e79135a0aaa3ef87654bed1fe4f0.tar.gz
Use ld as Library_Partial_Linker in gprconfig
-rw-r--r--.SRCINFO4
-rw-r--r--0001-Use-ld-as-Library_Partial_Linker.patch39
-rw-r--r--PKGBUILD10
3 files changed, 50 insertions, 3 deletions
diff --git a/.SRCINFO b/.SRCINFO
index bb3bc9a780ad..37c9639e60b7 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = gprbuild
pkgdesc = Builder for multi-language systems
pkgver = 21.0.0
- pkgrel = 3
+ pkgrel = 4
epoch = 1
url = https://github.com/AdaCore/gprbuild/
arch = i686
@@ -14,10 +14,12 @@ pkgbase = gprbuild
source = gprconfig_kb-21.0.0.tar.gz::https://github.com/AdaCore/gprconfig_kb/archive/v21.0.0.tar.gz
source = relocatable-build.patch
source = always-use-host-gprinstall.patch
+ source = 0001-Use-ld-as-Library_Partial_Linker.patch
sha256sums = 54b7d1a3298160109aaee4d8c263c1ab3ab4abae75d354f3e90a4c51639167a2
sha256sums = 2aec26afad5bb1a4685d9c041c9c797ff5beda211a5e81f2a97452d2ceabc557
sha256sums = d6479e03e6b6cfb09c133d94e3c47ea5d5e5e756b95554ab3106a679c3d57de4
sha256sums = 3fe0fd1df3156c9a8488d98ee6e7e822ae904ce410838661c8fc14c29abe2620
+ sha256sums = 1749c8cdecf42bec9103fd9d1b7f79556eeb37de5a51c115eda8368dba3cc7c0
pkgname = libgpr
pkgdesc = Ada library to handle Gnat project files
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
+
diff --git a/PKGBUILD b/PKGBUILD
index f0fe54dc9fa0..0d892284a815 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@ pkgbase=gprbuild
pkgname=(libgpr gprbuild)
epoch=1
pkgver=21.0.0
-pkgrel=3
+pkgrel=4
pkgdesc="Builder for multi-language systems"
arch=('i686' 'x86_64')
url="https://github.com/AdaCore/gprbuild/"
@@ -19,13 +19,19 @@ source=(
"gprconfig_kb-$pkgver.tar.gz::https://github.com/AdaCore/gprconfig_kb/archive/v$pkgver.tar.gz"
'relocatable-build.patch'
'always-use-host-gprinstall.patch'
+ '0001-Use-ld-as-Library_Partial_Linker.patch'
)
sha256sums=('54b7d1a3298160109aaee4d8c263c1ab3ab4abae75d354f3e90a4c51639167a2'
'2aec26afad5bb1a4685d9c041c9c797ff5beda211a5e81f2a97452d2ceabc557'
'd6479e03e6b6cfb09c133d94e3c47ea5d5e5e756b95554ab3106a679c3d57de4'
- '3fe0fd1df3156c9a8488d98ee6e7e822ae904ce410838661c8fc14c29abe2620')
+ '3fe0fd1df3156c9a8488d98ee6e7e822ae904ce410838661c8fc14c29abe2620'
+ '1749c8cdecf42bec9103fd9d1b7f79556eeb37de5a51c115eda8368dba3cc7c0')
prepare() {
+ cd "$srcdir/gprconfig_kb-$pkgver"
+
+ patch -Np1 -i "$srcdir/0001-Use-ld-as-Library_Partial_Linker.patch"
+
cd "$srcdir/$pkgbase-$pkgver"
patch -Np1 -i "$srcdir/relocatable-build.patch"