[patch 1/2] 307-gary-fix-recursive-ltdl-dist-rules.diff
Okay to commit? Your wish is my command -- now \(non\)?recursive modes don't blow up the make dist rule of parent projects. This turned out to be more straight forward that I had expected, so I went ahead and did it myself. It also exposes a bug in the testsuite which I'll address in my next patch. Makefile.am | 10 +- libltdl/Makefile.inc | 41 +++-- libtoolize.m4sh | 13 + tests/nonrecursive.at | 24 tests/recursive.at| 19 +++ tests/subproject.at | 15 +++ 6 files changed, 111 insertions(+), 11 deletions(-) Index: libtool--devo--1.0/ChangeLog from Gary V. Vaughan [EMAIL PROTECTED] * libltdl/Makefile.inc (EXTRA_DIST): Move files that are not installed unconditionally to a client from here... * Makefile.am (EXTRA_DIST): ...to here. * libtoolize.m4sh: Append the paths to installed files to EXTRA_DIST in newly copied Makefile.am. * tests/nonrecursive.at, tests/recursive.at, tests/subproject.at: Add new dist tests to prevent a regression. Index: libtool--devo--1.0/Makefile.am === --- libtool--devo--1.0.orig/Makefile.am +++ libtool--devo--1.0/Makefile.am @@ -214,7 +214,6 @@ $(srcdir)/libltdl/Makefile.am: $(srcdir) $(SED) -n '/^.. DO NOT REMOVE THIS LINE -- /,$$ \ { s,libltdl_,,; s,libltdl/,,; s,: libltdl/,: ,; \ s,\$$(libltdl_,$$(,; p; }' $$in $$out; - chmod a-w $(srcdir)/libltdl/Makefile.am $(srcdir)/libltdl/Makefile.in: $(srcdir)/libltdl/Makefile.am cd $(srcdir)/libltdl $(AUTOMAKE) Makefile @@ -229,6 +228,15 @@ all-local: $(srcdir)/libltdl/Makefile.in include libltdl/Makefile.inc +EXTRA_DIST +=libltdl/Makefile.am \ + libltdl/Makefile.in \ + libltdl/Makefile.inc \ + libltdl/config-h.in \ + libltdl/configure \ + libltdl/configure.ac \ + libltdl/aclocal.m4 \ + libltdl/m4/lt~obsolete.m4 + if ! LTDL_SUBDIR_LIBOBJS ## workaround for Autoconf 2.59, Automake 1.9.6: ## we include these files twice, because of missing LIBOBJDIR support. Index: libtool--devo--1.0/libltdl/Makefile.inc === --- libtool--devo--1.0.orig/libltdl/Makefile.inc +++ libtool--devo--1.0/libltdl/Makefile.inc @@ -1,4 +1,4 @@ -## Makefile.am -- Process this file with automake to produce Makefile.in +## Makefile.inc -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ## @@ -117,15 +117,7 @@ CLEANFILES+= libltdl/libltdl.la CLEANFILES+= $(LIBOBJS) $(LTLIBOBJS) EXTRA_DIST+= libltdl/COPYING.LIB \ - libltdl/Makefile.am \ - libltdl/Makefile.in \ - libltdl/Makefile.inc \ - libltdl/README \ - libltdl/config-h.in \ - libltdl/configure \ - libltdl/configure.ac \ - libltdl/aclocal.m4 \ - libltdl/m4/lt~obsolete.m4 + libltdl/README ## --- ## ## Gnulib Makefile.am snippets ## Index: libtool--devo--1.0/libtoolize.m4sh === --- libtool--devo--1.0.orig/libtoolize.m4sh +++ libtool--devo--1.0/libtoolize.m4sh @@ -1066,6 +1066,19 @@ func_nonemptydir_p () func_copy_some_files $pkgltdl_files $pkgltdldir/libltdl $ltdldir +# Fixup the EXTRA_DIST contents in Makefile.inc if necessary +my_makefile=$ltdldir/Makefile.am +test -f $ltdldir/Makefile.inc my_makefile=$ltdldir/Makefile.inc +set -x +my_save_IFS=$IFS +IFS=: +for file in $pkgltdl_files; do + IFS=$my_save_IFS + test nonrecursive = $ltdl_mode file=$ltdldir/$file + echo EXTRA_DIST += $file $my_makefile +done +IFS=$my_save_IFS +set +x # Unless we share CONFIG_MACRO_DIR with our parent project, # copy macros here. if test $ltdldir/m4 != $m4dir; then Index: libtool--devo--1.0/tests/nonrecursive.at === --- libtool--devo--1.0.orig/tests/nonrecursive.at +++ libtool--devo--1.0/tests/nonrecursive.at @@ -132,5 +132,29 @@ AT_CHECK([test -f $prefix/include/ltdl.h AT_CLEANUP + +## - ## +## Distributing libtoolized project. ## +## - ## + +AT_SETUP([distributing libltdl]) + +_LTDL_SETUP + +LT_AT_LIBTOOLIZE([--copy --ltdl --install --nonrecursive]) +AT_CHECK([if test -f libltdl/configure.ac; then false; fi]) + +# Support vanilla autoconf-2.59 automake-1.9.6 +for file in argz.c
[patch 2/2] 308-gary-am-subdir-autotest-aclocal-fix.diff
Okay to commit? ...aforementioned testsuite fix. All tests pass again with both this and the last patch applied. Cheers, Gary. tests/am-subdir.at |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: libtool--devo--1.0/tests/am-subdir.at === --- libtool--devo--1.0.orig/tests/am-subdir.at +++ libtool--devo--1.0/tests/am-subdir.at @@ -74,7 +74,7 @@ AT_DATA(expout, ** This is libsub ** ]]) -LT_AT_BOOTSTRAP([--copy --ltdl], [], [ignore], [--add-missing]) +LT_AT_BOOTSTRAP([--copy --ltdl], [-I m4], [ignore], [--add-missing]) LT_AT_EXEC_CHECK([subdir/subdemo], 0, expout) @@ -150,7 +150,7 @@ AT_DATA([[subdir/sub.cxx]], int libsub::sub (void) { return 27; } ]]) -LT_AT_BOOTSTRAP([--copy --ltdl], [], [ignore], [--add-missing]) +LT_AT_BOOTSTRAP([--copy --ltdl], [-I m4], [ignore], [--add-missing]) LT_AT_EXEC_CHECK([subdir/subdemo], 0) -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook
Re: [patch 2/2] 308-gary-am-subdir-autotest-aclocal-fix.diff
Hi Gary, * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 11:38:56AM CET: Okay to commit? ...aforementioned testsuite fix. Yes, please. Thanks! All tests pass again with both this and the last patch applied. Can't believe that, though. :) (I forgot to remove the autoheader calls from nonrecursive.at together with my AC_CONFIG_HEADER change last night. Maybe you have that fixed in your tree anyway.) Cheers, Ralf tests/am-subdir.at |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: libtool--devo--1.0/tests/am-subdir.at === --- libtool--devo--1.0.orig/tests/am-subdir.at +++ libtool--devo--1.0/tests/am-subdir.at @@ -74,7 +74,7 @@ AT_DATA(expout, ** This is libsub ** ]]) -LT_AT_BOOTSTRAP([--copy --ltdl], [], [ignore], [--add-missing]) +LT_AT_BOOTSTRAP([--copy --ltdl], [-I m4], [ignore], [--add-missing]) LT_AT_EXEC_CHECK([subdir/subdemo], 0, expout) @@ -150,7 +150,7 @@ AT_DATA([[subdir/sub.cxx]], int libsub::sub (void) { return 27; } ]]) -LT_AT_BOOTSTRAP([--copy --ltdl], [], [ignore], [--add-missing]) +LT_AT_BOOTSTRAP([--copy --ltdl], [-I m4], [ignore], [--add-missing]) LT_AT_EXEC_CHECK([subdir/subdemo], 0)
Re: [patch 2/2] 308-gary-am-subdir-autotest-aclocal-fix.diff
Ralf Wildenhues wrote: Hi Gary, Hallo Ralf, * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 11:38:56AM CET: Okay to commit? ...aforementioned testsuite fix. Yes, please. Thanks! Stalled on 300 301... All tests pass again with both this and the last patch applied. Can't believe that, though. :) (I forgot to remove the autoheader calls from nonrecursive.at together with my AC_CONFIG_HEADER change last night. Maybe you have that fixed in your tree anyway.) Patch 300 obviates the need for autoheader calls in the test (well, sorta), and I'm testing from the end of my patch queue ;-) I'll post another status presently. Cheers, Gary. -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook signature.asc Description: OpenPGP digital signature
Re: My patch queue status
Readjusted for the last round of commits. Thanks again to Ralf for taking the time to review these patches -- many of them deep and complex. - patches/300-gary-simplify-tests.diff http://lists.gnu.org/archive/html/libtool-patches/2005-10/msg00157.html reposted for review + patches/301-gary-set-macrodir-correctly-for-installcheck.diff http://lists.gnu.org/archive/html/libtool-patches/2005-10/msg00071.html pre-approved -- awaiting commit of earlier patches - patches/306-gary-treat-argz-m4-like-ltdl-m4.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00027.html needs more discussion - patches/307-gary-fix-recursive-ltdl-dist-rules.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00107.html pending review + patches/308-gary-am-subdir-autotest-aclocal-fix.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00108.html approved - patches/1-ralf-fix-ltdl-config-dist.diff awaiting Ralf's version - patches/272-gary-sync-m4sh-utils.diff deferred until post-2.0 Cheers, Gary. -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook signature.asc Description: OpenPGP digital signature
Re: [patch 18/19] 300-gary-simplify-tests.diff
Hi Gary, * Gary V. Vaughan wrote on Tue, Oct 18, 2005 at 11:15:20AM CEST: Redone against current HEAD + previous patches feedback. Okay to commit? Yes, modulo nits below. Thanks. Cheers, Ralf Index: libtool--devo--1.0/ChangeLog from Gary V. Vaughan [EMAIL PROTECTED] * tests/testsuite.at (LT_AT_BOOTSTRAP): Allow passing arguments to configure. * tests/old-m4-iface.at, tests/subproject.at: Use LT_AT_BOOTSTRAP./ Index: libtool--devo--1.0/tests/am-subdir.at === --- libtool--devo--1.0.orig/tests/am-subdir.at +++ libtool--devo--1.0/tests/am-subdir.at @@ -31,6 +31,7 @@ AT_DATA([[configure.ac]], [[AC_INIT([subdir-demo], ]]AT_PACKAGE_VERSION[[, ]]AT_PACKAGE_BUGREPORT[[) AM_INIT_AUTOMAKE([subdir-objects foreign]) LT_INIT([win32-dll]) +AC_PROG_CC AM_PROG_CC_C_O AC_CONFIG_FILES([Makefile]) AC_OUTPUT @@ -73,8 +74,8 @@ AT_DATA(expout, ** This is libsub ** ]]) -LT_AT_BOOTSTRAP -LT_AT_MAKE +LT_AT_BOOTSTRAP([--copy --ltdl], [], [ignore], [--add-missing]) Remove the --ltdl here. am-subdir test has nothing to do with libltdl. Please make sure that when you install 308 (which touches the same line), you don't undo that change again. + LT_AT_EXEC_CHECK([subdir/subdemo], 0, expout) AT_CLEANUP @@ -91,6 +92,7 @@ LT_AT_TAG([CXX]) AT_DATA([[configure.ac]], [[AC_INIT([subdir-demo], ]]AT_PACKAGE_VERSION[[, ]]AT_PACKAGE_BUGREPORT[[) AM_INIT_AUTOMAKE([subdir-objects foreign]) +AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CXX AC_PROG_CXXCPP @@ -148,8 +150,8 @@ AT_DATA([[subdir/sub.cxx]], int libsub::sub (void) { return 27; } ]]) -LT_AT_BOOTSTRAP -LT_AT_MAKE +LT_AT_BOOTSTRAP([--copy --ltdl], [], [ignore], [--add-missing]) Ditto. + LT_AT_EXEC_CHECK([subdir/subdemo], 0) AT_CLEANUP Index: libtool--devo--1.0/tests/nonrecursive.at === --- libtool--devo--1.0.orig/tests/nonrecursive.at +++ libtool--devo--1.0/tests/nonrecursive.at @@ -76,13 +76,7 @@ for file in argz.c lt__dirent.c lt__strl cp libltdl/$file $file done -LT_AT_ACLOCAL([-I libltdl/m4]) -LT_AT_AUTOHEADER -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE -LT_AT_MAKE +LT_AT_BOOTSTRAP([ignore], [-I libltdl/m4], [], [--add-missing --copy]) Please put `ignore' for the autoheader position here. Otherwise, the test fails (my missing fixup, see other mail). AT_CHECK([test -f libltdl/libltdlc.la]) @@ -105,13 +99,7 @@ for file in argz.c lt__dirent.c lt__strl cp libltdl/$file $file done -LT_AT_ACLOCAL([-I libltdl/m4]) -LT_AT_AUTOHEADER -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE -LT_AT_MAKE +LT_AT_BOOTSTRAP([ignore], [-I libltdl/m4], [], [--add-missing --copy]) Ditto. AT_CHECK([test -f libltdl/libltdlc.la]) @@ -136,13 +124,8 @@ for file in argz.c lt__dirent.c lt__strl cp libltdl/$file $file done -LT_AT_ACLOCAL([-I libltdl/m4]) -LT_AT_AUTOHEADER -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE([--enable-ltdl-install --prefix=$prefix]) -LT_AT_MAKE([all install]) +LT_AT_BOOTSTRAP([ignore], [-I libltdl/m4], [], [--add-missing --copy], [], + [--enable-ltdl-install --prefix=$prefix], [all install]) Ditto. AT_CHECK([test -f $prefix/lib/libltdl.la]) AT_CHECK([test -f $prefix/include/ltdl.h]) Index: libtool--devo--1.0/tests/old-m4-iface.at === --- libtool--devo--1.0.orig/tests/old-m4-iface.at +++ libtool--devo--1.0/tests/old-m4-iface.at @@ -71,14 +71,11 @@ LT_AT_LIBTOOLIZE([--install]) # This is slightly bogus, since only libtool.m4 was required in aclocal.m4 # with libtool-1.5x... -test -f aclocal.m4 \ -|| cat $macrodir/libtool.m4 $macrodir/ltoptions.m4 \ - $macrodir/ltsugar.m4 $macrodir/ltversion.m4 aclocal.m4 \ -|| exit 1 - -LT_AT_AUTOCONF([--force]) -LT_AT_CONFIGURE -LT_AT_MAKE +AT_CHECK([test -f aclocal.m4 || + cat $macrodir/libtool.m4 $macrodir/ltoptions.m4 \ + $macrodir/ltsugar.m4 $macrodir/ltversion.m4 aclocal.m4]) + +LT_AT_BOOTSTRAP([ignore], [ignore], [ignore], [ignore], [--force]) LT_AT_EXEC_CHECK([./old], 0, [Hello, World!]) @@ -133,11 +130,8 @@ [EMAIL PROTECTED]@: [EMAIL PROTECTED]@ $(LTCOMPILE) -c -o $@ $ ]]) -LT_AT_LIBTOOLIZE([--ltdl --install]) -LT_AT_ACLOCAL([-I libltdl/m4]) -LT_AT_AUTOCONF([--force]) -LT_AT_CONFIGURE -LT_AT_MAKE +LT_AT_BOOTSTRAP([--ltdl --install], [-I libltdl/m4], [ignore], [ignore], + [--force]) LT_AT_EXEC_CHECK([./ltdldemo], 0, [ignore]) Index: libtool--devo--1.0/tests/subproject.at === --- libtool--devo--1.0.orig/tests/subproject.at +++ libtool--devo--1.0/tests/subproject.at @@ -52,13 +52,7 @@ AT_SETUP([compiling softlinked libltdl]) _LTDL_SETUP
FYI: simplify tests [300]
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Applied to HEAD. * looking for [EMAIL PROTECTED]/libtool--devo--1.0--patch-369 to compare with * comparing to [EMAIL PROTECTED]/libtool--devo--1.0--patch-369 M tests/old-m4-iface.at M ChangeLog M tests/nonrecursive.at M tests/am-subdir.at M tests/testsuite.at M tests/subproject.at * modified files Index: Changelog from Gary V. Vaughan [EMAIL PROTECTED] * tests/testsuite.at (LT_AT_BOOTSTRAP): Allow passing arguments to configure. * tests/old-m4-iface.at, tests/subproject.at: Use LT_AT_BOOTSTRAP. --- orig/tests/am-subdir.at +++ mod/tests/am-subdir.at @@ -31,6 +31,7 @@ [[AC_INIT([subdir-demo], ]]AT_PACKAGE_VERSION[[, ]]AT_PACKAGE_BUGREPORT[[) AM_INIT_AUTOMAKE([subdir-objects foreign]) LT_INIT([win32-dll]) +AC_PROG_CC AM_PROG_CC_C_O AC_CONFIG_FILES([Makefile]) AC_OUTPUT @@ -73,8 +74,8 @@ ** This is libsub ** ]]) -LT_AT_BOOTSTRAP -LT_AT_MAKE +LT_AT_BOOTSTRAP([--copy], [], [ignore], [--add-missing]) + LT_AT_EXEC_CHECK([subdir/subdemo], 0, expout) AT_CLEANUP @@ -91,6 +92,7 @@ AT_DATA([[configure.ac]], [[AC_INIT([subdir-demo], ]]AT_PACKAGE_VERSION[[, ]]AT_PACKAGE_BUGREPORT[[) AM_INIT_AUTOMAKE([subdir-objects foreign]) +AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CXX AC_PROG_CXXCPP @@ -148,8 +150,8 @@ int libsub::sub (void) { return 27; } ]]) -LT_AT_BOOTSTRAP -LT_AT_MAKE +LT_AT_BOOTSTRAP([--copy], [], [ignore], [--add-missing]) + LT_AT_EXEC_CHECK([subdir/subdemo], 0) AT_CLEANUP --- orig/tests/nonrecursive.at +++ mod/tests/nonrecursive.at @@ -76,13 +76,7 @@ cp libltdl/$file $file done -LT_AT_ACLOCAL([-I libltdl/m4]) -LT_AT_AUTOHEADER -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE -LT_AT_MAKE +LT_AT_BOOTSTRAP([ignore], [-I libltdl/m4], [ignore], [--add-missing --copy]) AT_CHECK([test -f libltdl/libltdlc.la]) @@ -105,13 +99,7 @@ cp libltdl/$file $file done -LT_AT_ACLOCAL([-I libltdl/m4]) -LT_AT_AUTOHEADER -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE -LT_AT_MAKE +LT_AT_BOOTSTRAP([ignore], [-I libltdl/m4], [ignore], [--add-missing --copy]) AT_CHECK([test -f libltdl/libltdlc.la]) @@ -136,13 +124,8 @@ cp libltdl/$file $file done -LT_AT_ACLOCAL([-I libltdl/m4]) -LT_AT_AUTOHEADER -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE([--enable-ltdl-install --prefix=$prefix]) -LT_AT_MAKE([all install]) +LT_AT_BOOTSTRAP([ignore], [-I libltdl/m4], [ignore], [--add-missing --copy], + [], [--enable-ltdl-install --prefix=$prefix], [all install]) AT_CHECK([test -f $prefix/lib/libltdl.la]) AT_CHECK([test -f $prefix/include/ltdl.h]) --- orig/tests/old-m4-iface.at +++ mod/tests/old-m4-iface.at @@ -71,14 +71,11 @@ # This is slightly bogus, since only libtool.m4 was required in aclocal.m4 # with libtool-1.5x... -test -f aclocal.m4 \ -|| cat $macrodir/libtool.m4 $macrodir/ltoptions.m4 \ - $macrodir/ltsugar.m4 $macrodir/ltversion.m4 aclocal.m4 \ -|| exit 1 - -LT_AT_AUTOCONF([--force]) -LT_AT_CONFIGURE -LT_AT_MAKE +AT_CHECK([test -f aclocal.m4 || + cat $macrodir/libtool.m4 $macrodir/ltoptions.m4 \ + $macrodir/ltsugar.m4 $macrodir/ltversion.m4 aclocal.m4]) + +LT_AT_BOOTSTRAP([ignore], [ignore], [ignore], [ignore], [--force]) LT_AT_EXEC_CHECK([./old], 0, [Hello, World!]) @@ -133,11 +130,8 @@ $(LTCOMPILE) -c -o $@ $ ]]) -LT_AT_LIBTOOLIZE([--ltdl --install]) -LT_AT_ACLOCAL([-I libltdl/m4]) -LT_AT_AUTOCONF([--force]) -LT_AT_CONFIGURE -LT_AT_MAKE +LT_AT_BOOTSTRAP([--ltdl --install], [-I libltdl/m4], [ignore], [ignore], + [--force]) LT_AT_EXEC_CHECK([./ltdldemo], 0, [ignore]) --- orig/tests/subproject.at +++ mod/tests/subproject.at @@ -52,13 +52,7 @@ _LTDL_SETUP -LT_AT_LIBTOOLIZE([--ltdl]) -LT_AT_ACLOCAL([-I sub/ltdl/m4]) -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE -LT_AT_MAKE +LT_AT_BOOTSTRAP([--ltdl], [-I sub/ltdl/m4], [ignore], [--add-missing --copy]) AT_CHECK([test -f sub/ltdl/libltdlc.la]) @@ -73,13 +67,8 @@ _LTDL_SETUP -LT_AT_LIBTOOLIZE([--copy --ltdl]) -LT_AT_ACLOCAL([-I sub/ltdl/m4]) -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE -LT_AT_MAKE +LT_AT_BOOTSTRAP([--copy --ltdl], [-I sub/ltdl/m4], [ignore], + [--add-missing --copy]) AT_CHECK([test -f sub/ltdl/libltdlc.la]) @@ -96,13 +85,9 @@ _LTDL_SETUP -LT_AT_LIBTOOLIZE([--copy --ltdl]) -LT_AT_ACLOCAL([-I sub/ltdl/m4]) -LT_AT_AUTOMAKE([--add-missing --copy]) -LT_AT_AUTOCONF - -LT_AT_CONFIGURE([--enable-ltdl-install --prefix=$prefix]) -LT_AT_MAKE([all install])
Re: FYI: (non)recursive mode fixups
Hi Gary, * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 12:29:08PM CET: Ralf Wildenhues wrote: I'll eventually try this, together with (s)editing of Makefile.inc so it can be used nonrecursively with subdir names other than libltdl/. No need... 'tis done. Hmmm, does one of the modes still require libltdl? I thought I'd fixed that already? nonrecursive mode, as far as I can see. If you could fix it: great! I believe it should be rather easy: something like the sed script in toplevel Makefile.am, in the rule for $(srcdir)/libltdl/Makefile.am, only now in libtoolize, and with nonempty replacements. Cheers, Ralf
Re: My patch queue status
Hi Gary, * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 03:15:19PM CET: - patches/300-gary-simplify-tests.diff http://lists.gnu.org/archive/html/libtool-patches/2005-10/msg00157.html reposted for review Reviewed already. :) + patches/301-gary-set-macrodir-correctly-for-installcheck.diff http://lists.gnu.org/archive/html/libtool-patches/2005-10/msg00071.html pre-approved -- awaiting commit of earlier patches No such patch. Neither in the URL you list, nor can I find it in a mail of yours. - patches/306-gary-treat-argz-m4-like-ltdl-m4.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00027.html needs more discussion Yep, will think about it. - patches/307-gary-fix-recursive-ltdl-dist-rules.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00107.html pending review How'd that get in the list archives so quickly? I'll review it soon. + patches/308-gary-am-subdir-autotest-aclocal-fix.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00108.html approved - patches/1-ralf-fix-ltdl-config-dist.diff awaiting Ralf's version Soon, too. :) Cheers, Ralf
Re: My patch queue status
Ralf Wildenhues wrote: Hi Gary, Hallo Ralf! * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 03:15:19PM CET: - patches/300-gary-simplify-tests.diff http://lists.gnu.org/archive/html/libtool-patches/2005-10/msg00157.html reposted for review Reviewed already. :) Applied already! :-p + patches/301-gary-set-macrodir-correctly-for-installcheck.diff http://lists.gnu.org/archive/html/libtool-patches/2005-10/msg00071.html pre-approved -- awaiting commit of earlier patches No such patch. Neither in the URL you list, nor can I find it in a mail of yours. Guess I didn't post the patch, but since you say in the referenced mail: 'If you're bored, you could also fix Makefile.am, testsuite.at to point $macrodir to the installed directory for `installcheck'.' ..that's what I did. I'll post it presently incase you spot any nits. - patches/306-gary-treat-argz-m4-like-ltdl-m4.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00027.html needs more discussion Yep, will think about it. Okay, cool. - patches/307-gary-fix-recursive-ltdl-dist-rules.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00107.html pending review How'd that get in the list archives so quickly? I'll review it soon. My thoughts exactly! Must've hit the list at just the right time... + patches/308-gary-am-subdir-autotest-aclocal-fix.diff http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00108.html approved Committed! - patches/1-ralf-fix-ltdl-config-dist.diff awaiting Ralf's version Soon, too. :) Okay! Cheers, Gary. -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook signature.asc Description: OpenPGP digital signature
301-gary-set-macrodir-correctly-for-installcheck.diff
Okay to commit? Makefile.am |6 -- tests/old-m4-iface.at |4 ++-- tests/testsuite.at|1 - 3 files changed, 6 insertions(+), 5 deletions(-) Index: libtool--devo--1.0/ChangeLog from Gary V. Vaughan [EMAIL PROTECTED] * tests/testsuite.ac (macrodir): Don't set it here... * Makefile.am (BUILDCHECK_ENVIRONMENT, INSTALLCHECK_ENVIRONMENT): ...set it here to pick up files from the right place in context. Index: libtool--devo--1.0/Makefile.am === --- libtool--devo--1.0.orig/Makefile.am +++ libtool--devo--1.0/Makefile.am @@ -389,11 +389,13 @@ TESTS_ENVIRONMENT = MAKE=$(MAKE) CC=$ BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir=$(abs_top_srcdir) \ LIBTOOLIZE=$(abs_top_builddir)/libtoolize \ - LIBTOOL=$(abs_top_builddir)/libtool + LIBTOOL=$(abs_top_builddir)/libtool \ + aclocaldir=$(abs_top_srcdir)/libltdl/m4 INSTALLCHECK_ENVIRONMENT = \ LIBTOOLIZE=$(bindir)/`echo libtoolize | sed '$(program_transform_name)'` \ - LIBTOOL=$(bindir)/`echo libtool | sed '$(program_transform_name)'` + LIBTOOL=$(bindir)/`echo libtool | sed '$(program_transform_name)'` \ + aclocaldir=$(aclocaldir) check-recursive: $(srcdir)/$(TESTSUITE) Index: libtool--devo--1.0/tests/old-m4-iface.at === --- libtool--devo--1.0.orig/tests/old-m4-iface.at +++ libtool--devo--1.0/tests/old-m4-iface.at @@ -72,8 +72,8 @@ LT_AT_LIBTOOLIZE([--install]) # This is slightly bogus, since only libtool.m4 was required in aclocal.m4 # with libtool-1.5x... AT_CHECK([test -f aclocal.m4 || - cat $macrodir/libtool.m4 $macrodir/ltoptions.m4 \ - $macrodir/ltsugar.m4 $macrodir/ltversion.m4 aclocal.m4]) + cat $aclocaldir/libtool.m4 $aclocaldir/ltoptions.m4 \ + $aclocaldir/ltsugar.m4 $aclocaldir/ltversion.m4 aclocal.m4]) LT_AT_BOOTSTRAP([ignore], [ignore], [ignore], [ignore], [--force]) Index: libtool--devo--1.0/tests/testsuite.at === --- libtool--devo--1.0.orig/tests/testsuite.at +++ libtool--devo--1.0/tests/testsuite.at @@ -25,7 +25,6 @@ m4_divert_push([PREPARE_TESTS])dnl : ${AUTOMAKE=automake} : ${AUTORECONF=autoreconf} export ACLOCAL AUTOHEADER AUTOCONF AUTOMAKE AUTORECONF -macrodir=$abs_top_srcdir/libltdl/m4 eval `$LIBTOOL --config | grep ^EGREP=` eval `$LIBTOOL --config | $EGREP '^(host|host_os|host_alias|build|ECHO)='` configure_options= -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook
Re: 301-gary-set-macrodir-correctly-for-installcheck.diff
Hi Gary, * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 04:37:46PM CET: Okay to commit? There's an obvious overlap with http://lists.gnu.org/archive/html/libtool-patches/2005-11/msg00088.html :) I chose tst_aclocaldir over aclocaldir as a name, in order to avoid any possible conflict; since my proposed patch also undoes the `make -e', that might be less of an issue, but better be safe than sorry. How about you s/aclocaldir/tst_/ and commit, and I pick up the rest of my patch then (maybe after review ;) ? Cheers, Ralf Makefile.am |6 -- tests/old-m4-iface.at |4 ++-- tests/testsuite.at|1 - 3 files changed, 6 insertions(+), 5 deletions(-) Index: libtool--devo--1.0/ChangeLog from Gary V. Vaughan [EMAIL PROTECTED] * tests/testsuite.ac (macrodir): Don't set it here... * Makefile.am (BUILDCHECK_ENVIRONMENT, INSTALLCHECK_ENVIRONMENT): ...set it here to pick up files from the right place in context.
FYI: set macrodir correctly for installcheck [301]
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Applied to HEAD. Had to tweak slightly to make test-5 work with installcheck. * looking for [EMAIL PROTECTED]/libtool--devo--1.0--patch-372 to compare with * comparing to [EMAIL PROTECTED]/libtool--devo--1.0--patch-372 M Makefile.am M libtoolize.m4sh M tests/old-m4-iface.at M tests/libtoolize.at M ChangeLog M tests/testsuite.at * modified files Index: Changelog from Gary V. Vaughan [EMAIL PROTECTED] * tests/testsuite.ac (macrodir): Don't set it here... * Makefile.am (BUILDCHECK_ENVIRONMENT, INSTALLCHECK_ENVIRONMENT): ...set it here to pick up files from the right place in context. * tests/libtoolize.at, tests/old-m4-iface.at: Adjust. * libtoolize.m4sh: Take tst_aclocaldir into account when running inside the test harness. 2005-11-10 Gary V. Vaughan [EMAIL PROTECTED] --- orig/Makefile.am +++ mod/Makefile.am @@ -389,11 +389,13 @@ BUILDCHECK_ENVIRONMENT = _lt_pkgdatadir=$(abs_top_srcdir) \ LIBTOOLIZE=$(abs_top_builddir)/libtoolize \ - LIBTOOL=$(abs_top_builddir)/libtool + LIBTOOL=$(abs_top_builddir)/libtool \ + tst_aclocaldir=$(abs_top_srcdir)/libltdl/m4 INSTALLCHECK_ENVIRONMENT = \ LIBTOOLIZE=$(bindir)/`echo libtoolize | sed '$(program_transform_name)'` \ - LIBTOOL=$(bindir)/`echo libtool | sed '$(program_transform_name)'` + LIBTOOL=$(bindir)/`echo libtool | sed '$(program_transform_name)'` \ + tst_aclocaldir=$(aclocaldir) check-recursive: $(srcdir)/$(TESTSUITE) --- orig/libtoolize.m4sh +++ mod/libtoolize.m4sh @@ -1030,6 +1030,7 @@ pkgdatadir=$_lt_pkgdatadir/libltdl aclocaldir=$_lt_pkgdatadir/libltdl/m4 fi + test -n $tst_aclocaldir aclocaldir=$tst_aclocaldir func_nonemptydir_p pkgltdldir func_nonemptydir_p pkgdatadir func_nonemptydir_p aclocaldir --- orig/tests/libtoolize.at +++ mod/tests/libtoolize.at @@ -369,10 +369,10 @@ libtoolize: putting files in AC_CONFIG_AUX_DIR, \`config'. libtoolize: copying file \`config/ltmain.sh' libtoolize: You should add the contents of the following files to \`aclocal.m4': -libtoolize: \`$_lt_pkgdatadir/libltdl/m4/libtool.m4' -libtoolize: \`$_lt_pkgdatadir/libltdl/m4/ltoptions.m4' -libtoolize: \`$_lt_pkgdatadir/libltdl/m4/ltversion.m4' -libtoolize: \`$_lt_pkgdatadir/libltdl/m4/ltsugar.m4' +libtoolize: \`$tst_aclocaldir/libtool.m4' +libtoolize: \`$tst_aclocaldir/ltoptions.m4' +libtoolize: \`$tst_aclocaldir/ltversion.m4' +libtoolize: \`$tst_aclocaldir/ltsugar.m4' EOF] LT_AT_CHECK_LIBTOOLIZE([--copy], 0, expout) --- orig/tests/old-m4-iface.at +++ mod/tests/old-m4-iface.at @@ -72,8 +72,8 @@ # This is slightly bogus, since only libtool.m4 was required in aclocal.m4 # with libtool-1.5x... AT_CHECK([test -f aclocal.m4 || - cat $macrodir/libtool.m4 $macrodir/ltoptions.m4 \ - $macrodir/ltsugar.m4 $macrodir/ltversion.m4 aclocal.m4]) + cat $tst_aclocaldir/libtool.m4 $tst_aclocaldir/ltoptions.m4 \ +$tst_aclocaldir/ltsugar.m4 $tst_aclocaldir/ltversion.m4 aclocal.m4]) LT_AT_BOOTSTRAP([ignore], [ignore], [ignore], [ignore], [--force]) --- orig/tests/testsuite.at +++ mod/tests/testsuite.at @@ -25,7 +25,6 @@ : ${AUTOMAKE=automake} : ${AUTORECONF=autoreconf} export ACLOCAL AUTOHEADER AUTOCONF AUTOMAKE AUTORECONF -macrodir=$abs_top_srcdir/libltdl/m4 eval `$LIBTOOL --config | grep ^EGREP=` eval `$LIBTOOL --config | $EGREP '^(host|host_os|host_alias|build|ECHO)='` configure_options= - -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook _ This patch notification generated by tlaapply version 1.0 http://tkd.kicks-ass.net/arch/[EMAIL PROTECTED]/cvs-utils--tla--1.0 -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (Darwin) iD8DBQFDc4jrFRMICSmD1gYRAvdAAKCc2F9KpXZBFRy4aiA1NyRJh0RaogCfYR3I oMWUs3UHL4yQK5yLUvYXemI= =qKzr -END PGP SIGNATURE-
Re: 301-gary-set-macrodir-correctly-for-installcheck.diff
Ralf Wildenhues wrote: Hi Gary, Hallo Ralf! * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 04:37:46PM CET: Okay to commit? How about you s/aclocaldir/tst_/ and commit, and I pick up the rest of my patch then (maybe after review ;) ? Deal. I'll try to review tomorrow. Cheers, Gary. -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook signature.asc Description: OpenPGP digital signature
FYI: speedup bootstrap
Applied the patch to CVS HEAD. Gary agreed. :)) Cheers, Ralf * Ralf Wildenhues wrote on Sun, Oct 23, 2005 at 02:42:38PM CEST: * libltdl/m4/ltsugar.m4 (lt_join, lt_combine, lt_dict_filter): Rewrite to eliminate tail recursion; use .. (lt_unquote): New trivial helper macro. * libltdl/m4/libtool.m4 (_lt_decl_filter): Document. Index: libltdl/m4/libtool.m4 === RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v retrieving revision 1.27 diff -u -r1.27 libtool.m4 --- libltdl/m4/libtool.m4 13 Oct 2005 13:22:55 - 1.27 +++ libltdl/m4/libtool.m4 23 Oct 2005 09:02:45 - @@ -335,6 +335,10 @@ # - m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# - m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], Index: libltdl/m4/ltsugar.m4 === RCS file: /cvsroot/libtool/libtool/libltdl/m4/ltsugar.m4,v retrieving revision 1.1 diff -u -r1.1 ltsugar.m4 --- libltdl/m4/ltsugar.m4 22 Aug 2005 22:33:35 - 1.1 +++ libltdl/m4/ltsugar.m4 23 Oct 2005 09:02:45 - @@ -23,12 +23,12 @@ [1], [], [2], [[$2]], [m4_ifval([$2], -[m4_ifval([$3], - [[$2][$1][]$0([$1], m4_shiftn(2, $@))], -[m4_if([$#], [3], - [$2], -[$0([$1], [$2], m4_shiftn(3, $@))])])], - [$0([$1], m4_shiftn(2, $@))])])[]dnl +[[$2][]m4_foreach(_lt_Arg, lt_car([m4_shiftn(2, $@)]), +[_$0([$1], _lt_Arg)])], +[$0([$1], m4_shiftn(2, $@))])])[]dnl +]) +m4_define([_lt_join], +[m4_ifval([$2],[$1][$2])[]dnl ]) @@ -43,6 +43,7 @@ [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) @@ -52,14 +53,11 @@ # has the form PREFIXmINFIXSUFFIXn. m4_define([lt_combine], [m4_if([$2], [], [], - [lt_join(m4_quote(m4_default([$1], [[, ]])), - _$0([$1], lt_car($2)[$3], m4_shiftn(3, $@)), - $0([$1], lt_cdr($2), m4_shiftn(2, $@)))])]) -m4_define([_lt_combine], -[m4_if([$3], [], [], - [lt_join(m4_quote(m4_default([$1], [[, ]])), - [$2$3], - $0([$1], [$2], m4_shiftn(3, $@)))])[]dnl + [m4_if([$4], [], [], +[lt_join(m4_quote(m4_default([$1], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_prefix, [$2], +[m4_foreach(_Lt_suffix, lt_car([m4_shiftn(3, $@)]), +[_Lt_prefix[]$3[]_Lt_suffix ])])])])dnl ]) @@ -104,10 +102,10 @@ # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) -# +# -- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), -m4_quote(lt_if_dict_fetch([$1], [$5], [$2], [$3], [$5])), -m4_quote($0([$1], [$2], [$3], [$4], m4_shiftn(5, $@])dnl + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])])[]dnl ])
Re: Nit in func_win32_libid (branch-1.5)
Hi Charles, * Charles Wilson wrote on Thu, Nov 10, 2005 at 04:07:47AM CET: This has been bugging me since we last looked at this piece of code (2005-09-25) and we didn't take the opportunity to fix it then. Should be obvious...also needed in ltmain.m4sh of HEAD. Thank you for the patch. Applied to HEAD and branch-1-5. Cheers, Ralf 2005-11-09 Charles Wilson [EMAIL PROTECTED] * ltmain.in (func_win32_libid): use $SED not sed. -- Chuck Index: ltmain.in === RCS file: /cvsroot/libtool/libtool/Attic/ltmain.in,v retrieving revision 1.334.2.94 diff -u -r1.334.2.94 ltmain.in --- ltmain.in 7 Nov 2005 22:54:24 - 1.334.2.94 +++ ltmain.in 10 Nov 2005 02:54:19 - @@ -157,7 +157,7 @@ if eval $OBJDUMP -f $1 | $SED -e '10q' 2/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' /dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ - sed -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` + $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` case $win32_nmres in import*) win32_libid_type=x86 archive import;; *)win32_libid_type=x86 archive static;;
Re: SCO/bugfix patch 7 of 10: Improve SCO platform support
Hi Kean, * Kean Johnston wrote on Wed, Nov 09, 2005 at 10:26:11AM CET: I believe hardcode_libdir_flag_spec should be set to '${wl}-R,$libdir' in any case. This has little to do with absolute sonames, but with the dependent programs finding the library. So the SCOABSPATH hack is mixing up different issues here. Not at all. If you are using absolute path names you have absolutely no need to have a DT_RUNPATH entry in the executable, and in fact, having one there can change the runtime semantics of the program becuase the search order for libraries will be subtly different D'oh, I read the logic the wrong way round (i.e., I thought you added the -R$libdir only when SCOABSPATH was set, not when it was unset). Sorry for that confusion. (for any shared libraries that do *not* have absolute path names becuase they were constructed before the libtool patch). That has forseeable, albeit unlikely, security implications. Here's why. Suppose, for arguments sake, you had an a.out with a DT_RUNPATH entry pointing to /usr/pgsql/lib. That a.out is has the following DT_NEEDED entries: /usr/lib/libc.so.1 /usr/pgsql/lib/libpq.so.8 libz.so.1 The /usr/pgsql directory is owned by the PostgreSQL db admin, who in BigCorp, isn't root, just a DBA. All that DBA needs to do to get root on that machine is put in a libz.so.1 in /usr/pgsql/lib and wait for root to run a postgres command at voila, they have root access. Without the DT_RUNPATH entry, the RTLD will use the normal LD_LIBRARY_PATH and standard system locations, which we can assume a competant root will protect himself from. Ah, ok. Hmm, this means though that we /may/ need to refine my absolute-soname proposal. - When linking against a library that has an absolute soname, we should not add its path to rpath. This probably requires that the installed library has a .la file present, and the absolute path setting is recorded there, so we can know about this fact. Now what I don't know is: Do we also need to parameterize this question? IOW: if an absolute soname overrides whatever other paths are used for searching, then we wouldn't have to take care of this step. OTOH, if it could not be overridden at all at link time (as opposed to at execution time), that would prevent DESTDIR setups, which would suck. :-/ (I don't know if such a system exists.) With your current SCOABSPATH hack, the information would not be present in the installed .la files, so when you finally upgrade to a working -absolute-soname libtool, you will still have to install everything again, or we'd have to add yet another (really gross, and system-dependent) hack to find out whether the soname of the installed library is absolute. Right? The change of hardcode_libdir_flag_spec depends not on whether your currently compiled library will have absolute soname, but whether your installations of its dependencies had it. Other than above thoughts: your scenario _is_ pretty artificial, don't you think? I mean, if you either don't trust your PostgreSQL db admin, or if you have a root admin that executes postgres commands (or any commands at all, FWIW) without thinking, you have bigger problems than worrying about shared library searching?! I mean, he could just add malicious code right in libpq anyway, no need for any shared library search order games? ;) (But you do have a point anyway: you might want to guard against him inadvertantly installing a different libz there.) Cheers, Ralf
Re: SCO/bugfix patch 7 of 10: Improve SCO platform support
Hi Kean, * Kean Johnston wrote on Wed, Nov 09, 2005 at 10:18:27AM CET: Well, I believe the SCOABSPATH is not only ugly, but also broken (from a libtool perspective): if you have a package which creates two libraries, one depending on the other, your uninstalled library will link against a previous installed version, if that exists. While testing, this is wrong. I agree its ugly but its a necessary evil. All the point you raise about it being generalized are valid, and I will help out as much as I can to make that happen. But its going to take a while for 2.0 to be adopted. Meanwhile, I believe a new release of 1.5 is imminent, and people are likely to upgrade to that, and it will be around for a while. The problem is, as things currently stand, libtool will create shared libraries that expose a severe security flaw. OK. I'll take the SCOABSPATH, but would rather like it a bit differently, if you agree: The way I understand your intentions, it should suffice if you can decide at configure time about the absoluteness of the paths (rather than at link time). So you could do this instead: if test -z $SCOABSPATH; then archive_cmds='bla bla' archive_expsyms_cmds='bla otherbla' else # ... fi which would be at least a lot more readable. Could you or Tim resubmit the patch like this for branch-1-5? Then, when you forward-port to CVS HEAD, leave out the SCOABSPATH part; we shall try to get -allow-absolute-soname working (and can still think about moving the hack forward if that doesn't work out). At the first occurrence of SCOABSPATH, please add a comment that this thingy will not be supported, and that it breaks testing of uninstalled libraries. Would this be ok with you? Cheers, Ralf
Re: SCO/bugfix patch 7 of 10: Improve SCO platform support
On Thu, 10 Nov 2005, Ralf Wildenhues wrote: Could you or Tim resubmit the patch like this for branch-1-5? I'll let Kean work on this one. Then, when you forward-port to CVS HEAD, leave out the SCOABSPATH part; Here is the forward port without the SCOABSPATH bits. And how it looks on my platforms. http://www.multitalents.net/head-status.html -- Tim RiceMultitalents(707) 887-1469 [EMAIL PROTECTED] --- libltdl/m4/libtool.m4.old 2005-11-08 12:11:19.0 -0800 +++ libltdl/m4/libtool.m4 2005-11-10 05:48:07.0 -0800 @@ -2364,13 +2364,6 @@ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}${shared_ext}$major' - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' - shlibpath_var=LD_LIBRARY_PATH - ;; - solaris*) version_type=linux need_lib_prefix=no @@ -2396,7 +2389,7 @@ need_version=yes ;; -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2428,6 +2421,28 @@ fi ;; +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test $with_gnu_ld = yes; then +sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else +sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' +case $host_os in + sco3.2v5*) +sys_lib_search_path_spec=$sys_lib_search_path_spec /lib + ;; +esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux @@ -2849,19 +2864,15 @@ lt_cv_deplibs_check_method=pass_all ;; -sco3.2v5*) - lt_cv_deplibs_check_method=pass_all - ;; - solaris*) lt_cv_deplibs_check_method=pass_all ;; -sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]*) +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' @@ -2882,13 +2893,12 @@ siemens) lt_cv_deplibs_check_method=pass_all ;; + pc) +lt_cv_deplibs_check_method=pass_all +;; esac ;; -sysv4*uw2* | unixware7*) - lt_cv_deplibs_check_method=pass_all - ;; - tpf*) lt_cv_deplibs_check_method=pass_all ;; @@ -3490,15 +3500,6 @@ ;; psos*) ;; - sco*) - case $cc_basename in - CC*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' - ;; - *) - ;; - esac - ;; solaris*) case $cc_basename in CC*) @@ -3530,6 +3531,15 @@ ;; esac ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; tandem*) case $cc_basename in NCC*) @@ -3540,8 +3550,6 @@ ;; esac ;; - unixware*) - ;; vxworks*) ;; *) @@ -3715,11 +3723,6 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; -sco3.2v5*) - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' - _LT_TAGVAR(lt_prog_compiler_static, $1)='-dn' - ;; - solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -3737,7 +3740,7 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; -sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) +sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -3750,6 +3753,12 @@ fi ;; +sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
small change for nonrecursive
include_HEADERS is a generic variable, too, so it should be appended as well. OK to apply to HEAD? Cheers, Ralf * Makefile.am, libltdl/Makefile.inc (INSTALL_LTDL): For nonrecursive mode, add to include_HEADERS as well. * doc/libtool.texi (Invoking libtoolize, Distributing libltdl), tests/nonrecursive.at: Adjusted, and removed TABS from .texi. Index: Makefile.am === RCS file: /cvsroot/libtool/libtool/Makefile.am,v retrieving revision 1.177 diff -u -r1.177 Makefile.am --- Makefile.am 7 Nov 2005 14:16:14 - 1.177 +++ Makefile.am 10 Nov 2005 19:49:36 - @@ -36,6 +36,7 @@ MOSTLYCLEANFILES = DISTCLEANFILES = +include_HEADERS= noinst_LTLIBRARIES = lib_LTLIBRARIES= EXTRA_LTLIBRARIES = @@ -204,6 +205,7 @@ echo 'AM_CPPFLAGS ='; \ echo 'AM_LDFLAGS ='; \ echo 'BUILT_SOURCES ='; \ + echo 'include_HEADERS ='; \ echo 'noinst_LTLIBRARIES ='; \ echo 'lib_LTLIBRARIES ='; \ echo 'EXTRA_LTLIBRARIES ='; \ Index: doc/libtool.texi === RCS file: /cvsroot/libtool/libtool/doc/libtool.texi,v retrieving revision 1.204 diff -u -r1.204 libtool.texi --- doc/libtool.texi7 Nov 2005 14:35:35 - 1.204 +++ doc/libtool.texi10 Nov 2005 19:49:36 - @@ -2259,18 +2259,19 @@ @example ## libltdl/Makefile.inc @r{appends to the following variables} ## @r{so we set them here before including it:} -BUILT_SOURCES = +BUILT_SOURCES = AM_CPPFLAGS= AM_LDFLAGS = +include_HEADERS= noinst_LTLIBRARIES = -lib_LTLIBRARIES = +lib_LTLIBRARIES = EXTRA_LTLIBRARIES = -EXTRA_DIST= +EXTRA_DIST = -CLEANFILES= +CLEANFILES = MOSTLYCLEANFILES = include libltdl/Makefile.inc @@ -2707,7 +2708,7 @@ @example trick$ @kbd{ls /usr/lib/libbfd*} -/usr/lib/libbfd.a /usr/lib/libbfd.so.2.7.0.2 +/usr/lib/libbfd.a /usr/lib/libbfd.so.2.7.0.2 /usr/lib/libbfd.so trick$ @end example @@ -4254,6 +4255,7 @@ CLEANFILES = MOSTLYCLEANFILES = +include_HEADERS = noinst_LTLIBRARIES = lib_LTLIBRARIES = EXTRA_LTLIBRARIES = Index: libltdl/Makefile.inc === RCS file: /cvsroot/libtool/libtool/libltdl/Makefile.inc,v retrieving revision 1.2 diff -u -r1.2 Makefile.inc --- libltdl/Makefile.inc9 Nov 2005 21:38:09 - 1.2 +++ libltdl/Makefile.inc10 Nov 2005 19:49:36 - @@ -39,7 +39,7 @@ ltdlinclude_HEADERS= libltdl/libltdl/lt_system.h \ libltdl/libltdl/lt_error.h \ libltdl/libltdl/lt_dlloader.h -include_HEADERS= libltdl/ltdl.h +include_HEADERS += libltdl/ltdl.h lib_LTLIBRARIES += libltdl/libltdl.la endif Index: tests/nonrecursive.at === RCS file: /cvsroot/libtool/libtool/tests/nonrecursive.at,v retrieving revision 1.2 diff -u -r1.2 nonrecursive.at --- tests/nonrecursive.at 10 Nov 2005 14:57:50 - 1.2 +++ tests/nonrecursive.at 10 Nov 2005 19:49:38 - @@ -43,6 +43,7 @@ AM_CPPFLAGS= AM_LDFLAGS = +include_HEADERS= noinst_LTLIBRARIES = lib_LTLIBRARIES= foo.la EXTRA_LTLIBRARIES =
Re: [patch 1/2] 307-gary-fix-recursive-ltdl-dist-rules.diff
Hi Gary, * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 11:35:49AM CET: Okay to commit? No. The test suite modifies the source. After a testsuite run, libltdl/Makefile.am will contain, for example, 6 lines of the form: | EXTRA_DIST += ltdl.c and quite a bit of other garbage. Your wish is my command -- now \(non\)?recursive modes don't blow up the make dist rule of parent projects. This turned out to be more straight forward that I had expected, so I went ahead and did it myself. It also exposes a bug in the testsuite which I'll address in my next patch. Well, for me, | Recursive Automake Libltdl. | 34: distributing libltdl fails because it wants to distribute configure.ac in one run, and Makefile.inc in another, and | Subproject Libltdl. | 25: distributing libltdl FAILED (subproject.at:109) searches for Makefile.inc as well. I assume all followup failures. Since you do `make distcheck' inside our testsuite now, this patch _has_ to go in after undoing the `make -e'. So it needs to come after my patch, or will fail mysteriously in some environments. :) Further nits below. Also, I wonder why you can't just add a LT_AT_MAKE([distcheck]) at the end of the existing tests. That would save a bunch of time, without really less test coverage? Cheers, Ralf Makefile.am | 10 +- libltdl/Makefile.inc | 41 +++-- libtoolize.m4sh | 13 + tests/nonrecursive.at | 24 tests/recursive.at| 19 +++ tests/subproject.at | 15 +++ 6 files changed, 111 insertions(+), 11 deletions(-) Index: libtool--devo--1.0/ChangeLog from Gary V. Vaughan [EMAIL PROTECTED] * libltdl/Makefile.inc (EXTRA_DIST): Move files that are not installed unconditionally to a client from here... * Makefile.am (EXTRA_DIST): ...to here. * libtoolize.m4sh: Append the paths to installed files to EXTRA_DIST in newly copied Makefile.am. * tests/nonrecursive.at, tests/recursive.at, tests/subproject.at: Add new dist tests to prevent a regression. Index: libtool--devo--1.0/Makefile.am === --- libtool--devo--1.0.orig/Makefile.am +++ libtool--devo--1.0/Makefile.am @@ -214,7 +214,6 @@ $(srcdir)/libltdl/Makefile.am: $(srcdir) $(SED) -n '/^.. DO NOT REMOVE THIS LINE -- /,$$ \ { s,libltdl_,,; s,libltdl/,,; s,: libltdl/,: ,; \ s,\$$(libltdl_,$$(,; p; }' $$in $$out; - chmod a-w $(srcdir)/libltdl/Makefile.am Why do you need this? $(srcdir)/libltdl/Makefile.in: $(srcdir)/libltdl/Makefile.am cd $(srcdir)/libltdl $(AUTOMAKE) Makefile @@ -229,6 +228,15 @@ all-local: $(srcdir)/libltdl/Makefile.in include libltdl/Makefile.inc +EXTRA_DIST += libltdl/Makefile.am \ + libltdl/Makefile.in \ + libltdl/Makefile.inc \ + libltdl/config-h.in \ + libltdl/configure \ + libltdl/configure.ac \ + libltdl/aclocal.m4 \ + libltdl/m4/lt~obsolete.m4 + if ! LTDL_SUBDIR_LIBOBJS ## workaround for Autoconf 2.59, Automake 1.9.6: ## we include these files twice, because of missing LIBOBJDIR support. Index: libtool--devo--1.0/libltdl/Makefile.inc === --- libtool--devo--1.0.orig/libltdl/Makefile.inc +++ libtool--devo--1.0/libltdl/Makefile.inc @@ -1,4 +1,4 @@ -## Makefile.am -- Process this file with automake to produce Makefile.in +## Makefile.inc -- Process this file with automake to produce Makefile.in ## ## Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. ## @@ -117,15 +117,7 @@ CLEANFILES += libltdl/libltdl.la CLEANFILES += $(LIBOBJS) $(LTLIBOBJS) EXTRA_DIST += libltdl/COPYING.LIB \ - libltdl/Makefile.am \ - libltdl/Makefile.in \ - libltdl/Makefile.inc \ - libltdl/README \ - libltdl/config-h.in \ - libltdl/configure \ - libltdl/configure.ac \ - libltdl/aclocal.m4 \ - libltdl/m4/lt~obsolete.m4 + libltdl/README ## --- ## ## Gnulib Makefile.am snippets ## Index: libtool--devo--1.0/libtoolize.m4sh === --- libtool--devo--1.0.orig/libtoolize.m4sh +++ libtool--devo--1.0/libtoolize.m4sh @@ -1066,6 +1066,19 @@ func_nonemptydir_p () func_copy_some_files $pkgltdl_files $pkgltdldir/libltdl $ltdldir +# Fixup the EXTRA_DIST contents in Makefile.inc if necessary +my_makefile=$ltdldir/Makefile.am +test -f $ltdldir/Makefile.inc
Re: FYI: set macrodir correctly for installcheck [301]
Ralf Wildenhues wrote: Hi Gary, Hallo Ralf! * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 06:52:45PM CET: Applied to HEAD. Had to tweak slightly to make test-5 work with installcheck. Why? That would be a bug. The whole point of tst_aclocaldir was that it does _not_ appear in libtoolize. And in fact, over here, this change: --- orig/libtoolize.m4sh +++ mod/libtoolize.m4sh @@ -1030,6 +1030,7 @@ pkgdatadir=$_lt_pkgdatadir/libltdl aclocaldir=$_lt_pkgdatadir/libltdl/m4 fi + test -n $tst_aclocaldir aclocaldir=$tst_aclocaldir func_nonemptydir_p pkgltdldir func_nonemptydir_p pkgdatadir func_nonemptydir_p aclocaldir is not needed at all. Huh? test 5 can't possibly pass for installcheck without it, because there is no setting for _lt_pkgdatadir in INSTALLCHECK_ENVIRONMENT... I'm all for a cleaner fix than my tweak if you have it though! :-) Cheers, Gary. -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook signature.asc Description: OpenPGP digital signature
Re: FYI: set macrodir correctly for installcheck [301]
Hi Gary, * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 09:06:40PM CET: Ralf Wildenhues wrote: * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 06:52:45PM CET: Had to tweak slightly to make test-5 work with installcheck. Why? That would be a bug. The whole point of tst_aclocaldir was that it does _not_ appear in libtoolize. And in fact, over here, this change: + test -n $tst_aclocaldir aclocaldir=$tst_aclocaldir is not needed at all. Huh? test 5 can't possibly pass for installcheck without it, because there is no setting for _lt_pkgdatadir in INSTALLCHECK_ENVIRONMENT... I'm all for a cleaner fix than my tweak if you have it though! :-) Did you actually see this failure? If yes, could you please post the corresponding testsuite.log failure output? For installcheck, the normal pkgdatadir setting in libtoolize should just suffice: the files will be installed there. And, in fact, both `installcheck' after `make install' as well as `distcheck' pass here without above line. Cheers, Ralf
Re: [patch 1/2] 307-gary-fix-recursive-ltdl-dist-rules.diff
Argh! I seem to have posted an in development version of this patch somehow, sorry. Here is the real patch. If you had weird non-repeatable results in tests, and corrupted libltdl/Makefile.am before, this version doesn't have that problem. Okay to commit this version? Cheers, Gary. Makefile.am | 10 +++- libltdl/Makefile.inc | 10 libtoolize.m4sh | 61 +- tests/libtoolize.at |2 - tests/nonrecursive.at | 30 tests/recursive.at| 25 tests/subproject.at | 21 + 7 files changed, 128 insertions(+), 31 deletions(-) Index: libtool--devo--1.0/ChangeLog from Gary V. Vaughan [EMAIL PROTECTED] * libltdl/Makefile.inc (EXTRA_DIST): Move files that are not installed unconditionally to a client from here... * Makefile.am (EXTRA_DIST): ...to here. * libtoolize.m4sh: Append the paths to installed files to EXTRA_DIST in newly copied Makefile.am. (func_copy_cb): Add glob_nolink argument for files that cannot be softlinked during ltdl installation. Changed all callers. * tests/libtoolize.at: Adjust output matching for glob_nolink files. * tests/nonrecursive.at, tests/recursive.at, tests/subproject.at: Add new dist tests to prevent a regression. Index: libtool--devo--1.0/Makefile.am === --- libtool--devo--1.0.orig/Makefile.am +++ libtool--devo--1.0/Makefile.am @@ -214,7 +214,6 @@ $(srcdir)/libltdl/Makefile.am: $(srcdir) $(SED) -n '/^.. DO NOT REMOVE THIS LINE -- /,$$ \ { s,libltdl_,,; s,libltdl/,,; s,: libltdl/,: ,; \ s,\$$(libltdl_,$$(,; p; }' $$in $$out; - chmod a-w $(srcdir)/libltdl/Makefile.am $(srcdir)/libltdl/Makefile.in: $(srcdir)/libltdl/Makefile.am cd $(srcdir)/libltdl $(AUTOMAKE) Makefile @@ -229,6 +228,15 @@ all-local: $(srcdir)/libltdl/Makefile.in include libltdl/Makefile.inc +EXTRA_DIST +=libltdl/Makefile.am \ + libltdl/Makefile.in \ + libltdl/Makefile.inc \ + libltdl/config-h.in \ + libltdl/configure \ + libltdl/configure.ac \ + libltdl/aclocal.m4 \ + libltdl/m4/lt~obsolete.m4 + if ! LTDL_SUBDIR_LIBOBJS ## workaround for Autoconf 2.59, Automake 1.9.6: ## we include these files twice, because of missing LIBOBJDIR support. Index: libtool--devo--1.0/libltdl/Makefile.inc === --- libtool--devo--1.0.orig/libltdl/Makefile.inc +++ libtool--devo--1.0/libltdl/Makefile.inc @@ -117,15 +117,7 @@ CLEANFILES+= libltdl/libltdl.la CLEANFILES+= $(LIBOBJS) $(LTLIBOBJS) EXTRA_DIST+= libltdl/COPYING.LIB \ - libltdl/Makefile.am \ - libltdl/Makefile.in \ - libltdl/Makefile.inc \ - libltdl/README \ - libltdl/config-h.in \ - libltdl/configure \ - libltdl/configure.ac \ - libltdl/aclocal.m4 \ - libltdl/m4/lt~obsolete.m4 + libltdl/README ## --- ## ## Gnulib Makefile.am snippets ## Index: libtool--devo--1.0/libtoolize.m4sh === --- libtool--devo--1.0.orig/libtoolize.m4sh +++ libtool--devo--1.0/libtoolize.m4sh @@ -192,7 +192,7 @@ configure_ac=configure.in } -# func_copy srcfile destfile +# func_copy srcfile destfile [glob_nolink] # A wrapper for func_copy_cb that accepts arguments in the same order # as the cp(1) shell command. func_copy () @@ -217,7 +217,8 @@ func_copy () func_copy_cb $my_f1 \ `$ECHO X$1 | $Xsed -e $dirname` \ -`$ECHO X$2 | $Xsed -e $dirname` +`$ECHO X$2 | $Xsed -e $dirname` \ + $3 fi @@ -225,16 +226,18 @@ func_copy () } -# func_copy_cb filename srcdir destdir +# func_copy_cb filename srcdir destdir [glob_nolink] # If option `--copy' was specified, or soft-linking SRCFILE to DESTFILE fails, # then try to copy SRCFILE to DESTFILE (without changing the timestamp if -# possible). +# possible). If FILENAME matches GLOB_NOLINK, it will never be softlinked. func_copy_cb () { $opt_debug my_file=$1 my_srcdir=$2 my_destdir=$3 +my_glob_nolink=$4 +my_opt_link=$opt_link copy_return_status=1 # Libtool is probably misinstalled if this happens: @@ -248,7 +251,11 @@ func_copy_cb () func_mkdir_p `$ECHO X$my_destdir/$my_file | $Xsed -e $dirname` $RM $my_destdir/$my_file -if $opt_link $LN_S $my_srcdir/$my_file $my_destdir/$my_file; then +if test -n $my_glob_nolink; then + eval
Re: [patch 1/2] 307-gary-fix-recursive-ltdl-dist-rules.diff
Ralf Wildenhues wrote: Hi Gary, Hallo Ralf, Thanks for the review! * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 11:35:49AM CET: Okay to commit? No. The test suite modifies the source. After a testsuite run, libltdl/Makefile.am will contain, for example, 6 lines of the form: | EXTRA_DIST += ltdl.c and quite a bit of other garbage. Argh... the only fiddly bit of the patch was adding the glob_nolink parameters so that I could make sure that Makefile.{am,inc} are always copied to prevent the EXTRA_DIST goo from following the link back to the source file. It works for me, can you debug it on your machine? Or send me a trace please? Your wish is my command -- now \(non\)?recursive modes don't blow up the make dist rule of parent projects. This turned out to be more straight forward that I had expected, so I went ahead and did it myself. It also exposes a bug in the testsuite which I'll address in my next patch. Well, for me, | Recursive Automake Libltdl. | 34: distributing libltdl fails because it wants to distribute configure.ac in one run, and Makefile.inc in another, and That's because your source Makefile.am is corrupted. | Subproject Libltdl. | 25: distributing libltdl FAILED (subproject.at:109) searches for Makefile.inc as well. I assume all followup failures. Likewise. Since you do `make distcheck' inside our testsuite now, this patch _has_ to go in after undoing the `make -e'. So it needs to come after my patch, or will fail mysteriously in some environments. :) Oh yes, good point. Okay, NP. Further nits below. Also, I wonder why you can't just add a LT_AT_MAKE([distcheck]) Force of habit. Yes, s/all distcheck/distcheck/g is better. Thanks. at the end of the existing tests. That would save a bunch of time, without really less test coverage? ACK. Index: libtool--devo--1.0/ChangeLog from Gary V. Vaughan [EMAIL PROTECTED] * libltdl/Makefile.inc (EXTRA_DIST): Move files that are not installed unconditionally to a client from here... * Makefile.am (EXTRA_DIST): ...to here. * libtoolize.m4sh: Append the paths to installed files to EXTRA_DIST in newly copied Makefile.am. * tests/nonrecursive.at, tests/recursive.at, tests/subproject.at: Add new dist tests to prevent a regression. Index: libtool--devo--1.0/Makefile.am === --- libtool--devo--1.0.orig/Makefile.am +++ libtool--devo--1.0/Makefile.am @@ -214,7 +214,6 @@ $(srcdir)/libltdl/Makefile.am: $(srcdir) $(SED) -n '/^.. DO NOT REMOVE THIS LINE -- /,$$ \ { s,libltdl_,,; s,libltdl/,,; s,: libltdl/,: ,; \ s,\$$(libltdl_,$$(,; p; }' $$in $$out; - chmod a-w $(srcdir)/libltdl/Makefile.am Why do you need this? We use tar to install Makefile.am into the user's tree so permission bit are propogated into the user's tree, Without the writable bit the EXTRA_DIST stanzas can't be concatenated by libtoolize... I should note that in the ChangeLog, sorry. Index: libtool--devo--1.0/libtoolize.m4sh === --- libtool--devo--1.0.orig/libtoolize.m4sh +++ libtool--devo--1.0/libtoolize.m4sh @@ -1066,6 +1066,19 @@ func_nonemptydir_p () func_copy_some_files $pkgltdl_files $pkgltdldir/libltdl $ltdldir +# Fixup the EXTRA_DIST contents in Makefile.inc if necessary +my_makefile=$ltdldir/Makefile.am +test -f $ltdldir/Makefile.inc my_makefile=$ltdldir/Makefile.inc +set -x Remove your debugging traces! ;) (They make tests fail, too) Ah boo... brown paper bag please! +my_save_IFS=$IFS +IFS=: +for file in $pkgltdl_files; do + IFS=$my_save_IFS + test nonrecursive = $ltdl_mode file=$ltdldir/$file + echo EXTRA_DIST += $file $my_makefile +done +IFS=$my_save_IFS +set +x Ditto. Make that two... Cheers, Gary. -- Gary V. Vaughan ())_. [EMAIL PROTECTED],gnu.org} Research Scientist ( '/ http://tkd.kicks-ass.net GNU Hacker / )= http://www.gnu.org/software/libtool Technical Author `(_~)_ http://sources.redhat.com/autobook signature.asc Description: OpenPGP digital signature
Re: [patch 1/2] 307-gary-fix-recursive-ltdl-dist-rules.diff
Hi Gary, * Gary V. Vaughan wrote on Thu, Nov 10, 2005 at 09:39:27PM CET: Argh! I seem to have posted an in development version of this patch somehow, sorry. Here is the real patch. If you had weird non-repeatable results in tests, and corrupted libltdl/Makefile.am before, this version doesn't have that problem. Good. Okay to commit this version? No. With this, in any of the three subproject/(non)recursive modes, one of Makefile.{am,inc} will end up with a newer time stamp (and Makefile.in won't match Makefile.am's contents). This breaks your long work on making libltdl/subproject installable and usable without Autoconf or Automake. Even more, aclocal.m4 won't be out of date, so aclocal won't be run, but a subsequent automake will fail if its version doesn't match exactly the one you used to build Libtool. Our installed Makefile.{am,in} should look exactly like they end up for subproject, and not be modified for them, I believe. The other modes do not care about rerunning autotools: for them it is required anyway. Cheers, Ralf Index: libtool--devo--1.0/ChangeLog from Gary V. Vaughan [EMAIL PROTECTED] * libltdl/Makefile.inc (EXTRA_DIST): Move files that are not installed unconditionally to a client from here... * Makefile.am (EXTRA_DIST): ...to here. * libtoolize.m4sh: Append the paths to installed files to EXTRA_DIST in newly copied Makefile.am. (func_copy_cb): Add glob_nolink argument for files that cannot be softlinked during ltdl installation. Changed all callers. * tests/libtoolize.at: Adjust output matching for glob_nolink files. * tests/nonrecursive.at, tests/recursive.at, tests/subproject.at: Add new dist tests to prevent a regression.
Re: SCO/bugfix patch 7 of 10: Improve SCO platform support
The way I understand your intentions, it should suffice if you can decide at configure time about the absoluteness of the paths (rather than at link time). So you could do this instead: if test -z $SCOABSPATH; then archive_cmds='bla bla' archive_expsyms_cmds='bla otherbla' else # ... fi which would be at least a lot more readable. Sure, I can do that, I'm open for compromise :) The only reason I did it the way it currently stands is it allows me to do the following: ./configure make install make clean SCOABSPATH=1 make install DESTDIR=/whatever with no intervening re-running of configure in between. In fact the SCOABSPATH thing as it currently stands used to look a great deal neater. Perhaps this would be more acceptable (I suspect it might), so that I can preserve the above behaviour (line split by mailer, not in script): archive_cmds='$CC -shared ${wl},-h${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' It has the exact same effect, but looks a *great* deal cleaner. In fact, before I submitted the patch thats how it looked. I changed it to the current mechanism becuase I thought it made it more obvious what was happening. But I can see your point about it being ugly as sin. If even that is too ugly for you, then I guess I can live with the pain of having to re-run configure to enable the absolute path stuff, but I'm really hoping not :) about moving the hack forward if that doesn't work out). At the first occurrence of SCOABSPATH, please add a comment that this thingy will not be supported, and that it breaks testing of uninstalled libraries. I can certainly do that. Is there a suitable place in the doc for platform specific quirks that I can document it more eloquently and obviously too? Kean
Re: SCO/bugfix patch 7 of 10: Improve SCO platform support
Hi Kean, * Kean Johnston wrote on Thu, Nov 10, 2005 at 10:35:09PM CET: The way I understand your intentions, it should suffice if you can decide at configure time about the absoluteness of the paths (rather than at link time). So you could do this instead: if test -z $SCOABSPATH; then which would be at least a lot more readable. Sure, I can do that, I'm open for compromise :) The only reason I did it the way it currently stands is it allows me to do the following: ./configure make install make clean SCOABSPATH=1 make install DESTDIR=/whatever I know. You could even `find . -name \*.la | xargs rm' to avoid the `make clean'. with no intervening re-running of configure in between. In fact the SCOABSPATH thing as it currently stands used to look a great deal neater. Perhaps this would be more acceptable (I suspect it might), so that I can preserve the above behaviour (line split by mailer, not in script): archive_cmds='$CC -shared ${wl},-h${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' It has the exact same effect, but looks a *great* deal cleaner. In fact, before I submitted the patch thats how it looked. I changed it to the current mechanism becuase I thought it made it more obvious what was happening. But I can see your point about it being ugly as sin. Well, this is better than your previous version. Still, innocent users happening to compile a package see the SCOABSPATH, and this is what bugs me (yes, I know #users = 2). If even that is too ugly for you, then I guess I can live with the pain of having to re-run configure to enable the absolute path stuff, but I'm really hoping not :) Since this is really for a dying libtool branch, what the heck, repost as above. At least it would match your usage pattern with -absolute-soname, too. about moving the hack forward if that doesn't work out). At the first occurrence of SCOABSPATH, please add a comment that this thingy will not be supported, and that it breaks testing of uninstalled libraries. I can certainly do that. Is there a suitable place in the doc for platform specific quirks that I can document it more eloquently and obviously too? I had hoped doc/notes.texi (CVS HEAD) to be for platform specific questions, but: I definitely don't want to see it in there. I don't want it prominently documented; just people that find it anyway should also be able to find the comment do not rely on this. Cheers, Ralf
On HP-UX 11.x, link with cc, not ld (sync with HEAD)
On HEAD, we link with cc rather than ld on HP-UX 11.x. Backport to 1.5. Dunno why I didn't do this long time ago when I submitted the cc linking patches for Solaris, IRIX, etc. 2005-11-10 Albert Chin-A-Young [EMAIL PROTECTED] * libtool.m4 (AC_LIBTOOL_PROG_LD_SHLIBS) [ hpux10 ]: Link with cc rather than ld (backport from HEAD). -- albert chin ([EMAIL PROTECTED]) Index: libtool.m4 === RCS file: /cvsroot/libtool/libtool/Attic/libtool.m4,v retrieving revision 1.314.2.128 diff -u -3 -p -r1.314.2.128 libtool.m4 --- libtool.m4 10 Nov 2005 18:29:38 - 1.314.2.128 +++ libtool.m4 11 Nov 2005 03:44:03 - @@ -5792,7 +5792,26 @@ EOF _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; -hpux10* | hpux11*) +hpux10*) + if test $GCC = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + +hpux11*) if test $GCC = yes -a $with_gnu_ld = no; then case $host_cpu in hppa*64*|ia64*) @@ -5805,10 +5824,10 @@ EOF else case $host_cpu in hppa*64*|ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi