Hello, Ralf!

Something goes wrong again. My letter in the attachment in plain text, sorry. It is due to buggy FidoLook SL formatter, looks like it dislikes shell script syntax.

With best regards, Mike Gorchak. E-mail: m...@malva.ua
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"
          ;;
        esac


because $current is empty at this point. I will mark an error and my comments to the script 
below with >>>> sign.


        case $vinfo_number in
        yes)
if we pass -version-number option to libtool, it sets vinfo_number to "yes".
          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"
          ;;
        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 are failed 
because of using gcc command line instead of QNX's QCC wrapper around GCC. QNX 
uses Dinkumware C++/STL library instead of using GNU stdc++, but g++ searching 
for the libstdc++ instead of dinkumware libcpp library. This problem could be 
easily solved by setting CC=qcc and CXX=QCC. But it was too late to specify qcc 
instead of gcc, because I'm using not fast computer for QNX development and 
almost of half tests has been completed when found this error, running all 
these tests took a lot of time. But if you need, I could re-run all test suite 
with QCC wrapper for C++ without any problem :) Log attached. Looks like there 
are few problems, which are not related to C++. I will check them.

Reply via email to