[geos-devel] Re: GEOS build scripts
strk
strk at keybit.net
Tue Apr 20 08:52:28 EDT 2004
I've upgraded to ltmain.sh (GNU libtool) 1.5 (1.1220 2003/04/05 19:32:58)
and the problems seem to be gone.
How did your recover go ? Everything fine ?
--strk;
On Wed, Apr 14, 2004 at 12:03:37PM -0400, Ferdinando Villa wrote:
> The problem seems to come from wanting it all in a single library; since
> the files are too many to fit on ld's command line, libtool builds the
> library piecewise, which takes a very long time; plus, the library needs
> to be rebuild even when a single object file changes. When we discussed
> the code organization, I was in favor of building separate libraries and
> use a helper script (geos-config --libs) to do the link, but was
> outvoted in favor of the single library organization... I guess this was
> the unforeseen drawback. Other than restructuring everything, I don't
> see many options here (on the other hand, I'm recovering from anesthesia
> right now, so I may see options when I wake up!)
>
> sorry
> ferdinando
>
> On Wed, 2004-04-14 at 11:30, strk wrote:
> > The disk space requirement empirically found:
> >
> > When all the intermediate .o are around:
> > /dev/hda3 7874560 6199124 1275420 83% /usr
> >
> > After intermediate .o removal:
> > /dev/hda3 7874560 2991172 4483372 41% /usr
> >
> > It's a +3GB of disk space (and write) requirement !!
> >
> > --strk;
> >
> > On Wed, Apr 14, 2004 at 05:19:23PM +0200, strk wrote:
> > > Just to let you understand my problem:
> > > touching source/index/strtree/AbstractSTRtree.cpp
> > > after a complete build makes the next build take
> > > 4,30 minutes on a 1668.736 Mhz CPU with 775MB ram.
> > >
> > > The link part is the longer. The linker is run for *every* object
> > > file creating ALL intermediate objects:
> > >
> > > /usr/bin/ld -r -o .libs/libgeos.la-24.o .libs/TopologyException.o .libs/libgeos.la-23.o
> > > /usr/bin/ld -r -o .libs/libgeos.la-25.o .libs/Triangle.o .libs/libgeos.la-24.o
> > > [..]
> > > /usr/bin/ld -r -o .libs/libgeos.la-180.o .libs/UnsupportedOperationException.o .libs/libgeos.la-179.o
> > >
> > > Then the last object is made a shared library, and the libgeos.la-#.o files
> > > are removed.
> > >
> > > gcc -shared .libs/libgeos.la-180.o -Wl,-soname -Wl,libgeos.so.1 -o .libs/libgeos.so.1.0.0
> > >
> > > Finally all object files are appended (again with an 'ar' run each) to
> > > the libgeos.a archive:
> > >
> > > ar cru .libs/libgeos.a RelateNode.o
> > > : .libs/libgeos.a
> > > ar cru .libs/libgeos.a RelateNodeFactory.o
> > > : .libs/libgeos.a
> > >
> > > Note that the incremental object linkage requires a lot of disk
> > > space also, about the factorial of average object size.
> > >
> > > The tools I'm using are:
> > > ltmain.sh (GNU libtool) 1.4.2 (1.922.2.53 2001/09/11 03:18:52)
> > > automake (GNU automake) 1.7.7
> > >
> > >
> > > --strk;
More information about the geos-devel
mailing list