Hi Konstantin, On Tue, 16 May 2000 10:38:00 -0400 Konstantin Olchanski <olchansk@ux1.phy.bnl.gov> wrote: > > Folks, BRAHVO no longer runs on pii5. This is what I get: > > > operator@pii5<10>:id -a > uid=1021(operator) gid=31025(brahms) groups=31025(brahms) > operator@pii5<11>:pwd > /home/operator/HV/brahvo/bin > operator@pii5<12>: > operator@pii5<13>:brahvo > > !!!!!!!!!!!!!! W A R N I N G !!!!!!!!!!!!! > > The internal data structures have been changed. > Please recompile the setup file which contains > the definition "G__cpp_setupX11_G__X11()" > using CINT version 5.14.25, Nov 25 1999. > library=51428 cintbody=51415 > > !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! > > operator@pii5<14>: Kris has recently moved ROOTSYS to point to ROOT version 2.24.04 (previously 2.23.12), and as the incrementation of the second version number indicates, this means _alot_ of changes. Most noticably, CINT generated code isn't fully backward compatible (that's what I gather schimming through the release notes). This all boils down to: Recompile BraHVo, using the new ROOT version. Hope that helps. Incidently, many of these confutions could be avoided if the ROOT libraries was linkedd with the version number in the SONAME of the libraries. Ofcourse not all operating systems support this e.g., Windoze, Digital Unix, Solaris, Silicon Graphics, IBM AIX, etc., but on those that do e.g., Linux, it can really prevent alot of version mismatches. To put the version number 2.1.12 into the SONAME of library libFoo, build from files Bar.o and Baz.o, one would do: prompt% g++ -shared -Wl,-soname,libFoo.so.2.1 -o libFoo.so.2.1.12 \ Bar.o Baz.o prompt% ln -s libFoo.so.2.1.12 libFoo.so.2.1 prompt% ln -s libFoo.so.2.1 libFoo.so This terasnlates into Make rules: LIBNAME = Foo LIBRARY = lib$(LIBNAME).so LIBOBJS = Bar.o Baz.o MAJOR = 2 MINOR = 1 REVISION = 12 SOMAKER = g++ SOFLAGS = -shared -Wl,-soname, %.so: $(LD) $(SOFLAGS)$@.$(MAJOR).$(MINOR) \ -o $@.$(MAJOR).$(MINOR).$(REVISION) $(LIBOBJS) ln -s $@.$(MAJOR).$(MINOR).$(REVISION) $@.$(MAJOR).$(MINOR) ln -s $@.$(MAJOR).$(MINOR) $@ all: $(LIBRARY) $(LIBRARY):$(LIBOBJS) Notice, that it is custumeray to have no more then Major and Minor version number in the SONAME. In fact, the GNU people recommends that one follows a versioning scheme, where only the Major version number is in the SONAME. Anyway, that's a side note, but I thought I mention it, since I like that feature of Linux alot, and someone may find it useful. I did suggest this scheme at one time to the ROOT team, but they didn't really respond. Cheers, Christian ----------------------------------------------------------- Holm Christensen Phone: (+45) 35 35 96 91 Sankt Hansgade 23, 1. th. Office: (+45) 353 25 305 DK-2200 Copenhagen N Web: www.nbi.dk/~cholm Denmark Email: cholm@nbi.dk
This archive was generated by hypermail 2b29 : Tue May 16 2000 - 11:14:16 EDT