Re: Small patch for the QNX platform
Hello, Ralf! This patch adds qnx as platform which supports library version information. RW As far as I can see, this patch changes the versioning scheme used on RW QNX. This means, that potentially all libraries created with libtool RW after this change are incompatible with all of those created before. No, it is not changes versioning scheme, it adds support for the versioning under QNX. I did not found any incompatibilities with already compiled and installed libraries. RW I see you supplied the last QNX-related change to Libtool, too, in RW 2004. Can you provide information about why this change is needed now? RW Did QNX change their versioning, or why is this necessary now? The main problem why I added support for QNX is libdrm, which I porting to QNX right now, libdrm uses -version-number 2:4:0, but libtool fails on the following check: # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]);; *) func_error CURRENT \`$current' must be a nonnegative integer func_fatal_error \`$vinfo' is not valid version information ;; esacbecause $current is empty at this point. I will mark an error and mycomments to the script below with sign. case $vinfo_number in yes) if we pass -version-number option to libtool, it sets vinfo_number toyes. number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|freebsd-elf|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; since QNX is not listed platform and $version_type contains qnx, thevariables $current, $age and $revision are not set and empty at this point.So this cause a problem with $current check for the non-negative number andnon-digit characters. esac ;; no) current=$1 revision=$2 age=$3 ;; esac RW Also, we would be extremely interested in seeing testsuite (make -k RW check) output of Libtool on this system.For the first bunch of tests (103) there are 3 was failed, but they arefailed because of using gcc command line instead of QNX's QCC wrapper aroundGCC. QNX uses Dinkumware C++/STL library instead of using GNU stdc++, butg++ searching for the libstdc++ instead of dinkumware libcpp library. Thisproblem could be easily solved by setting CC=qcc and CXX=QCC. But it was toolate to specify qcc instead of gcc, because I'm using not fast computer forQNX and almost of half tests has been complete when found this error,running all these tests took a lot of time. But if you need, I could re-runall test suite with GCC wrapper for C++ without any problem :)Log attached. Looks like there are few problems, which are not related toC++. I will check them.With best regards, Mike Gorchak. E-mail: m...@malva.ua check.log Description: Binary data
Re: Small patch for the QNX platform
Something goes wrong with 0x0d/0x0a in previous letter. Sorry. Hello, Ralf! This patch adds qnx as platform which supports library version information. RW As far as I can see, this patch changes the versioning scheme used on QNX. This means, that potentially all libraries created with libtool after this change are incompatible with all of those created before. No, it is not changes versioning scheme, it adds support for the versioning under QNX. I did not found any incompatibilities with already compiled and installed libraries. RW I see you supplied the last QNX-related change to Libtool, too, in 2004. Can you provide information about why this change is needed now? Did QNX change their versioning, or why is this necessary now? The main problem why I added support for QNX is libdrm, which I porting to QNX right now, libdrm uses -version-number 2:4:0, but libtool fails on the following check: # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]);; *) func_error CURRENT \`$current' must be a nonnegative integer func_fatal_error \`$vinfo' is not valid version information ;; esacbecause $current is empty at this point. I will mark an error and mycomments to the script below with sign. case $vinfo_number in yes) if we pass -version-number option to libtool, it sets vinfo_number toyes. number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|freebsd-elf|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; since QNX is not listed platform and $version_type contains qnx, the variables $current, $age and $revision are not set and empty at this point. So this cause a problem with $current check for the non-negative number and non-digit characters. esac ;; no) current=$1 revision=$2 age=$3 ;; esacRW Also, we would be extremely interested in seeing testsuite (make -kRW check) output of Libtool on this system.For the first bunch of tests (103) there are 3 was failed, but they arefailed because of using gcc command line instead of QNX's QCC wrapper aroundGCC. QNX uses Dinkumware C++/STL library instead of using GNU stdc++, butg++ searching for the libstdc++ instead of dinkumware libcpp library. Thisproblem could be easily solved by setting CC=qcc and CXX=QCC. But it was toolate to specify qcc instead of gcc, because I'm using not fast computer forQNX development and almost of half tests has been completed when found thiserror, running all these tests took a lot of time. But if you need, I couldre-run all test suite with QCC wrapper for C++ without any problem :) Logattached. Looks like there are few problems, which are not related to C++. Iwill check them.With best regards, Mike Gorchak. E-mail: m...@malva.ua
Re: [SCM] GNU Libtool branch, pr-msvc-support, updated. v2.2.6-83-g8c17887
Den 2009-01-14 09:13 skrev Peter Rosin: The branch, pr-msvc-support has been updated via 8c17887ee34e73a2aeb127b94f5b76f45dc34017 (commit) via 2817364bb6efd20192c46edecfe085cbb288 (commit) via 06cfce005204bb8ca212aadab38b38c0202ea04e (commit) via fbc144008bd66848111fb8ef2d7293b33957ea1a (commit) from 951d28316f365a0e17ae44dc076877da620f3ce8 (commit) Ouch! This git n00b did not expect the commits on other branches to get pushed, I'll be more careful in the future... Pushing ChangeLog entries for those four patches as attached. Cheers, Peter diff --git a/ChangeLog b/ChangeLog index 896a250..2f0d084 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,48 @@ * tests/localization.at: Use it. Update copyright year. Fixes the test on MSYS/MSVC. +2009-01-13 Peter Rosin p...@lysator.liu.se + + * libltdl/config/ltmain.m4sh (func_mode_ar): New function + implementing new libtool --mode=ar. + (func_mode_help): Describe new ar mode. + * libltdl/m4/libtool.m4 (_LT_PROG_AR): Don't AC_SUBST AR_SEP + and AR_TFLAGS since they are no longer needed outside the + libtool script. Instead AC_SUBST LT_AR and LT_ARFLAGS and set + them so that libtool --mode=ar is invoked if the archiver is + strange. + * Makefile.am: Don't export AR_SEP to the testsuite, instead + export LT_AR and LT_ARFLAGS. + * tests/archive-in-archive.at: Use $LT_AR t instead of + $AR $AR_TFLAGS$AR_SEP. + * doc/libtool.texi: Document new mode. + +2009-01-13 Peter Rosin p...@lysator.liu.se + + * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) + [ cygwin, mingw, cegcc ] cl*: @OUTPUT@ may or may not + include a trailing $EXEEXT. If mt fails, make sure libtool + exits with an error. + (_LT_LANG_CXX_CONFIG): Likewise. + * tests/exeext.at: New. Make sure linking with both -o prog + and -o prog$EXEEXT works. + * Makefile.am: Add previous test to testsuite. + +2009-01-13 Peter Rosin p...@lysator.liu.se + + * doc/libtool.texi (libtool script contents): Document + new variables introduced by the MSVC port. + +2009-01-13 Peter Rosin p...@lysator.liu.se + + * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS) + [cygwin, mingw, pw32, cegcc] cl*: Indicate that reloadable + objects does not work. + * tests/duplicate_conv.at: Skip last test if reloadable + objects does not work. + * doc/libtool.texi (libtool script contents): Document how to + indicate that reloadable objects do not work. + 2008-08-18 Peter Rosin p...@lysator.liu.se * .gitignore: Ignore *.obj files for MSVC (and w32).
Re: [PATCH] Add tests for cwrapper with -std=c89 and -std=c99
Ralf Wildenhues wrote: Please go ahead and push with these changes. Pushed. -- Chuck
Re: lt_dlopenext() sets error on succesful loading the library
On Fri, Jan 02, 2009 at 12:10:38PM +0100, Kurt Roeckx wrote: Hi, There was an error report on the Debian bug tracking system that lt_dlopenext() sets an error on succesful loading the library if no extention was given. See: http://bugs.debian.org/510006 Here are the patches I've made for both the 1.5 and 2.2 branch. PS: Can somebody fix the example in autobook? Can someone take a look at this? Kurt
LT_AT_NOINST_EXEC_CHECK expands badly
Hi! I looked into a failure of the MSYS/MSVC branch and found that this line from tests/need-lib-prefix.at expands to the wrong thing: LT_AT_NOINST_EXEC_CHECK([./main], [-dlopen foo1.la -dlopen libfoo2.la], [], [expout], []) Among other things, I find this line in the generated tests/testsuite file: $as_echo $at_srcdir/need_lib_prefix.at:170: if \$LIBTOOL --mode=execute -dlopen foo1.la -dlopen libfoo2.la \\$lt_exe\ ; then :; else lt_status=\$?; test \$lt_status != -dlopen foo1.la -dlopen libfoo2.la test \X\$host\ != \X\$build\ test -x \\$lt_exe\ exit 77; exit \$lt_status; fi The interesting part is: test \$lt_status != -dlopen foo1.la -dlopen libfoo2.la That part is coming from (in tests/testsuite.at): [ m4_ifval([$2], [test $lt_status != $2 ])]dnl I'm taking a wild guess here, but shouldn't that be $3 instead? Cheers, Peter 2009-01-24 Peter Rosin p...@lysator.liu.se Expand exit status test in LT_AT_NOINST_EXEC_CHECK correctly * tests/testsuite.at (LT_AT_NOINST_EXEC_CHECK): STATUS is argument $3, not $2. diff --git a/tests/testsuite.at b/tests/testsuite.at index 56ca3a2..24e8174 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -248,7 +248,7 @@ AT_CHECK([if $lt_exe $5; then :; else lt_status=$?; ]dnl m4_define([LT_AT_NOINST_EXEC_CHECK], [lt_exe=$1; if test -f $1$EXEEXT; then lt_exe=$lt_exe$EXEEXT; fi AT_CHECK([if $LIBTOOL --mode=execute $2 $lt_exe $6; then :; else lt_status=$?; ]dnl -[ m4_ifval([$2], [test $lt_status != $2 ])]dnl +[ m4_ifval([$3], [test $lt_status != $3 ])]dnl [ test X$host != X$build test -x $lt_exe exit 77; ]dnl [ exit $lt_status; fi],[$3],[$4],[$5]) ])
Re: testsuite performance
Charles Wilson wrote: Ralf Wildenhues wrote: * Charles Wilson wrote on Wed, Jan 21, 2009 at 08:47:42PM CET: [...] EVERY separate patchset requires an independent full testsuite run. Until recently, that was 5 hours of sitting in front of my computer waiting for popups, while that computer was completely useless for anything else (100% cpu). [SNIP] Can you work on a Linux system with Wine, for at least those changes for which the difference shouldn't matter that much? Not sure. To run msys bash it has to be at least wine version 1.1.8 (I forgot number of resolved issue). Next born shells (msys bash and ash from pw32) are too slow. The simple command like sh -c echo xxx is about 10 times slower if compare to native run - the last wine issue is 13606. Roumen