Re: [png-mng-implement] -version-number and BeOS

2006-05-14 Thread Ralf Wildenhues
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

2006-05-14 Thread Ralf Wildenhues
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

2006-05-14 Thread Ralf Wildenhues
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

2006-05-14 Thread Ralf Wildenhues
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'
+