Re: Re[2]: DLL naming conventions

2000-09-02 Thread Gary V. Vaughan

On Fri, Sep 01, 2000 at 07:40:09PM +0300, Paul Sokolovsky wrote:
 Hello Charles,
 
 Charles S. Wilson [EMAIL PROTECTED] wrote:
 
 CSW Well, the problem with libtool is that it's a developer's tool.  Take
 CSW the gettext package, for instance.  It uses some version of libtool that
 CSW does not understand cygwin/dlls.  The only way to 'fix' it is to replace
 CSW the libtool that is distributed WITH gettext, with a newer version.
 
  Yep, it's all about doing 'libtoolize --force'. When that will
 work (I mean, it will be possible to take some existing GNU/*nix
 package, run libtoolize --force/aclocal/automake -a/autoconf and have
 it compile cute little dll without any other changes), wouldn't it be
 nice?

This will never work reliably.  If a configure.in file (hell, the
entire package configuration) was written for an old version of
autoconf/automake/libtool, a forced configury upgrade can cause all
sorts of problems...  I'll concede that some of the time (if the
author of the original configury wasn't too ambitious) brute force
will work.  There is no way to guarantee that it will work though.

 CSW See, libtool isn't a tool that lives on the end-user's system. It's a
 CSW couple of scripts that are distributed with each package that uses
 CSW libtool.  So, you've probably got 27 versions of libtool on your system
 CSW right now.
 
  Yes - it is *developer* tool. But see what Gary Vaugham says:
pedanticGary Vaughan/pedantic
  
 "remember that libtool only want's you to see (and thus link against)
 the libfoo.la file". That's nice, but on typical *nix system you can
 build shared lib with libtool, but link against it without it. But
 they want to deprive win32 users off such possibility! (Technical
 note: what corresponds to shared library on *nix system is a pair of
 implib,dll on win32. *Pair*)

You're right.  I remember why I did it this way now -- the libtool
machinery is not at all equipped to deal with a shared library that is
not in a single file.  It is a fair amount of work to teach it to
understand that.  I do agree that libtool could be nicer to the world
by installing an appropriate implib.

 CSW Perhaps the current version of libtool groks cygwin dlls. (In the 'old'
 CSW dlltool way; I'm positive it doesn't use 'gcc -shared').
 
 Yes. And know why? Because they want to support outdated betas!

That was then.  When we had that conversation you still needed to use
dlltool on the latest net release of cygwin at that time.  I would
very much like to get rid of the dlltool dependency before 1.4 is
released.

 Note - *beta* versions of systems, for which official release is
 available for quite some time. Suppose libtool supported some NeXT
 alpha or Solaris pre-release of early '90? Nor even it is standard
 practise - I with regret read about dropping support of some systems
 in gdb 5.0. My last argument would be as follows:
 
 Suppose someone has cygwin b19 and libtool 1.2 and he wants to
 build DLLs with it. But he can't - libtool 1.2 simply doesn't support
 building DLLs! So, he's got to upgrade to libtool 1.3.x, but the same way,
 he might upgrade cygwin to 1.1 also. So, rule is simple: want DLLs - use
 release of cygwin and fresh libtool. Before that, there was some
 support, but it was experimental and changes since. Don't want to
 upgrade - enjoy static linking which is always available.
 
 CSW But none of the commonly-used libraries or applications out there USE the most
 CSW current libtool.
 
 Libtool has quite stable usage interface and principles. Following
 to them will allow to build shared libraries on *any* system with a
 handful of sanity (win32 goes into this category). Matter is
 implementing support for different systems.

It is only the case that libtool adoption among non-GNU packages is
low.  Almost everything you can download from ftp.gnu.org that builds
a library uses libtool these days.

If I (or you Paul) can make libtool a better citizen in the Cygwin
environment, I'd like to think that cygwin porters would port
non-cygwin packages to libtool so that everyone can enjoy the benefits
of shared libraries in those packages -- rather than cygwin specific
ports which probably won't even be accepted into the upstream package.

Cheers,
Gary.
-- 
  ___  _   ___   __  _ mailto: [EMAIL PROTECTED]
 / __|__ _ _ ___ _| | / / | / /_ _ _  _ __ _| |_  __ _ ___   [EMAIL PROTECTED] 
| (_ / _` | '_|// / |/ /| |/ / _` | || / _` | ' \/ _` | _ \
 \___\__,_|_|\_, /|___(_)___/\__,_|\_,_\__, |_||_\__,_|//_/
home page:  /___/  /___/  gpg public key:
http://www.oranda.demon.co.uk   http://www.oranda.demon.co.uk/key.asc




Archive library breakage on standard UNIX systems with ranlib

2000-09-02 Thread Michael Sokolov

Hi there,

The current libtool, both -rHEAD and -rmulti-language-branch, ever since 1999-
10-01 in fact, causes catastrophic breakage on standard UNIX systems on which
archives created by ar MUST be ranlib'ed before ld can use them at all (at
least 4.0BSD through 4.3BSD, and lots of others I'm sure). I have traced the
breakage down to this change:

1999-10-01  Gary V. Vaughan  [EMAIL PROTECTED]

* configure.in (AC_OUTPUT_COMMANDS): generate ltmain.sh
* Makefile.am (ltmain.sh ltconfig): removed.  Automake inserts the 
rules to automatically call config.status.

* libtool.m4: be sure to AC_SUBST values no longer tested in
ltconfig.in.
* ltconfig.in: replaced several of the simple feature tests with

substitutions from config.status.
^
* Makefile.am (ltconfig): generate ltconfig with config.status.
* configure.in (AC_OUTPUT): generate ltconfig with config.status.

especially the highlighted part.

Before this change, ltconfig.in contained the following code:

  if test -n "$ac_cv_prog_RANLIB"; then
RANLIB="$ac_cv_prog_RANLIB"
old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
echo "$ac_t$RANLIB" 16
  else
echo "$ac_t""no" 16
  fi

Gary's change removed this code and switched to configure's standard ranlib
check. But this is more than just a standard configure check! See how it adds
ranlib commands to old_archive_cmds and old_postinstall_cmds. After Gary's
change old_archive_cmds and old_postinstall_cmds never contain ranlib commands.
As a result, the archive is built with ar but not ranlib'ed, causing
catastrophic breakage on all standard UNIX systems on which archives created by
ar must be ranlib'ed before ld can use them.

The breakage caused by this change currently exists on both -rHEAD and -rmulti-
language-branch and needs to be fixed in both places. However, I'm not sure
what's the right way to fix this in the current libtool given all the changes
since then. Can someone please fix this? TIA.

--
Michael Sokolov Harhan Engineering Laboratory
Public Service AgentInternational Free Computing Task Force
International Engineering and Science Task Force
615 N GOOD LATIMER EXPY STE #4
DALLAS TX 75204-5852 USA

Phone: +1-214-824-7693 (Harhan Eng Lab office)
E-mail: [EMAIL PROTECTED] (ARPA TCP/SMTP) (UUCP coming soon)

P.S. I don't subscribe to the libtool lists (only to the Cygnus tree ones), so
please Cc: me.




Re: ranlib'ing static libraries?

2000-09-02 Thread Alexandre Oliva

On Aug 13, 2000, Assar Westerlund [EMAIL PROTECTED] wrote:

   * ltconfig.in: add back ranlib calls for static libraries if there
   is a ranlib

Thanks, I'm checking this in.  Sorry about the delay.

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicampoliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist*Please* write to mailing lists, not to me




Re: ultrix, cache_file and ksh

2000-09-02 Thread Alexandre Oliva

On Jul 28, 2000, Pavel Roskin [EMAIL PROTECTED] wrote:

 + * ltconfig.in: only load $cache_file if it's a regular file

Thanks, I'm checking this in

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicampoliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist*Please* write to mailing lists, not to me