summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2013-06-26 14:37:53 +1000
committerAllan McRae <allan@archlinux.org>2013-07-22 13:27:47 +1000
commit28cb22e3c20676c42a08593b5553ee896b53e030 (patch)
tree5b8234351bb357f90dbb13b865bdaaf92dd9d37c
parent1438377401431af3872e2a0c323fb804802242ad (diff)
downloadpacman-28cb22e3c20676c42a08593b5553ee896b53e030.tar.xz
Patch ltmain on autoreconf
We used to carry a patched version of ltmain in our repos to fix libtools issues with -Wl,-as-needed. Now that ltmain is "generated" by autoreconf, we manually patch it afterwards. Signed-off-by: Allan McRae <allan@archlinux.org>
-rwxr-xr-xautogen.sh3
-rw-r--r--build-aux/.gitignore3
-rw-r--r--build-aux/ltmain-asneeded.patch33
3 files changed, 37 insertions, 2 deletions
diff --git a/autogen.sh b/autogen.sh
index c31f34fb..d11badcb 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,3 +1,4 @@
#!/bin/sh -xu
-autoreconf -i \ No newline at end of file
+autoreconf -i
+(cd build-aux && patch -Np0 -i ltmain-asneeded.patch)
diff --git a/build-aux/.gitignore b/build-aux/.gitignore
index f59ec20a..3ec659c2 100644
--- a/build-aux/.gitignore
+++ b/build-aux/.gitignore
@@ -1 +1,2 @@
-* \ No newline at end of file
+*
+!ltmain-asneeded.patch
diff --git a/build-aux/ltmain-asneeded.patch b/build-aux/ltmain-asneeded.patch
new file mode 100644
index 00000000..af5ae6b2
--- /dev/null
+++ b/build-aux/ltmain-asneeded.patch
@@ -0,0 +1,33 @@
+--- ltmain.sh.orig 2013-06-26 14:31:53.472627840 +1000
++++ ltmain.sh 2013-06-26 14:30:56.137038936 +1000
+@@ -5800,6 +5800,14 @@
+ arg=$func_stripname_result
+ ;;
+
++ -Wl,*--as-needed*)
++ deplibs="$deplibs $wl--as-needed"
++ ;;
++
++ -Wl,*--no-as-needed*)
++ deplibs="$deplibs $wl--no-as-needed"
++ ;;
++
+ -Wl,*)
+ func_stripname '-Wl,' '' "$arg"
+ args=$func_stripname_result
+@@ -6160,6 +6168,15 @@
+ lib=
+ found=no
+ case $deplib in
++ -Wl,--as-needed|-Wl,--no-as-needed)
++ if test "$linkmode,$pass" = "prog,link"; then
++ compile_deplibs="$deplib $compile_deplibs"
++ finalize_deplibs="$deplib $finalize_deplibs"
++ else
++ deplibs="$deplib $deplibs"
++ fi
++ continue
++ ;;
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+ if test "$linkmode,$pass" = "prog,link"; then