Re: [cygwin] cwrapper emits wrapper script
* Charles Wilson wrote on Thu, Apr 26, 2007 at 12:41:08AM CEST: The only problem I see is if libtool-HEAD-after-2.0 (say, nearing the /next/ major release) begins requiring ac-2.61/am-1.10 (or even newer). You'll have my vote against that happening too soon. I suspect they will make more of an effort to keep up with current autotools, plus I think any future ac/am updates will be much less, err, issue-prone than the ac-2.13/ac-2.5x transition was. Let's also reverse that statement: the more GCC keeps up to date with autotools, the less there is a chance that they will regress wrt. the functionality that GCC needs. Of course if people can On Wed, 25 Apr 2007 23:01:10 +0200, Ralf Wildenhues Primary aim is to release Libtool 2. Effectively you are suggesting that Cygwin's transparent_exe feature, its argz bug, and the MinGW breakage of cwrapper be considered release blockers. The latter two, yes: see below. The first one: no. Only, if you ARE going to accept it before 2.0, then I'd prefer to get that done before the upcoming gcc import, rather than miss it by a few days. If you're NOT going to accept it pre-2.0, or if it takes a month to stabilize and we miss the gcc deadline by _weeks_, then no problem. We can try, but running toward a deadline that's not known in advance can be challenging. ;-) It was you who said in response, last week: http://cygwin.com/ml/cygwin/2007-04/msg00549.html ... I'd prefer to see such a patch before deciding when it's good to put it in. Yes, and I stand by that now. Because I understand that these bugs are important to fix. Count all my other inconsistencies wrt. what I said months ago as me being wrong about when we'd have version 2 finished. Let's try to be as pragmatic as possible. Hope that works out. Cheers, Ralf
Re: mdemo ltdl failure
Hi Charles, Bruno, * Charles Wilson wrote on Thu, Apr 26, 2007 at 07:34:56AM CEST: Attached. Re-ran *all* of the tests described here: http://lists.gnu.org/archive/html/libtool-patches/2007-04/msg00073.html with identical results. Thank you for patching and testing, and thanks to Bruno for the fine review. I did not bump the argz.m4 serial again (I'm not sure what the rules are: bump on EVERY change, or only on big changes?). So, Ralf, please do that manually if it is necessary. It can't hurt, so I did that, and applied (libtool and gnulib). + if test $lt_os_major -gt 1 \ + || { test $lt_os_major -eq 1 \ +{ test $lt_os_minor -gt 5 \ + || { test $lt_os_minor -eq 5 \ +test $lt_os_micro -gt 24; }; }; }; then Bruno asked for this GCS compliant formatting. I have some (very minor) issue with it: it looks uglier in shell, due to the necessary backslashes. Also, the GCS specify this for C code only, to be strict. But I'm not all that strong about it, so I left it in your patch. Cheers, Ralf
Re: libtool/ltmain linking wrong (/usr/lib) libstdc++
[ let's continue this discussion on libtool-patches, please ] Hello Liviu, Vishal, Could you please try this patch (written for both CVS HEAD and branch-1-5), and post the --debug link output with the changed libtool script? Thank you. The patch is certainly not ready for prime time yet, as it will need lots of testing, and quite likely several more iterations. I have no idea how to write a good automatic testcase. Also I have no idea yet when to apply it if so, or whether also to 1.5. Cheers, Ralf HEAD: 2007-04-27 Ralf Wildenhues [EMAIL PROTECTED] * libltdl/config/ltmain.m4sh (func_mode_link): Do not treat `-l' in conv pass already, just like we skip over `-L' then. Fixes linking against installed /usr/lib/libstdc++.la when -lstdc++ happens to be in $postdeps. * NEWS: Update. Reports by Liviu Nicoara [EMAIL PROTECTED] and Vishal Soni-G20083 [EMAIL PROTECTED] and others. Index: NEWS === RCS file: /cvsroot/libtool/libtool/NEWS,v retrieving revision 1.203 diff -u -r1.203 NEWS --- NEWS23 Apr 2007 17:10:16 - 1.203 +++ NEWS26 Apr 2007 22:42:27 - @@ -85,6 +85,10 @@ - Use of C++ templates together with shared libraries has been improved on some systems and with some compilers, but is still ongoing work. Feedback is desirable here. + - Linking of libstdc++ (and other GCC compiler-provided libraries) +has been fixed in the case when a compiler from a nonstandard location +was used, but there was also an installation in a location the runtime +linker would search by default. * Bug fixes: Index: libltdl/config/ltmain.m4sh === RCS file: /cvsroot/libtool/libtool/libltdl/config/ltmain.m4sh,v retrieving revision 1.74 diff -u -r1.74 ltmain.m4sh --- libltdl/config/ltmain.m4sh 23 Apr 2007 17:10:17 - 1.74 +++ libltdl/config/ltmain.m4sh 26 Apr 2007 22:42:30 - @@ -3797,6 +3797,10 @@ continue ;; -l*) + if test $pass = conv; then + deplibs=$deplib $deplibs + continue + fi if test $linkmode != lib test $linkmode != prog; then func_warning \`-l' is ignored for archives/objects continue branch-1-5: Index: ltmain.in === RCS file: /cvsroot/libtool/libtool/Attic/ltmain.in,v retrieving revision 1.334.2.140 diff -u -r1.334.2.140 ltmain.in --- ltmain.in 10 Apr 2007 19:10:04 - 1.334.2.140 +++ ltmain.in 26 Apr 2007 22:43:39 - @@ -2144,6 +2144,10 @@ continue ;; -l*) + if test $pass = conv; then + deplibs=$deplib $deplibs + continue + fi if test $linkmode != lib test $linkmode != prog; then $echo $modename: warning: \`-l' is ignored for archives/objects 12 continue
Fix rebuilding rules of ltmain
OK to apply? With this, if only `ChangeLog' (and `configure.ac' for ltversion.in) are newer than the respective target, we avoid updating. This fixes the bug where touch $srcdir/libltdl/config/ltmain.m4sh # or edit otherwise would fail to update ltmain.sh and thus libtool. This seems to more or less work with the make implementations of Solaris 10, AIX 4.3.3, FreeBSD 6, and of course GNU. More or less meaning: the proprietary make implementations will keep rerunning autotools and config.status for a while, but eventually they will settle on something. Cheers, Ralf 2007-04-27 Ralf Wildenhues [EMAIL PROTECTED] * Makefile.am (clean-ltmain-sh): Removed. (libtool, $(srcdir)/$(m4dir)/ltversion.m4) ($(srcdir)/$(auxdir)/ltmain.sh): Updated to not depend on any phony rules. Test `$?' for prerequisites that should always cause us to update the target. Fixes rebuilding rules, at the cost of sometimes updating too much with non-GNU make. Index: Makefile.am === RCS file: /cvsroot/libtool/libtool/Makefile.am,v retrieving revision 1.218 diff -u -r1.218 Makefile.am --- Makefile.am 26 Apr 2007 22:34:05 - 1.218 +++ Makefile.am 26 Apr 2007 23:01:31 - @@ -89,12 +89,15 @@ # We used to do this with a 'stamp-vcl' file, but non-gmake builds # would rerun configure on every invocation, so now we manually # check the version numbers from the build rule when necessary. -libtool: clean-ltmain-sh $(top_builddir)/config.status $(srcdir)/$(auxdir)/ltmain.sh ChangeLog +libtool: $(top_builddir)/config.status $(srcdir)/$(auxdir)/ltmain.sh ChangeLog @target=libtool; $(rebuild); \ if test -f $$target; then \ set dummy `./$$target --version | sed 1q`; actualver=$$5; \ test $$actualver = $$correctver rebuild=false; \ fi; \ + for prereq in $?; do \ + case $$prereq in *ChangeLog);; *) rebuild=:;; esac; \ + done; \ if $$rebuild; then \ echo $(SHELL) ./config.status $$target; \ cd $(top_builddir) $(SHELL) ./config.status $$target; \ @@ -144,15 +147,6 @@ CLEANFILES += libtool libtoolize libtoolize.tmp \ $(auxdir)/ltmain.tmp $(m4dir)/ltversion.tmp - -## We used to build ltmain.sh in the build tree, but now it is created -## in the source tree by bootstrap. This rule removes stale copies from -## previous builds left behind in the build tree, that would override the -## source tree version in current builds. -clean-ltmain-sh: - @-test $(srcdir) = $(top_builddir) || \ - rm -f $(top_builddir)/$(auxdir)/ltmain.sh stamp-vcl - ## We build ltversion.m4 here, instead of from config.status, ## because config.status is rerun each time one of configure's ## dependencies change and ltversion.m4 happens to be a configure @@ -164,13 +158,16 @@ ## Use `$(srcdir)/m4' for the benefit of non-GNU makes: this is ## how ltversion.m4 appears in our dependencies. EXTRA_DIST += $(m4dir)/ltversion.in $(srcdir)/$(m4dir)/ltversion.m4 -$(srcdir)/$(m4dir)/ltversion.m4: clean-ltmain-sh $(m4dir)/ltversion.in configure.ac ChangeLog +$(srcdir)/$(m4dir)/ltversion.m4: $(m4dir)/ltversion.in configure.ac ChangeLog @target='$(srcdir)/$(m4dir)/ltversion.m4'; $(rebuild); \ if test -f $$target; then \ set dummy `sed -n '/^# serial /p' $$target`; shift; \ actualver=1.$$3; \ test $$actualver = $$correctver rebuild=false; \ fi; \ + for prereq in $?; do \ + case $$prereq in *ChangeLog | *configure.ac);; *) rebuild=:;; esac; \ + done; \ if $$rebuild; then \ cd $(srcdir); \ rm -f $(m4dir)/ltversion.tmp; \ @@ -197,17 +194,22 @@ ## distcheck (at least) by rebuilding ltmain.sh in the source ## tree whenever config.status regenerates the Makefile. EXTRA_DIST += $(srcdir)/$(auxdir)/ltmain.sh -$(srcdir)/$(auxdir)/ltmain.sh: clean-ltmain-sh $(sh_files) $(auxdir)/ltmain.m4sh configure.ac ChangeLog +$(srcdir)/$(auxdir)/ltmain.sh: $(sh_files) $(auxdir)/ltmain.m4sh configure.ac ChangeLog @target='$(srcdir)/$(auxdir)/ltmain.sh'; $(rebuild); \ if test -f $$target; then \ eval `sed -n '/^package_revision=/p' $$target`; \ actualver=$$package_revision; \ test $$actualver = $$correctver rebuild=false; \ fi; \ + for prereq in $?; do \ + case $$prereq in *ChangeLog);; *) rebuild=:;; esac; \ + done; \ if $$rebuild; then \ cd $(srcdir); \ rm -f $(auxdir)/ltmain.in $(auxdir)/ltmain.tmp \ $(auxdir)/ltmain.sh; \ + echo $(M4SH) -B $(auxdir) $(auxdir)/ltmain.m4sh \ + \ $(auxdir)/ltmain.in; \ $(M4SH) -B $(auxdir) $(auxdir)/ltmain.m4sh \ $(auxdir)/ltmain.in; \ input=ltmain.m4sh; \