Hi Christian, On Tue, 02 Apr 2002 19:50:08 +0100 cstrato@EUnet.at wrote concerning "[ROOT] Problem compiling root test programs": > Dear Rooters > > Due to diverse problems I had to reformat my HD and have now > installed YellowDog Linux on my PowerBook since LinuxPPC no > longer exists. Ah, so you got around to do it :-) I'm just sad you didn't choose Debian GNU/Linux for PPC instead. > I could successfully compile root_v3.03.02 and run the tutorials. > However, now I am not able to compile the test programs (or > my own programs) due to the following error: > [strato@localhost test]$ make > Generating dictionary EventDict.cxx... > rootcint: error while loading shared libraries: libCint.so: > cannot load shared object file: No such file or directory > make: *** [EventDict.cxx] Error 127 Erh, perhaps a bit more information would be good. Especially how did you configure the source tree (exactly what options did you use, in particular did you use --enable-rpath?). Try also `ldd /home/strato/rt/root/bin/rootcint', and look for a line like libCint.so => <path> or `not found' > Since I had the same problem some time ago with LinuxPPC 2000 > due to an error in the make file, see: > http://root.cern.ch/root/roottalk/roottalk01/3032.html > I suppose that my current problems may be caused by a similar > problem, maybe once again in the following part: > ifeq ($(ARCH),linuxppcegcs) > # MkLinux with egcs/glibc > CXX = g++ > CXXFLAGS = -O -Wall -fPIC > LD = g++ > LDFLAGS = -O > SOFLAGS = -shared > #SOFLAGS = -shared -Wl,-soname > endif If the linker on PPC is the same as on i386, then I guess it should support the -soname flag. However, I seem to remember, that on a PPC you have a different last part (not `.so', but `.dyn'?, or is it only when using MacOSX?) on shared library names. The argument to -soname when creating the library _must_ be the name of the library made, or a symlink to that library. One think that bothers me a bit, is the absence of the `-rdynamic' option in `CILIBS' and `SYSLIBS' in `config/Makefile.linuxppcegcs'. Anyway, you should check if there is a file (or symlink) called `libCore.so' somewhere where `ld.so' looks for libraries (all directories listed in /etc/ld.so.conf, LD_LIBRARY_PATH, and rpath set on executables). You should also check if you linker (probably `ld' supports -soname): prompt% ld --help ... -h FILENAME, -soname FILENAME Set internal name of shared library > Could it be that SOFLAGS need a different definition with > YellowDog Linux 2.1 than with LinuxPPC 2000? > > The following shows my PATH settings: > [strato@localhost test]$ echo $PATH > /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/strato/bin:/home/strato/rt/root/bin > > [strato@localhost test]$ echo $LD_LIBRARY_PATH > :/home/strato/rt/root/lib Try taking out the `:' of the LD_LIBRARY_PATH. When you set environment variables, always check them first, csh: if (! $?LD_LIBRARY_PATH) then setenv LD_LIBRARY_PATH /home/strato/rt/root/lib else setenv LD_LIBRARY_PATH /home/strato/rt/root/lib:${LD_LIBRARY_PATH} endif sh: if test "x$LD_LIBRARY_PATH" = "x" ; then export LD_LIBRARY_PATH=/home/strato/rt/root/lib else export LD_LIBRARY_PATH=/home/strato/rt/root/lib:${LD_LIBRARY_PATH} fi or use the `path' utility, if installed: csh: setenv LD_LIBRARY_PATH `path -var LD_LIBRARY_PATH -b /home/strato/rt/root/lib` sh: export LD_LIBRARY_PATH=`path -var LD_LIBRARY_PATH -b /home/strato/rt/root/lib` In your recent reply you said: (I do not understand why Linux != Linux !!!) Well, some parts of the OS (and not just the kernel) are chip dependent. For example, are characters signed?, how long is a word (int)?, and so on. The things _will_ propegate down to the source code. Yours, Christian Holm Christensen ------------------------------------------- Address: Sankt Hansgade 23, 1. th. Phone: (+45) 35 35 96 91 DK-2200 Copenhagen N Cell: (+45) 28 82 16 23 Denmark Office: (+45) 353 25 305 Email: cholm@nbi.dk Web: www.nbi.dk/~cholm
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:48 MET