[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