Eric Parusel
2004-Oct-18 19:33 UTC
[Xapian-discuss] xapian-bindings compile creates 34mb xapian_wrap.o file?
Questions are threaded into the output: ******************** #./configure --without-python checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking dependency style of gcc... gcc checking for a sed that does not truncate output... /bin/sed checking for egrep... grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for epcf90... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for gfortran... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc static flag works... yes checking if gcc supports -fno-rtti -fno-exceptions... yes checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes appending configuration tag "F77" to libtool checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ANSI C... (cached) none needed checking dependency style of gcc... (cached) gcc checking whether we are using the GNU C++ compiler... (cached) yes checking whether g++ accepts -g... (cached) yes checking dependency style of g++... (cached) gcc checking for xapian-config... /usr/bin/xapian-config checking /usr/bin/xapian-config works... yes checking for swig... /usr/local/bin/swig checking for php-config... no checking for tclsh... /usr/bin/tclsh checking for guile... no checking for java... no checking for javac... no checking for jar... no configure: creating ./config.status config.status: creating Makefile config.status: creating python/Makefile config.status: creating python/docs/Makefile config.status: creating python/docs/examples/Makefile config.status: creating php4/Makefile config.status: creating php4/docs/Makefile config.status: creating php4/docs/examples/Makefile config.status: creating php4/util.i config.status: creating java/Makefile config.status: creating java/native/Makefile config.status: creating java/org/Makefile config.status: creating java/org/xapian/Makefile config.status: creating java/org/xapian/errors/Makefile config.status: creating java/org/xapian/examples/Makefile config.status: creating guile/Makefile config.status: creating tcl8/Makefile config.status: creating xapian-bindings.spec config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands # make make all-recursive make[1]: Entering directory `/root/compile/xapian/xapian-bindings-0.8.3' Making all in tcl8 make[2]: Entering directory `/root/compile/xapian/xapian-bindings-0.8.3/tcl8' make all-am make[3]: Entering directory `/root/compile/xapian/xapian-bindings-0.8.3/tcl8' source='xapian_wrap.cc' object='xapian_wrap.lo' libtool=yes \ depfile='.deps/xapian_wrap.Plo' tmpdepfile='.deps/xapian_wrap.TPlo' \ depmode=gcc /bin/sh ../depcomp \ /bin/sh ../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/tcl8.3 -Wall -Wno-unused -Wno-uninitialized -g -O2 -c -o xapian_wrap.lo xapian_wrap.cc g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/tcl8.3 -Wall -Wno-unused -Wno-uninitialized -g -O2 -c xapian_wrap.cc -Wp,-MD,.deps/xapian_wrap.TPlo -fPIC -DPIC -o .libs/xapian_wrap.o ******************** Pauses here for a few minutes, first with a 100MB cc1plus process, then a 200MB an? process? At first I thought it was hung, but it did finish: ******************** /bin/sh ../libtool --mode=link g++ -Wall -Wno-unused -Wno-uninitialized -g -O2 -o xapian.la -rpath /usr/lib/tcl8.3 -avoid-version -module xapian_wrap.lo /usr/lib/libxapianqueryparser.la /usr/lib/libxapian.la g++ -shared -nostdlib /usr/lib/crti.o /usr/lib/gcc-lib/i386-linux/2.95.4/crtbeginS.o .libs/xapian_wrap.o /usr/lib/libxapianqueryparser.so /usr/lib/libxapian.so -L/usr/lib/gcc-lib/i386-linux/2.95.4 -lstdc++ -lm -lc -lgcc /usr/lib/gcc-lib/i386-linux/2.95.4/crtendS.o /usr/lib/crtn.o -Wl,-soname -Wl,xapian.so -o .libs/xapian.so creating xapian.la (cd .libs && rm -f xapian.la && ln -s ../xapian.la xapian.la) # cd tcl8/.libs/ # ls -la total 58216 drwxr-xr-x 2 root root 4096 Oct 18 11:25 . drwxrwxrwx 4 1019 1019 4096 Oct 18 11:25 .. lrwxrwxrwx 1 root root 12 Oct 18 11:25 xapian.la -> ../xapian.la -rw-r--r-- 1 root root 823 Oct 18 11:25 xapian.lai -rwxr-xr-x 1 root root 24732269 Oct 18 11:25 xapian.so -rw-r--r-- 1 root root 34793736 Oct 18 11:25 xapian_wrap.o ******************** Is this out of the ordinary!?! Thanks, Eric
Olly Betts
2004-Oct-18 21:07 UTC
[Xapian-discuss] xapian-bindings compile creates 34mb xapian_wrap.o file?
On Mon, Oct 18, 2004 at 11:34:51AM -0700, Eric Parusel wrote:> g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/tcl8.3 -Wall > -Wno-unused -Wno-uninitialized -g -O2 -c xapian_wrap.cc > -Wp,-MD,.deps/xapian_wrap.TPlo -fPIC -DPIC -o .libs/xapian_wrap.o > > ******************** > Pauses here for a few minutes, first with a 100MB cc1plus process, then > a 200MB an? process?The C++ source file SWIG generates is rather large and it takes GCC a while to deal with it. I don't think there's much we can do about that (the SWIG and/or GCC developers might).> # cd tcl8/.libs/ > # ls -la > total 58216 > drwxr-xr-x 2 root root 4096 Oct 18 11:25 . > drwxrwxrwx 4 1019 1019 4096 Oct 18 11:25 .. > lrwxrwxrwx 1 root root 12 Oct 18 11:25 xapian.la -> > ../xapian.la > -rw-r--r-- 1 root root 823 Oct 18 11:25 xapian.lai > -rwxr-xr-x 1 root root 24732269 Oct 18 11:25 xapian.so > -rw-r--r-- 1 root root 34793736 Oct 18 11:25 xapian_wrap.o > > ******************** > Is this out of the ordinary!?!That'll have debug information in. If you don't want that, installing the files with "make install-strip" should remove it. But it's not actually a problem usually - the VM system loads pages from shared libraries (and executables) on demand, so if the debug information isn't used, it doesn't occupy RAM. Incidentally, the .o file is just an intermediate file for building the .so. Cheers, Olly