W3C home > Mailing lists > Public > www-lib@w3.org > July to September 2003

Re: Make configure.in work with latest autoconf/automake / Fix inter-lib linking [patch]

From: Richard Atterer <richard@list03.atterer.net>
Date: Tue, 30 Sep 2003 12:36:31 +0200
To: www-lib@w3.org
Message-ID: <20030930103630.GA3603@nenya.lan>
Hello,

it turns out that the third of my previous patches only works if libwww is 
already installed on the system, because I omitted the necessary -L. (and 
similar) switches. This replacement patch is better, but I ended up making 
a lot more changes:

While adding the -L switches, it became clear that the order in which the
libraries are built had to be changed so that each lib is only built
*after* the ones it depends on.

One such build order change was that SSL support needs to be built after
the rest, not before. The respective change to the Makefile.am broke
winConfigure.pl (infinite recursion :-), so I also fixed that.

Then there was a problem with libwwwfile and libwwwdir: There is a circular
dependency between them, each one calls functions of the other. This proved
to be very difficult to fix; it /would/ have been possible to just omit
e.g.  the "-lwwwfile" from libwwwdir's LDFLAGS, but then prelinking would
have been broken again, and that is what I'm trying to fix. Another
possibility which I wasted a lot of time on was to relink libwwwdir:

First build libwwwdir without a "-lwwwfile" (using it would fail, since
libtool would be unable to find libwwwfile), then build libwwwfile, then
re-link libwwwdir with "-lwwwfile". But libtool just didn't want to do
that, giving either an error or producing a still incorrectly-linked
libwwwdir after the second linking.

So in the end I've put the code of both libwwwfile and libwwwdir into 
libwwwfile. What do people think about this step? It's the only remaining 
solution I see...

The libwwwdir library is still built, because old libwww-using applications
should still work with new versions of libwww without breaking. However,
the new libwwwdir is an empty dummy lib which only links against libwwwfile
to pull in the symbols which were moved to libwwwfile.

If this is applied to CVS, the next libwww release's libwww-config should
no longer output the "-lwwwdir" switch, so that libwwwdir can be retired
entirely in the future. The attached patch (replacement for the third patch
in my previous message) does not include such a patch to libwww-config.

Cheers,

  Richard

-- 
  __   _
  |_) /|  Richard Atterer     |  GnuPG key:
  | \/|  http://atterer.net  |  0x888354F7
   '` 

Received on Tuesday, 30 September 2003 15:22:03 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 April 2007 18:18:44 GMT