Subject: bug#19370: LT 2.4.4 regression (vs. 2.4.2)

From: "Jeff Squyres (jsquyres)" <[email-masked]>
Date: Sat, 13 Dec 2014 17:59:52 +0000

I have found what appears to be a regression in Libtool 2.4.4 vs. 2.4.2 (I did not test 2.4.3).

When embedding LT 2.4.4 libltdl in a larger project, the first time you invoke any "make" target (e.g., even "make clean"), "make" decides to run aclocal in the embedded libltdl directory.

This did not happen in LT 2.4.2 and earlier.

This behavior causes other problems in the Open MPI project, but I think the fact that "make" decides to invoke aclocal at all is the root cause.

Attached is a simple reproducer (if the tarball doesn't make it through anti-virus scanners, the same source is on github: https://github.com/jsquyres/libtool-2.4.4-bug):

- untar it
- run "./autogen.sh" (which runs autoreconf)
- run "./configure"
- run "make clean"

You'll see aclocal invoked in the embedded-libltdl directory.

The problem appears to be that make is checking for ../m4/libtool.m4 file as a dependency.  This file file -- and the entire ../m4 directory, for that matter -- does not exist.  So make decides to fire the "run the aclocal" rule.

In LT 2.4.2, make appears to check for m4/libtool.m4 (note the lack of ../), and somehow decides that even though this directory/file does not exist, it does not need to fire the "run the aclocal" rule.

Can someone have a look at this?  This behavior is preventing the Open MPI project from upgrading beyond Libtool 2.4.2.

Thank you!

-- 
Jeff Squyres
[email-masked]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/