Re: [png-mng-implement] -version-number and BeOS
Hello John, Christian, everyone, Sorry for the huge delay. * John Bowler wrote on Fri, Mar 31, 2006 at 09:15:42PM CEST: From: Christian Biesinger libtool: link: CURRENT `' must be a nonnegative integer libtool: link: `0:9:0' is not valid version information make[1]: *** [libpng12.la] Error 1 The cause of this problem seems to be this: For BeOS, version_type=none. But, the code in ltmain.sh around line 3236 does not handle a value of none. Only for the specific list of cases does it assign a value to current, age and revision. Yes, we found a similar problem with irix and I patched ltmain.sh to fix this (ltmain.sh is shipped with the package, so patching it works): OK, I looked at this again. My previous analysis was plain wrong. I've installed the attached patches to branch-1-5 and HEAD, respectively. What I still don't understand is the following additional change you also suggest: $ diff libpng-1.2.9beta7/ltmain.sh libpng-1.2.9beta11 3248c3248 current=`expr $number_major + $number_minor - 1` --- current=`expr $number_major + $number_minor` 3323c3323 major=`expr $current - $age + 1` --- major=`expr $current - $age` There is a comment above this code that explains why this should be necessary, no? For BeOS try adding 'none' to the end of the test for darwin|linux|osf|windows on line 3237 of ltmain.sh. We can ship libpng with that because it won't break anything which isn't already broken. I.e: Done. Cheers, and thank you for your persistence! Ralf HEAD: 2005-05-14 John Bowler [EMAIL PROTECTED] * libltdl/config/ltmain.m4sh (func_mode_link): For version_type `none', we still need to set `current', `age', and `revision', so that our checks don't barf. The values won't be used later. Apparently reported by several people, several times, for BeOS. * NEWS, THANKS: Update. branch-1-5: 2005-05-14 John Bowler [EMAIL PROTECTED] * ltmain.in (link mode): For version_type `none', we still need to set `current', `age', and `revision', so that our checks don't barf. The values won't be used later. Apparently reported by several people, several times, for BeOS. * NEWS, THANKS: Update. 2005-05-14 John Bowler [EMAIL PROTECTED] * libltdl/config/ltmain.m4sh (func_mode_link): For version_type `none', we still need to set `current', `age', and `revision', so that our checks don't barf. The values won't be used later. Apparently reported by several people, several times, for BeOS. * NEWS, THANKS: Update. Index: NEWS === RCS file: /cvsroot/libtool/libtool/NEWS,v retrieving revision 1.192 diff -u -r1.192 NEWS --- NEWS23 Mar 2006 22:39:41 - 1.192 +++ NEWS14 May 2006 08:17:56 - @@ -31,6 +31,8 @@ * Support for Interix 3 (Windows SFU). * Basic support for PIE (position-independent executables). * Initial support for RDOS. +* Fix error with -version-info on systems with version_type=none, such + as BeOS. * Bug fixes. New in 1.9f: 2004-10-23; CVS version 1.9e, Libtool team: Index: THANKS === RCS file: /cvsroot/libtool/libtool/THANKS,v retrieving revision 1.55 diff -u -r1.55 THANKS --- THANKS 23 Mar 2006 22:39:41 - 1.55 +++ THANKS 14 May 2006 08:17:56 - @@ -74,6 +74,7 @@ Bruno Haible [EMAIL PROTECTED] Carl D. Roth [EMAIL PROTECTED] Chris P. Ross[EMAIL PROTECTED] + Christian Biesinger [EMAIL PROTECTED] Dalibor Topic[EMAIL PROTECTED] Daniel Reed [EMAIL PROTECTED] DJ Delorie [EMAIL PROTECTED] @@ -90,6 +91,7 @@ Jeremy C. Reed [EMAIL PROTECTED] Joel N. Weber II [EMAIL PROTECTED] Joerg Sonnenberger [EMAIL PROTECTED] + John Bowler [EMAIL PROTECTED] Joseph Beckenbach III[EMAIL PROTECTED] Kenneth Albanowski [EMAIL PROTECTED] Kevin Ryde [EMAIL PROTECTED] Index: libltdl/config/ltmain.m4sh === RCS file: /cvsroot/libtool/libtool/libltdl/config/ltmain.m4sh,v retrieving revision 1.42 diff -u -r1.42 ltmain.m4sh --- libltdl/config/ltmain.m4sh 22 Apr 2006 18:57:04 - 1.42 +++ libltdl/config/ltmain.m4sh 14 May 2006 08:17:58 - @@ -4299,7 +4299,7 @@ # which has an extra 1 added just for fun # case $version_type in - darwin|linux|osf|windows) + darwin|linux|osf|windows|none) current=`expr $number_major + $number_minor` age=$number_minor revision=$number_revision 2005-05-14 John Bowler [EMAIL PROTECTED] * ltmain.in (link mode): For
Re: Remove duplicate hardcode_direct=yes for AIX
Hi Albert, * Albert Chin wrote on Sun, Apr 30, 2006 at 03:12:05AM CEST: $hardcode_direct is set twice for AIX. Thanks! I've applied these patches. Cheers, and sorry for the delay, Ralf HEAD: 2006-05-14 Albert Chin-A-Young [EMAIL PROTECTED] * libltdl/m4/libtool.m4 (_LT_LINKER_SHLIBS, _LT_LANG_CXX_CONFIG) [ aix ]: $hardcode_direct is set twice. Index: libltdl/m4/libtool.m4 === RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v retrieving revision 1.63 diff -u -r1.63 libtool.m4 --- libltdl/m4/libtool.m4 28 Mar 2006 18:11:28 - 1.63 +++ libltdl/m4/libtool.m4 14 May 2006 08:41:35 - @@ -4294,7 +4294,7 @@ strings $collect2name | $GREP resolve_lib_name /dev/null then # We have reworked collect2 - _LT_TAGVAR(hardcode_direct, $1)=yes + : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported @@ -5278,7 +5278,7 @@ strings $collect2name | $GREP resolve_lib_name /dev/null then # We have reworked collect2 - _LT_TAGVAR(hardcode_direct, $1)=yes + : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported branch-1-5: 2006-05-14 Albert Chin-A-Young [EMAIL PROTECTED] * libtool.m4 [ aix ] (AC_LIBTOOL_PROG_LD_SHLIBS) (AC_LIBTOOL_LANG_CXX_CONFIG): $hardcode_direct is set twice. Index: libtool.m4 === RCS file: /cvsroot/libtool/libtool/Attic/libtool.m4,v retrieving revision 1.314.2.152 diff -u -r1.314.2.152 libtool.m4 --- libtool.m4 28 Mar 2006 18:12:50 - 1.314.2.152 +++ libtool.m4 14 May 2006 08:42:22 - @@ -2933,7 +2933,7 @@ strings $collect2name | grep resolve_lib_name /dev/null then # We have reworked collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes + : else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported @@ -5732,7 +5732,7 @@ strings $collect2name | grep resolve_lib_name /dev/null then # We have reworked collect2 - _LT_AC_TAGVAR(hardcode_direct, $1)=yes + : else # We have old collect2 _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
HEAD: pass environment to new test suite
It's actually advantageous if `./testsuite' knows about the environment variables we set for it: that way, issuing ./tests/testsuite.dir/09/run -x CFLAGS=-g works as intended: overrides CFLAGS, but uses the same other variables. So, let's have TESTSUITE_ENVIRONMENT as command line arguments, instead of setting it beforehand. And let's get rid of that ugly workaround in LT_AT_TAG that we used before we passed all compilers anyway, so that CC and CXX etc. can be overridden, too. OTOH, there is an exception: we want to set $CONFIG_SHELL, because that is what we start testsuite with. Any reasons against this? Cheers, Ralf * Makefile.am (check-local): Move `$(TESTS_ENVIRONMENT)' and `$(BUILDCHECK_ENVIRONMENT)' to be arguments of `testsuite', so that reruns will remember it; set enviroment variable `CONFIG_SHELL' so the suite will know which shell it was started with. (installcheck-local): Likewise, for `$(TESTS_ENVIRONMENT)' and `$(INSTALLCHECK_ENVIRONMENT)'. * tests/testsuite.at (LT_AT_TAG): Do not set the compiler variable here. Index: Makefile.am === RCS file: /cvsroot/libtool/libtool/Makefile.am,v retrieving revision 1.193 diff -u -r1.193 Makefile.am --- Makefile.am 20 Mar 2006 20:46:30 - 1.193 +++ Makefile.am 14 May 2006 12:54:29 - @@ -453,12 +453,15 @@ # Hook the test suite into the check rule check-local: tests/atconfig $(srcdir)/$(TESTSUITE) $(CD_TESTDIR); \ - $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) $(SHELL) $$abs_srcdir/$(TESTSUITE) $(TESTSUITE_FLAGS) + CONFIG_SHELL=$(SHELL) $(SHELL) $$abs_srcdir/$(TESTSUITE) \ + $(TESTS_ENVIRONMENT) $(BUILDCHECK_ENVIRONMENT) $(TESTSUITE_FLAGS) # Run the test suite on the *installed* tree. installcheck-local: $(CD_TESTDIR); \ - $(TESTS_ENVIRONMENT) $(INSTALLCHECK_ENVIRONMENT) $(SHELL) $$abs_srcdir/$(TESTSUITE) $(TESTSUITE_FLAGS) AUTOTEST_PATH=$(exec_prefix)/bin + CONFIG_SHELL=$(SHELL) $(SHELL) $$abs_srcdir/$(TESTSUITE) \ + $(TESTS_ENVIRONMENT) $(INSTALLCHECK_ENVIRONMENT) $(TESTSUITE_FLAGS) \ + AUTOTEST_PATH=$(exec_prefix)/bin # We need to remove any file droppings left behind by testsuite clean-local: clean-local-legacy Index: tests/testsuite.at === RCS file: /cvsroot/libtool/libtool/tests/testsuite.at,v retrieving revision 1.40 diff -u -r1.40 testsuite.at --- tests/testsuite.at 5 Feb 2006 17:06:39 - 1.40 +++ tests/testsuite.at 14 May 2006 13:21:38 - @@ -153,11 +153,6 @@ # -- m4_define([LT_AT_TAG], [AT_KEYWORDS([$1]) -eval `$LIBTOOL --tag=$1 --config | sed -n ' -/^CC=/{ - s/CC/$1/ - p -}'` AT_CHECK([test -n [$]$1 || (exit 77)]) ])
Re: support for SunPRO C/C++ on Linux
Hi Bruno, all, + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in +$convenience\\; do test -z \$conv\ || new_convenience=\$new_convenience,$conv\; done; $echo \$new_convenience\`+${wl}--no-whole-archive' Are you sure the compiler driver won't reorder arguments here? I tested this now, this issue seems ok for the time being. Let's hope they don't break it. The CVS HEAD test suite exposed some further issues: - whole_archive_flag_spec needs to be adjusted the way you suggested also for the C compiler. - We can trick the C compiler driver into accepting only whole archives (and no other objects) by adding a dummy /dev/null argument: it will be ignored by GNU binutils ld. :-) - The Fortran compilers need an empty $wl: they'll forward everything they don't understand to the linker. Let's not worry about their overly verbose warnings about them. - This means we need white space separators in whole_archive for Fortran. - For the compiler matching, we need more than the first line: the f77 driver will prepend all output; 5 lines should be sufficient. | NOTICE: Invoking /home/ralf/download/software/sunstudio/sunstudiomars/bin/f90 -f77 -ftrap=%none --version Furthermore, the GCJ convenience test fails, due to insufficient variable resetting done in the Java section of libtool.m4 ($wl in this case). I reported this issue a while ago, but never got around to fixing it yet. So this is where I'm at now. I think the postdeps for Fortran are still wrong, but we can fix that later. It should be noted that currently, newer versions of config.guess and config.sub are needed than the checked-in copies of branch-1-5; in any case they need to be newer than those shipped with Autoconf-2.59, so they will be updated first. On i686-pc-linux-gnu, HEAD passes all tests except the GCJ convenience one, branch-1-5 passes all its tests plus the non-FC HEAD convenience tests; you can test this with overriding $LIBTOOL for the HEAD testsuite (plus my pending patch): make check-local \ TESTSUITE_FLAGS='-v -d 11 LIBTOOL=/tmp/branch-1-5/build-suncc/libtool' Unless anyone has complaints about these patches, I'll probably apply within the couple of days. Cheers, Ralf HEAD: 2006-05-14 Bruno Haible [EMAIL PROTECTED], Ralf Wildenhues [EMAIL PROTECTED] * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG, _LT_SYS_HIDDEN_LIBDEPS) [ linux ]: Add support for Sun C 5.9, Sun C++ 5.9, and Sun Fortran 8.3 on Linux. * NEWS: Update. branch-1-5: 2006-05-14 Bruno Haible [EMAIL PROTECTED], Ralf Wildenhues [EMAIL PROTECTED] * libtool.m4 [ linux ] (AC_LIBTOOL_LANG_CXX_CONFIG) (AC_LIBTOOL_POSTDEP_PREDEP, AC_LIBTOOL_PROG_COMPILER_PIC) (AC_LIBTOOL_PROG_LD_SHLIBS): Add support for Sun C 5.9, Sun C++ 5.9, and Sun Fortran 8.3 on Linux. * NEWS: Update. 2006-05-14 Bruno Haible [EMAIL PROTECTED], Ralf Wildenhues [EMAIL PROTECTED] * libltdl/m4/libtool.m4 (_LT_COMPILER_PIC, _LT_LINKER_SHLIBS) (_LT_LANG_CXX_CONFIG, _LT_SYS_HIDDEN_LIBDEPS) [ linux ]: Add support for Sun C 5.9, Sun C++ 5.9, and Sun Fortran 8.3 on Linux. * NEWS: Update. Index: NEWS === RCS file: /cvsroot/libtool/libtool/NEWS,v retrieving revision 1.193 diff -u -r1.193 NEWS --- NEWS14 May 2006 08:20:11 - 1.193 +++ NEWS14 May 2006 12:41:54 - @@ -33,6 +33,7 @@ * Initial support for RDOS. * Fix error with -version-info on systems with version_type=none, such as BeOS. +* Initial support for the Sun compiler suite on GNU/Linux. * Bug fixes. New in 1.9f: 2004-10-23; CVS version 1.9e, Libtool team: Index: libltdl/m4/libtool.m4 === RCS file: /cvsroot/libtool/libtool/libltdl/m4/libtool.m4,v retrieving revision 1.64 diff -u -r1.64 libtool.m4 --- libltdl/m4/libtool.m4 14 May 2006 08:43:58 - 1.64 +++ libltdl/m4/libtool.m4 14 May 2006 16:01:37 - @@ -3525,6 +3525,14 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) + case `$CC -V 21 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac ;; esac ;; @@ -3779,6 +3787,22 @@ # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; + *) + case `$CC -V 21 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' +