[Monetdb-developers] MonetDB/XQuery on SunOS 5.9

Jens Teubner jens.teubner at in.tum.de
Fri Oct 28 21:50:40 CEST 2005


Hi all,

for our ongoing course "Database-Supported XML Processors" I wanted to
install MonetDB/XQuery in our Sun-based computer lab.  I encountered a
number of pitfalls during the install that I will list below.  System is
SunOS 5.9.  There's a bunch of GNU tools installed (e.g., gcc), but a
number of tools is only available in their original Sun version.  I've
used the 4.8.2/0.8.2 tarballs distributed on the SourceForge website and
set `--enable-optimize'.

1. Python
=========

MonetDB's ./configure complains about a wrong version of Python and
aborts.  If I give it `--without-python', however, ./configure no longer
complains, and MonetDB compiles fine (apparently).


2. make
=======

Default `make' on that system is the one provided by SunOS.  Apparently
this is *not* sufficient to compile MonetDB:

 -- Sun's `make' does not like the wildcards (*.mk) in Makefile
    includes.  I'm explicitly mentioning that because that actually
    annoys me for quite some time also on my system (independent of the
    Sun make issue).  The Makefiles include $(top_srcdir)/*.mk and
    $(top_builddir)/*.mk.  If I build MonetDB (or Pathfinder) directly
    in the source directory, this leads to any *.mk file being included
    twice---with loads of `make' warnings.  Wouldn't it be more
    consistent to explicitly list .mk files to be included here with
    their full name?  (Btw. with those wildcards, compilation will
    inevitably fail if I drop some random .mk file in any of the two
    directories---a thing that a normal user probably wouldn't
    expect/understand.)

 -- Lots of other stuff is not understood by Sun's `make'.

Shouldn't ./configure also check whether the `make' implementation on a
system suffices for the project?

gmake did the job for me.  It was available on our Sun, fortunately.


3. libbz2
=========

There's no libbz2 on that system.  ./configure still did not complain.
Compilation, however failed.  Adding a `--without-bz2' fixed the issue.


4. Compilation issue
====================

gcc -DHAVE_CONFIG_H -I. -I../../../src/gdk -I../.. -I../../../src/gdk -I../common -DLIBGDK -O2 -std=c99 -D__EXTENSIONS__ -Wall -W -O2 -fomit-frame-pointer -finline-functions -DHWCOUNTERS -DHW_SunOS -DHW_sun4u -Werror-implicit-function-declaration -Werror -Wno-unused-function -Wno-unused-label -Wno-uninitialized -D_REENTRANT -c gdk_posix.c  -fPIC -DPIC -o .libs/libbat_la-gdk_posix.o
cc1: warnings being treated as errors
../../../src/gdk/gdk_posix.mx: In function `MT_getrss':
../../../src/gdk/gdk_posix.mx:550: warning: int format, pid_t arg (arg 1)
gmake[4]: *** [libbat_la-gdk_posix.lo] Error 1
gmake[4]: Leaving directory `/u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/gdk'
 
I've removed the -Werror to get past that error.


5. HwCounters
=============

./configure complained about libcpc.h: present but cannot be compiled.

Seems like the libcpc.h is there for some other reason.  Compiling
failed with an error in ..counters.mx.  I've thus set
`--without-hwcounters'.


6. Parallel Make
================

Tired of long make runs, I've tried `gmake -j4.  Result:

[...lots of stuff...]
../../../src/mel/ops.mx: ./ops.h - created 
../../../src/mel/symtable.mx: ./symtable.h - created 
gmake[3]: *** No rule to make target `atom.mx', needed by `atom.h'.  Stop.
gmake[3]: *** Waiting for unfinished jobs....
../../../src/mel/dependency.mx: ./dependency.h - created 
gmake[3]: Leaving directory `/u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/mel'
gmake[2]: *** [all-recursive] Error 1

Missing dependencies?  Starting gmake again did it for me.

Oops!  Another one:

/u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/utils/Mx/Mx  -x y ../../../src/monet/monet_parse.mx 
../../../src/monet/monet_parse.mx: ./monet_parse.h - created 
gmake[3]: *** No rule to make target `../gdk/../common/stream.mx', needed by `../gdk/../common/stream.h'.  Stop.
gmake[3]: *** Waiting for unfinished jobs....
../../../src/monet/monet_parse.mx: ./monet_parse.c - created 

Another one:

/u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/utils/Mx/Mx  -x sh ../../../../src/modules/contrib/ddbench.mx
gmake[4]: stat:../../../../src/modules/contrib/bat_mmath.mx: Interrupted system call
gmake[4]: *** No rule to make target `bat_mmath.mx', needed by `bat_mmath.m'.  Stop.
gmake[4]: *** Waiting for unfinished jobs....
../../../../src/modules/contrib/ddbench.mx: ./ddbench - created 
../../../../src/modules/contrib/ddbench.mx: ./ddbench.m - created 

Another one:

/u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/mel/mel -I../../../../src/modules/contrib -I../../common -I../../gdk -I../../monet -I../plain     -glue oo7.m > oo7.glue.c
gmake[4]: *** No rule to make target `uchr.mx', needed by `uchr.m'.  Stop.
gmake[4]: *** Waiting for unfinished jobs....
gmake[4]: Leaving directory `/u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/modules/contrib'

(I know that parallel build have their problems.  I've listed the errors
here anyway.)


7. Linker Error
===============

Finally I hit this linker error that I don't know how to solve:

gmake[4]: Entering directory `/u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/tools'
/bin/bash ../../libtool --tag=CC --mode=link gcc  -O2 -std=c99 -D__EXTENSIONS__ -Wall -W -O2 -fomit-frame-pointer -finline-functions -Werror-implicit-function-declaration -Werror -Wno-unused-function -Wno-unused-label -Wno-uninitialized  -D_REENTRANT   -o Mserver   Mserver.o initmodules.o ../monet/libmonet.la ../modules/plain/lib_algebra.la ../modules/plain/lib_arith.la ../modules/plain/lib_bat.la ../modules/plain/lib_builtin.la ../modules/plain/lib_str.la ../modules/plain/lib_sys.la ../modules/plain/lib_trans.la  ../gdk/libbat.la -lsocket -lnsl -ldl -lpthread -lposix4 -lmalloc ../common/libmutils.la ../common/libstream.la 
gcc -O2 -std=c99 -D__EXTENSIONS__ -Wall -W -O2 -fomit-frame-pointer -finline-functions -Werror-implicit-function-declaration -Werror -Wno-unused-function -Wno-unused-label -Wno-uninitialized -D_REENTRANT -o .libs/Mserver Mserver.o initmodules.o  ../monet/.libs/libmonet.so ../modules/plain/.libs/lib_algebra.so ../modules/plain/.libs/lib_arith.so ../modules/plain/.libs/lib_bat.so ../modules/plain/.libs/lib_builtin.so ../modules/plain/.libs/lib_str.so -liconv ../modules/plain/.libs/lib_sys.so ../modules/plain/.libs/lib_trans.so /u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/monet/.libs/libmonet.so /u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/gdk/.libs/libbat.so -lm ../gdk/.libs/libbat.so /u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/common/.libs/libstream.so -ldl -lpthread -lposix4 -lmalloc ../common/.libs/libmutils.so ../common/.libs/libstream.so /u/halle/teubnerj/home_sun/MonetDB/src/MonetDB-4.8.2/build/src/common/.libs/libmutils.so -lsocket -lnsl -lz -Wl,--rpath -Wl,/u/halle/teubnerj/home_sun/MonetDB/lib -Wl,--rpath -Wl,/u/halle/teubnerj/home_sun/MonetDB/lib/MonetDB
../modules/plain/.libs/lib_arith.so: undefined reference to `__ashrdi3 at GCC_3.0'
../modules/plain/.libs/lib_arith.so: undefined reference to `__ashldi3 at GCC_3.0'
../modules/plain/.libs/lib_arith.so: undefined reference to `__floatdisf at GCC_3.0'
../modules/plain/.libs/lib_arith.so: undefined reference to `__floatdidf at GCC_3.0'
collect2: ld returned 1 exit status
gmake[4]: *** [Mserver] Error 1


Any ideas so I can continue and hit more compilation problems?


I'm not an expert on that system.  Actually, I don't have any clue what
software, libraries, tools, etc. is available there.  I have access to
the machine at any time, though, and I'm happy to give fixes a try or
figure out, e.g., more detailed error messages.


Jens

-- 
Jens Teubner
Technische Universitaet Muenchen, Department of Informatics
D-85748 Garching, Germany
Tel: +49 89 289-17259     Fax: +49 89 289-17263

Real programmers don't comment their code.
If it was hard to write, why should it be easy to read?




More information about the developers-list mailing list