Dear ROOT-ians,
for the past few days, I have been trying to produce a 32bit ROOT installation on a Kubuntu 11.04 x64 system. I took the following steps:
-
Replaced all occurrences of /usr/lib with /usr/lib32 in the configure script, as it does not look in the 32bit directory by default (is this necessary? is there an option to tell the script to search additional directories?)
-
Added “-L/usr/lib32 -L/usr/lib32/i386-linux-gnu -Werror” to OPTFLAGS in $ROOTSYS/config/Makefile.linux
-
Added “-L/usr/lib32/gcc-snapshot/lib -lquadmath” to F77FLAGS in $ROOTSYS/config/Makefile.linux
-
Installed a whole lot of libraries using getlibs. Separatly installed and compiled python and openssl in 32bit mode to get the correct header files.
I run the configure script as follows (configure32 is the version with /usr/lib replaced, as mentioned above):
./configure32 linux --with-python-incdir=/opt/python_i386/Python-2.7.1/Include --with-python-libdir=/opt/python_i386/Python-2.7.1 --with-ssl-libdir=/opt/openssl_i386/openssl-0.9.8o --with-ssl-incdir=/opt/openssl_i386/openssl-0.9.8o/include --with-xrootd-opts=--syslibs=/usr/lib32/i38-linux-gnu
which works. Afterwards, I do make and this also works. Executing root also works, but when I try start Eve with TEveManager::Create(), I get
/opt/root/root-52800c/bin/root.exe: symbol lookup error: /opt/root/root-52800c/lib/libASImage.so: undefined symbol: png_create_read_struct
I do not understand at all, why this does not work, there is libpng.so in /usr/lib32 (which was also found by the configure script). I found this post [url]libASImage undefined symbol png_create_read_struct which mentions the same problem, but obviously, I have already verified that the libpng.so is there. Also,
ldd libASImage.so
linux-gate.so.1 => (0xf771c000)
libfreetype.so.6 => /usr/lib32/libfreetype.so.6 (0xf75e1000)
libjpeg.so.62 => /usr/lib32/libjpeg.so.62 (0xf75c1000)
libtiff.so.4 => /usr/lib32/libtiff.so.4 (0xf7566000)
libXpm.so.4 => /usr/lib32/libXpm.so.4 (0xf7555000)
libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7546000)
libX11.so.6 => /usr/lib32/libX11.so.6 (0xf742a000)
libXft.so.2 => /usr/lib32/libXft.so.2 (0xf7416000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf732b000)
libm.so.6 => /lib32/libm.so.6 (0xf72e0000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf72c4000)
libc.so.6 => /lib32/libc.so.6 (0xf7167000)
libz.so.1 => /usr/lib32/libz.so.1 (0xf7151000)
libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7138000)
libdl.so.2 => /lib32/libdl.so.2 (0xf7134000)
libfontconfig.so.1 => /usr/lib32/libfontconfig.so.1 (0xf7105000)
libXrender.so.1 => /usr/lib32/libXrender.so.1 (0xf70fb000)
/lib/ld-linux.so.2 (0xf771d000)
libXau.so.6 => /usr/lib32/libXau.so.6 (0xf70f6000)
libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf70f0000)
libexpat.so.1 => /lib32/libexpat.so.1 (0xf70c6000)
So it seems, everything was linked correctly, but why does libASImage.so not need libpng.so? I am confused. Does anyone have any idea how to solve this? If you need any more information, I will be glad to provide it.
Thanks in advance for your help!
Best regards,
eDude