Subject: bug#54928: Libtool 2.4.6 vs. 2.4.7

From: Liliana Marie Prikler <[email-masked]>
Date: Thu, 14 Apr 2022 14:25:23 +0200

Am Donnerstag, dem 14.04.2022 um 14:07 +0200 schrieb Andreas Enge:
> > > I have installed [email-masked] into my profile
> > That is a mistake.
> > 
> > > as well as a number of other development tools
> > Probably also a mistake.
> 
> Could you elaborate why? If you work on a project, it seems necessary
> to install development tools (gcc-toolchain, autoconf, automake,
> make, texinfo, ...).
True, but to keep adverse effects resulting from environment mixing to
a minimum, you would typically only use those inside ‘guix environment’
(now ‘guix shell’) and refrain from global installation.  See also a
number of talks suggesting you put a ‘guix.scm’ file into the project
root directory for this very purpose.

> > I think the problem is caused in the ../libtool symlink, which is
> > probably not updated to reflect your installation.  This is a known
> > issue with stale build files, which also happens if you garbage-
> > collect stuff.  distclean or maintainerclean should solve your
> > issue.  Or you might just as well delete the symlink manually :)
> 
> I had already removed it, and the problem persisted. I suppose that
> autoreconf or configure created it again in version 2.4.6, and during
> make my version 2.4.7 was used instead.
I'm not sitting in front of your computer, so I can hardly estimate
what has already been expanded where.  However, the typical flow should
go like this: 
1. autoreconf pulls missing files from your libtool into the auxiliary
directory (typically build-aux).
2. configure detects your libtool and configures it according to the
configuration options you pass.
3. make invokes libtool -- if make detects the Makefile itself to be
old, it might restart from 2.
In any case, the error points towards autoreconf not using 2.4.6, but
2.4.7 as base, i.e. an error in step (1).  Maybe you forgot to run it?
Also, never run autoreconf without -v, it stands for "very important".

As a general rule, the GNU build system does not provide a tooclean
target for make.

Cheers