libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Windows Line Endings


From: Gary V. Vaughan
Subject: Re: Windows Line Endings
Date: Sat, 6 Oct 2012 12:58:01 +0700

Hi Peter,

On 6 Oct 2012, at 06:20, Peter Rosin <address@hidden> wrote:
> Over to mdemo.at. It fails on MinGW because I do not have
> any installed libltdl in MinGW. Temporarily moving the
> installed Cygwin libltdl out of the lib search path makes
> the test fail on Cygwin as well. So, I believe this is
> a generic failure.

Nice catch!  And thanks for the analysis, that allowed me to get to the root
of the problem pretty quickly:

Legacy mdemo{,2} tests tricked their respective builds into reusing the main
project's libltdlc.la, where I tried to retool the replacement Autotest to
do what a user would do and use the project's own ltdl subproject.  Only I
didn't remove all of the trickery while rewriting the test  :-(

> Without an installed libltdl, I get this
> during configure:
> 
> checking where to find libltdl headers... -I$(top_srcdir)/libltdl
> checking where to find libltdl library... 
> $(top_build_prefix)libltdl/libltdlc.la
> 
> and this when making:
> 
> ../../libtool-msvc/tests/mdemo.at:646: $unset LIBTOOL LIBTOOLIZE; $MAKE 
> $target 
> stderr:
> Makefile:1090: warning: overriding commands for target `libltdl/libltdlc.la'
> Makefile:573: warning: ignoring old commands for target `libltdl/libltdlc.la'
> Makefile:1090: warning: overriding commands for target `libltdl/libltdlc.la'
> Makefile:573: warning: ignoring old commands for target `libltdl/libltdlc.la'
> libtool: link: cannot find the library `libltdl/libltdlc.la' or unhandled 
> argument `libltdl/libltdlc.la'
> make[1]: *** [libmlib.la] Error 1

This means LTDL_INIT is finding the ltdl subtree, but I forgot to remove the
Makefile.am trickery to point $(LIBLTDL) back to $(top_srcdir)/libltdl.

> On Cygwin, with the installed libltdl intact, I get this during
> configure:
> 
> checking where to find libltdl headers... 
> checking where to find libltdl library... -lltdl
> 
> (and the test is ok, in so far one can consider using the
> installed libltdl ok...)

And I also forgot to pass --with-included-ltdl to configure :(

> I'm also noting that some time ago, mdemo had this in it's
> Makefile.am:
> 
> ## use @LIBLTDL@ because some broken makes do not accept macros in targets
> ## we can only do this because our LIBLTDL does not contain ${top_builddir}
> top_distdir = ../..
> @LIBLTDL@: $(top_distdir)/libtool \
>    $(top_distdir)/config.h $(srcdir)/$(top_distdir)/libltdl/ltdl.c \
>    $(srcdir)/$(top_distdir)/libltdl/ltdl.h
>       (cd $(top_distdir); $(MAKE) `echo $(LIBLTDL) | sed 
> 's,.*\.\./libltdl/,libltdl/,g'`)
> 
> but somewhere along the way, that comment was removed, probably at
> the same time @LIBLTDL@ was converted into $(LIBLTDL). Anyway,
> mdemo.at has this:
> 
> \$(LIBLTDL): ${top_build_prefix}libtool \
>    ${top_build_prefix}config.h $top_srcdir/libltdl/ltdl.c \
>    $top_srcdir/libltdl/ltdl.h
>       cd $top_build_prefix; \$(MAKE) \`echo \$(LIBLTDL) | sed 
> 's|.*\.\./\.\./libltdl/|libltdl/|g'\`
> 
> But the second line of the removed comment seems crucial and
> as our $(LIBLTDL) is not the expected "libltdl/libltdlc.la",
> Automake is fooled into creating two targets for the same
> file. Or something.

Something.  This is the trickery I'm talking about, which needs removing
to let mdemo.at use it's own libltdl.

> Also, the old mdemo had LTDL_CONVENIENCE([../../libltdl]), and the
> new mdemo.at have LT_CONFIG_LTDL_DIR([libltdl]) and
> LTDL_INIT([nonrecursive]), which does not seem entirely equivalent?

Right, because I tried to convert from reusing top-level libltdlc.la to
actually building our own subproject libltdl per-test.

> I don't have enough autofuu to fix this.

I've pushed a patch that fixes all of the above.  Pending as-yet-undiscovered
Windows madness, I think that should allow the test to work on your test
environments too.

Cheers,
-- 
Gary V. Vaughan (gary AT gnu DOT org)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]