ROOT 5.08 solaris 8 problem with libXpm

Hi,

now I installed ROOT 5.08 on our solaris machines (running Solaris 5.8 - confusing similiar version numbers) and again run into problem when trying to use it. I get a missing library libXpm.so.4.10.
I already posted the same problem for ROOT 5.06 a few days ago - but no responses!?

The library is present on this machines but under /usr/local/lib and only in version 4.11. Also linking this version into the ROOT/lib dir. I can start ROOT but a simple test for graphics funcionality brings up:

root [0] new TBrowser()
dlopen error: ld.so.1: /opt2/ROOT.5.08.00-SunOS5.8/bin/root.exe: fatal: relocation error: file /opt2/ROOT5-SunOS5.8/lib/libASImage.so: symbol TIFFReadRGBAStrip: referenced symbol not found
Load Error: Failed to load Dynamic link library /opt2/ROOT5-SunOS5.8/lib/libASImage.so
Error in TGComboBox::TGComboBox: arrow_down.xpm not found
Error in TPluginHandler::SetupCallEnv: class TASImage not found in plugin ASImage
Error in TGVScrollBar::TGHScrollBar: arrow_*.xpm not found
Error in TGTreeLBEntry::TGTreeLBEntry: icon not found for entry Current dir

*** Break *** segmentation violation

If I can not get this solved we (DESY VUV-FEL teams) will not go to ROOT5 now!

I guess this issue can be solved, but I need to do a decision today, since we are staring a user run this night!

Hi,

  • did you compile and install ROOT from sources?
  • which compiler (CC, gcc)?
  • do you have tiff library installed?

Regards. Valeriy

Raimund,

You do not indicate if you started from the ROOT binary distribution
or if you installed yourself from source.

Solaris5.8 has been a nightmare for us because of confusing
libraries in /usr/lib or in /usr/local/lib.
You found the problem with libXpm and solved it.
However the main problem is with the libtiff library.
This library is a very old version where some important functions
are missing, in particular TIFFReadRGBStrip that is called
by the libAfterImage library.

It is unlikely that you will need the services of this function,
unless you want to import graphics pictures.

If you have imported the binary tar file for Solaris5.8, you can
import a newer version where I have removed the call to this function.
The new module should work with your obsolete libtiff libraries.

In case you installed from source, do the following:
-cd $ROOTSYS/asimage/src/libAfterImage
-edit import.c commenting the block of code with TIFFReadRGBStrip
-cc -O3 -DNO_DEBUG_OUTPUT -I/usr/local/include -I/usr/local/include -I…/…/…/freetype/src/freetype-2.1.9/include -I/usr/openwin/include -c import.c -o import.o
ar clq libAfterImage.a zlib/adler32.o zlib/compress.o zlib/crc32.o
zlib/gzio.o zlib/uncompr.o zlib/deflate.o zlib/trees.o
zlib/zutil.o zlib/inflate.o zlib/infback.o zlib/inftrees.o
zlib/inffast.o libpng/png.o libpng/pngset.o libpng/pngget.o
libpng/pngrutil.o libpng/pngtrans.o libpng/pngwutil.o libpng/pngread.o
libpng/pngrio.o libpng/pngwio.o libpng/pngwrite.o libpng/pngrtran.o
libpng/pngwtran.o libpng/pngmem.o libpng/pngerror.o libpng/pngpread.o
libpng/pnggccrd.o libungif/dgif_lib.o libungif/egif_lib.o
libungif/gifalloc.o libungif/gif_err.o afterbase.o asimage.o ascmap.o
asfont.o asimagexml.o asstorage.o asvisual.o blender.o bmp.o char2uni.o
draw.o export.o imencdec.o import.o pixmap.o transform.o ungif.o xcf.o
ximage.o xpm.o
ranlib libAfterImage.a

-cd $ROOTSYS
-cp asimage/src/libAfterImage/libAfterImage.a lib/libAfterImage.a
-rm lib/libASImage.so
-gmake

Rene

Hi,
more questions:

1 nm --demangle | grep TIFFReadRGBAStrip
2 ldd $ROOTSYS/lib/libASImage.so

Regards. Valeriy

[quote=“Valeriy Onuchin”]Hi,

  • did you compile and install ROOT from sources?
  • which compiler (CC, gcc)?
  • do you have tiff library installed?

Regards. Valeriy[/quote]

Hi Valeriy,

for ROOT 5.08 I did use the binary version (I compiled vers. 5.06 on Solaris 10 myself and here everything is fine - posted that in the list two days ago).
I also tried to compile from source on Solaris 8 but here egrep wasn’t up to date to do the build (tried /usr/bin/egrep and /usr/xpg4/bin/egrep both not ok for configure).
On both solaris systems the compiler was CC 5.3.
About the tiff library: On solaris 8 I have /usr/local/lib/libtiff.so.3.5.7
for solaris 10 I have /usr/lib/libtiff.so.3

Regards.
Raimund

what is
ldd $ROOTSYS/lib/libASImage.so ?

[quote=“brun”]Raimund,

You do not indicate if you started from the ROOT binary distribution
or if you installed yourself from source.

Solaris5.8 has been a nightmare for us because of confusing
libraries in /usr/lib or in /usr/local/lib.
You found the problem with libXpm and solved it.
However the main problem is with the libtiff library.
This library is a very old version where some important functions
are missing, in particular TIFFReadRGBStrip that is called
by the libAfterImage library.

