Re: [ROOT] Problem compiling root test programs

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Thu Apr 04 2002 - 00:24:51 MEST


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