Subject: bug#10301: Problems in $(LIBTOOL) deifnition (was: Re: automake bug#10301: /bin/sh used to execute libtool)

From: Stefano Lattarini <[email-masked]>
Date: Thu, 15 Dec 2011 10:54:40 +0100

[CC:ing bug-libtool]

Hi Marko, thanks for the report.

On Wednesday 14 December 2011, Marko Lindqvist wrote:
> I'm not entirely sure if this is automake or libtool bug, but assuming
> automake so reporting here.
>
> I'm cross-compiling gettext to mingw32-target in linux system. I have
> to regenerate build system (so it's not the one distributed with
> gettext 0.18.1.1). I end with libtool-script that has /bin/bash as
> shebang. Yet when doing the build, it's run through /bin/sh ("/bin/sh
> ../libtool"). This work in one of my systems where /bin/sh is bash,
> and fails in another where /bin/sh is dash.
>
The issue you are experiencing is probably due to the fact that the
automake-generated makefiles use $(LIBTOOL) to issue libtool invocations,
and that explicitly runs the libtool script through the shell given by
$(SHELL).  But automake isn't at fault here, since it takes its definition
of $(LIBTOOL) from the libtool-provided macros; more precisely, the
definition of $(LIBTOOL) is derived from the following code in the LT_INIT
definition (see the file `m4/libtool.m4' in the libtool repository):

  # Always use our own libtool.
  LIBTOOL='$(SHELL) $(top_builddir)/libtool'
  AC_SUBST(LIBTOOL)dnl

So my opinion is that this is a libtool bug (that's why I am CC:ing
bug-libtool).  I will wait few days to see if I'm proven wrong, then
I'm going to close this bug report for what concerns automake, leaving
it to the libtool developers to deal with it.

Regards,
  Stefano