It is unlikely that you will need the services of this function,
unless you want to import graphics pictures.

If you have imported the binary tar file for Solaris5.8, you can
import a newer version where I have removed the call to this function.
The new module should work with your obsolete libtiff libraries.

In case you installed from source, do the following:
-cd $ROOTSYS/asimage/src/libAfterImage
-edit import.c commenting the block of code with TIFFReadRGBStrip
-cc -O3 -DNO_DEBUG_OUTPUT -I/usr/local/include -I/usr/local/include -I…/…/…/freetype/src/freetype-2.1.9/include -I/usr/openwin/include -c import.c -o import.o
ar clq libAfterImage.a zlib/adler32.o zlib/compress.o zlib/crc32.o
zlib/gzio.o zlib/uncompr.o zlib/deflate.o zlib/trees.o
zlib/zutil.o zlib/inflate.o zlib/infback.o zlib/inftrees.o
zlib/inffast.o libpng/png.o libpng/pngset.o libpng/pngget.o
libpng/pngrutil.o libpng/pngtrans.o libpng/pngwutil.o libpng/pngread.o
libpng/pngrio.o libpng/pngwio.o libpng/pngwrite.o libpng/pngrtran.o
libpng/pngwtran.o libpng/pngmem.o libpng/pngerror.o libpng/pngpread.o
libpng/pnggccrd.o libungif/dgif_lib.o libungif/egif_lib.o
libungif/gifalloc.o libungif/gif_err.o afterbase.o asimage.o ascmap.o
asfont.o asimagexml.o asstorage.o asvisual.o blender.o bmp.o char2uni.o
draw.o export.o imencdec.o import.o pixmap.o transform.o ungif.o xcf.o
ximage.o xpm.o
ranlib libAfterImage.a

-cd $ROOTSYS
-cp asimage/src/libAfterImage/libAfterImage.a lib/libAfterImage.a
-rm lib/libASImage.so
-gmake

Rene[/quote]

Hi Rene,

uff that is exactly what also confused me (the /usr/lib and /usr/local/lib stuff - see also me reply to Valeri’s mail).
As stated above I did use the binary version since I’m having trouble compiling it. Here egrep on Solaris 8 is not ok for configure. If I get you right, you got a newer version (binary?) where the problem with the libtiff is not appearing? Or do I have to build it myself (in this case the egrep problem will be the remaining problem)?

So I guess I could try the mentioned patch - but anyhow I do not know how to solve the problem with egrep. I also looked for an update of egrep, but could not find a newer version for Solaris 8. But since you where able to build a solaris 8 binary, you must have a way to work around this (since the above mentioned will just fix the missing/wrong library problem)?!

Greetings,
Raimund

[quote=“Valeriy Onuchin”]what is
ldd $ROOTSYS/lib/libASImage.so ?[/quote]
It gives:

    libjpeg.so.62 =>         /usr/local/lib/libjpeg.so.62
    libpng.so.3 =>   /usr/local/lib/libpng.so.3
    libz.so =>       /usr/lib/libz.so
    libXpm.so.4.10 =>        /opt2/ROOT5-SunOS5.8/lib/libXpm.so.4.10
    libX11.so.4 =>   /usr/lib/libX11.so.4
    libCrun.so.1 =>  /usr/lib/libCrun.so.1
    libCstd.so.1 =>  /usr/lib/libCstd.so.1
    libc.so.1 =>     /usr/lib/libc.so.1
    libsunmath.so.1 =>       /usr/lib/libsunmath.so.1
    libm.so.1 =>     /usr/lib/libm.so.1
    libdl.so.1 =>    /usr/lib/libdl.so.1
    libXext.so.0 =>  /usr/lib/libXext.so.0
    libsocket.so.1 =>        /usr/lib/libsocket.so.1
    libnsl.so.1 =>   /usr/lib/libnsl.so.1
    libmp.so.2 =>    /usr/lib/libmp.so.2
    /usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
    /usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1

Any more insides?

strange, it does not depend on libtiff :confused:

what is
nm --demangle $ROOTSYS/lib/libASImage.so | grep TIFFReadRGBAStrip

Valeriy, Raimund,

The problem is not in libASImage, but libAfterImage.a.

I have rebuilt the tar file for Solaris5.8 without libtiff (available on the web)
such that Solaris users with the obsolete libtiff will be able to work
with 5.08.

Rene

[quote=“Valeriy Onuchin”]strange, it does not depend on libtiff :?

what is
nm --demangle $ROOTSYS/lib/libASImage.so | grep TIFFReadRGBAStrip[/quote]

it gives:
1874:[4730] | 0| 0|FUNC |GLOB |0 |UNDEF |TIFFReadRGBAStrip

yes - I’m pretty confused about the dependecies between libASImage and libtiff also.

Thanks to all.
We’re going to drop TIFF format support to avoid such cases as this
and because libtiff is rarely installed on many OSs.

I’m just curious how often TIFF images are used around?

Also many thanks Rene and Valeri!

I will try as soon as possible!

But to the tiff support I’m not sure. We are heavily using tiff for saving beam (electrons and photons) images - fortunately not with ROOT (MATLAB) up till now . But anyhow I think tiff is still a widly used format to preserve the full information of grabed camera images.
Whats about LHC? No image recorded in TIFF?

Raimund

Raimund,

The problem with TIFF is only on Solaris5.8. This library is OK
with Solaris5.9 or newer.

Rene