Distro patch to libtool on Debian Wheezy/Ubuntu Oneiric breaks compile of rrdtool (Was: Re: Compile failure due to libwrap on Ubuntu 11.10)

Alex Bennee <[email protected]> Tue, 20 Dec 2011 17:33:51 +0000
Newsgroups gmane.comp.db.rrdtool.devel,gmane.linux.ubuntu.devel.discuss
Message-ID <CAJ-05NOXj9YgBDVSG9QbC+RxfR7DqbV8Ncb1SrDDV56A3=mG6g@mail.gmail.com>
On 20 December 2011 15:46, Tobias Oetiker <[email protected]> wrote:
> Hi Alex,
>
> Yesterday Alex Bennee wrote:
>
>> On 19 December 2011 17:00, Tobias Oetiker <[email protected]> wrote:
>> > Alex,
>> >
>> > your system seems to be using a different version of  libtool ...
>> > so did you run MakeMakefile ?
>>
>> No, isn't that part of the configure/autogen stuff?
>
> MakeMakefile calls the auto* tools in a way so that all the right
> bits get put into place ...
>
> libtool gets created by libtoolize as far as I know ...

OK after much bisecting I've narrowed it down to a patch in libtool
2.4 added by Debian in
libtool 2.4-1 The result moves the processing of dependancy_libs
in libtool which breaks the passing of the flags in the subtle and
maddening way discussed.

I've attached the libtool patch for reference. Once I've figured out
what it's trying to achieve
I'll raise a bug with Debian/Ubuntu to fix their libtool and then
we'll finally be able to build a newer
rrdtool on Debian.

-- 
Alex, homepage: http://www.bennee.com/~alex/
http://www.half-llama.co.uk

_______________________________________________
rrd-developers mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
deplib_binary.patch (text/x-patch, 1.2 KB)
Index: libtool-2.4/libltdl/config/ltmain.m4sh
===================================================================
--- libtool-2.4.orig/libltdl/config/ltmain.m4sh	2011-03-27 21:52:59.000000000 +0000
+++ libtool-2.4/libltdl/config/ltmain.m4sh	2011-03-27 22:06:06.000000000 +0000
@@ -5644,19 +5644,19 @@
 	    # It is a libtool convenience library, so add in its objects.
 	    func_append convenience " $ladir/$objdir/$old_library"
 	    func_append old_convenience " $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+	      if $opt_preserve_dup_deps ; then
+		case "$tmp_libs " in
+		*" $deplib "*) func_append specialdeplibs " $deplib" ;;
+		esac
+	      fi
+	      func_append tmp_libs " $deplib"
+	    done
 	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 	    func_fatal_error "\`$lib' is not a convenience library"
 	  fi
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    deplibs="$deplib $deplibs"
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $deplib"
-	  done
 	  continue
 	fi # $pass = conv