Hi Jesus, This time it lasted longer, but ended with:
/bin/sh: line 1: ./sysprobe: No such file or directory make[1]: Entering directory `/home/duan/ss3/liblvpt' /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-g++ -c lvpt.cpp lvpt.cpp:44: zlib.h: No such file or directory make[1]: *** [lvpt.o] Error 1 make[1]: Leaving directory `/home/duan/ss3/liblvpt' make: *** [liblvpt/liblvpt.a] Error 2 lvpt.cpp is in a subdirectory $SMARTS_HOME/liblvpt, and it also includes zlib.h. Shall we make some changes to liblvpt/Makefile to let zlib.h be included? Thanks, Lide 2010/1/7 Jesus Hernandez Tapia <[email protected]> > Hi Lide, > > In the Makefile, the definition of FFLAGS should be : > > FFLAGS = -I/opt/zlib-1.2.3/include (the I in -I must be a capital "i", > not a lowercase "l") > > please try with that change. > > Regards, > > Jesus > > > > 2010/1/7 Lide Duan <[email protected]>: > > Hi Jesus, > > > > Sorry to bother again, I did what you suggested, but looks like the > linker > > cannot find the zlib include directory: > > > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-gcc > > -l/opt/zlib-1.2.3/include -o sysprobe sysprobe.c > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/ld: > > cannot find -l/opt/zlib-1.2.3/include > > collect2: ld returned 1 exit status > > > > Let me show some details of my system, just in case I am not missing > > anything else: > > 1. I installed zlib in /opt/zlib-1.2.3 > > $ls /opt/zlib-1.2.3/* > > /opt/zlib-1.2.3/include: > > zconf.h zlib.h > > > > /opt/zlib-1.2.3/lib: > > libz.a > > > > /opt/zlib-1.2.3/share: > > man > > > > 2. In my crosstool built gcc directory: > > $ls /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/* > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/cpp > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/gcov > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-addr2line > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-ar > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-as > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-c++ > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-c++filt > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-g++ > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-gcc > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-gprof > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-ld > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-nm > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-objcopy > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-objdump > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-protoize > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-ranlib > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-readelf > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-size > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-strings > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-strip > > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-unprotoize > > > > Note that in the above directory, there is no "ld" but a > > "i686-unknown-linux-gnu-ld", but the error message always points to > > /opt/crosstool/.../bin/ld. Does it matter? > > > > 3. I will also send my Makefile to you. > > > > Thanks, > > Lide > > > > 2010/1/7 Jesus Hernandez Tapia <[email protected]> > >> > >> Hi Lide, > >> > >> I was able to reproduce the problem and I think I got a solution: > >> > >> 1) The linker being used by default by the crosstool built gcc is the > >> correct one. so no change here. > >> > >> 2) Build zlib with the crosstool built gcc and glibc: > >> > >> 2a) download the zlib source code from here: > >> http://www.zlib.net/zlib-1.2.3.tar.gz > >> > >> 2b) extract it, configure it and build it as follows: > >> > >> $ > >> > CC=/opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-gcc > >> ./configure --prefix=<Path to zlib> > >> > >> $ make > >> $make install > >> > >> 3) Search for and modify the following environment variables in the > >> TurboSMARTS makefile: > >> > >> MLIBS = `./sysprobe -libs` -L<path to zlib>/lib -lm -lz > >> > >> FFLAGS = -I<Path to zlib>/include (May not be the best place to set > >> the include directory though, but lets try it for now) > >> > >> > >> 4) Rebuild TurboSMARTS > >> > >> > >> I hope this works well for you. > >> > >> Regards, > >> > >> Jesus > >> > >> 2010/1/6 Lide Duan <[email protected]>: > >> > Jesus, > >> > > >> > First of all, as you suggested, I added -L/usr/lib into the makefile. > >> > Here > >> > is what is shown: > >> > > >> > > >> > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/ld:/usr/lib/libc.so: > >> > file format not recognized; treating as linker script > >> > > >> > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/ld:/usr/lib/libc.so:5: > >> > parse error > >> > collect2: ld returned 1 exit status > >> > > >> > I also noticed that there is no "ld" in the above directory (i.e. > >> > /opt/crosstool/.../bin), which only contains a > >> > "i686-unknown-linux-gnu-ld". > >> > "ld" is in /usr/bin. I suspect that I used a wrong linker? How can I > >> > tell > >> > gcc to use /usr/bin/ld? > >> > > >> > The followings are the related content from my Makefile: > >> > > >> > CC = > >> > > >> > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-gcc > >> > CXX = > >> > > >> > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-g++ > >> > OFLAGS = -O3 -Wall > >> > MFLAGS = `./sysprobe -flags` > >> > MLIBS = `./sysprobe -libs` -L/usr/lib -lm -lz > >> > ENDIAN = `./sysprobe -s` > >> > MAKE = make > >> > AR = ar qcv > >> > AROPT = > >> > RANLIB = ranlib > >> > RM = rm -f > >> > RMDIR = rm -f > >> > LN = ln -s > >> > LNDIR = ln -s > >> > DIFF = diff > >> > OEXT = o > >> > LEXT = a > >> > EEXT = > >> > CS = ; > >> > X=/ > >> > > >> > > >> > Thank you very much!! > >> > Lide > >> > > >> > 2010/1/6 Jesus Hernandez Tapia <[email protected]> > >> >> > >> >> Lide, > >> >> > >> >> One more thing I noticed is that you are using > >> >> > >> >> > >> >> > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/ld > >> >> , and it should be /usr/bin/ld. > >> >> > >> >> Could you please insert the part of the Makefile where you define the > >> >> environment variables for your build?, then I can take a look to it. > >> >> > >> >> Jesus > >> >> > >> >> 2010/1/6 Jesus Hernandez Tapia <[email protected]>: > >> >> > Hi Lide, > >> >> > > >> >> > I would like to suggest one more thing: > >> >> > > >> >> > Please find in the Makefile the following line: > >> >> > > >> >> > MLIBS = `./sysprobe -libs` -lm -lz > >> >> > > >> >> > and change it to : > >> >> > > >> >> > MLIBS = `./sysprobe -libs` -L/usr/lib -lm -lz > >> >> > > >> >> > Rebuild the application after the change to Makefile > >> >> > > >> >> > Regards, > >> >> > > >> >> > Jesus > >> >> > > >> >> > 2010/1/6 Lide Duan <[email protected]>: > >> >> >> Yes, they are there...I found both files in /usr/lib. Actually, > >> >> >> other > >> >> >> gcc > >> >> >> versions I tried seemed to link correctly although they could not > >> >> >> compile > >> >> >> successfully at the end. I have no idea why the crosstool built > gcc > >> >> >> cannot > >> >> >> link to zlib... > >> >> >> > >> >> >> 2010/1/6 Jesus Hernandez Tapia <[email protected]> > >> >> >>> > >> >> >>> Lida, > >> >> >>> > >> >> >>> Do you have the library files installed in your system? Please > >> >> >>> search > >> >> >>> for libz in /usr/lib. There should be files like libz.so and > >> >> >>> libz.a. > >> >> >>> > >> >> >>> If the library is not there, you may need to install it. > >> >> >>> > >> >> >>> Regards, > >> >> >>> > >> >> >>> Jesus > >> >> >>> > >> >> >>> > >> >> >>> > >> >> >>> 2010/1/6 Lide Duan <[email protected]>: > >> >> >>> > Hi Jesus, > >> >> >>> > > >> >> >>> > I think I successfully used the crosstool to build gcc-2.95.3 > and > >> >> >>> > glibc-2.2.5, as you suggested. But when I compiled SMARTS with > >> >> >>> > the > >> >> >>> > new > >> >> >>> > installed gcc, it gave me the following error: > >> >> >>> > > >> >> >>> > > >> >> >>> > > >> >> >>> > > >> >> >>> > > /opt/crosstool/gcc-2.95.3-glibc-2.2.5/i686-unknown-linux-gnu/i686-unknown-linux-gnu/bin/ld: > >> >> >>> > cannot find -lz > >> >> >>> > collect2: ld returned 1 exit status > >> >> >>> > > >> >> >>> > Looks like the linker cannot link to zlib? Do you have any idea > >> >> >>> > about > >> >> >>> > this? > >> >> >>> > Thank you! > >> >> >>> > > >> >> >>> > Lide > >> >> >>> > > >> >> >>> > 2010/1/6 Jesus Hernandez Tapia <[email protected]> > >> >> >>> >> > >> >> >>> >> Lide, > >> >> >>> >> > >> >> >>> >> If I remember correctly I used glibc version 2.2.5. > >> >> >>> >> Please let us know if this version works for you. > >> >> >>> >> > >> >> >>> >> Regards, > >> >> >>> >> > >> >> >>> >> Jesus > >> >> >>> >> > >> >> >>> >> 2010/1/6 Lide Duan <[email protected]>: > >> >> >>> >> > Hi Jesus, > >> >> >>> >> > > >> >> >>> >> > Thank you for your reply! I suspect that the error I > >> >> >>> >> > encountered > >> >> >>> >> > is > >> >> >>> >> > due > >> >> >>> >> > to > >> >> >>> >> > the glibc version. The current one in my machine is 2.5, but > I > >> >> >>> >> > believe > >> >> >>> >> > gcc > >> >> >>> >> > 2.95.3 used an older version. Could you please tell me the > >> >> >>> >> > glibc > >> >> >>> >> > version > >> >> >>> >> > you > >> >> >>> >> > used with gcc 2.95.3 to compile SMARTS? (Is it something > >> >> >>> >> > 2.3.x?) > >> >> >>> >> > > >> >> >>> >> > Thanks, > >> >> >>> >> > Lide > >> >> >>> >> > > >> >> >>> >> > 2010/1/6 Jesus Hernandez Tapia <[email protected]> > >> >> >>> >> >> > >> >> >>> >> >> Hi Lide, > >> >> >>> >> >> > >> >> >>> >> >> You are right, to compile SMARTS you need gcc version > 2.95.3. > >> >> >>> >> >> > >> >> >>> >> >> It has been a long time since I did this, but I remember I > >> >> >>> >> >> used > >> >> >>> >> >> "crosstool" to install the required version of GCC along > with > >> >> >>> >> >> its > >> >> >>> >> >> corresponding version of glibc. After this, SMARTS compiled > >> >> >>> >> >> with > >> >> >>> >> >> no > >> >> >>> >> >> problems. > >> >> >>> >> >> > >> >> >>> >> >> Here is the link to crosstool: > >> >> >>> >> >> http://www.kegel.com/crosstool/ > >> >> >>> >> >> > >> >> >>> >> >> Regards. > >> >> >>> >> >> > >> >> >>> >> >> 2010/1/5 Lide Duan <[email protected]>: > >> >> >>> >> >> > Thank you for the info, Zhibin! > >> >> >>> >> >> > > >> >> >>> >> >> > Are you sure it is 2.9.53 but not 2.95.3? Since 2.95.3 is > >> >> >>> >> >> > the > >> >> >>> >> >> > gcc > >> >> >>> >> >> > 2.9x > >> >> >>> >> >> > version I can find on GNU website. I could not find any > GCC > >> >> >>> >> >> > version > >> >> >>> >> >> > as > >> >> >>> >> >> > 2.9.53. (If it turns out to be 2.9.53, is there anyway > for > >> >> >>> >> >> > me > >> >> >>> >> >> > to > >> >> >>> >> >> > download > >> >> >>> >> >> > it?) > >> >> >>> >> >> > > >> >> >>> >> >> > Unfortunately, gcc 2.95.3 still gave me the same > error...Is > >> >> >>> >> >> > there > >> >> >>> >> >> > any > >> >> >>> >> >> > known > >> >> >>> >> >> > gcc version that is for sure compatible with TurboSMARTS? > >> >> >>> >> >> > > >> >> >>> >> >> > Thanks, > >> >> >>> >> >> > Lide > >> >> >>> >> >> > > >> >> >>> >> >> > 2010/1/5 yuzhibin <[email protected]> > >> >> >>> >> >> >> > >> >> >>> >> >> >> Hi > >> >> >>> >> >> >> > >> >> >>> >> >> >> You need to use gcc 2.9.53 to compile the > TurboSMARTS. > >> >> >>> >> >> >> Good > >> >> >>> >> >> >> luck! > >> >> >>> >> >> >> > >> >> >>> >> >> >> > >> >> >>> >> >> >> > >> >> >>> >> >> >> Best regards, > >> >> >>> >> >> >> > >> >> >>> >> >> >> Zhibin > >> >> >>> >> >> >> > >> >> >>> >> >> >> > >> >> >>> >> >> >> > >> >> >>> >> >> >> ________________________________ > >> >> >>> >> >> >> > >> >> >>> >> >> >> 发件人: Lide Duan [mailto:[email protected]] > >> >> >>> >> >> >> 发送时间: Tuesday, January 05, 2010 8:35 AM > >> >> >>> >> >> >> 收件人: [email protected] > >> >> >>> >> >> >> 主题: What was the gcc/g++ version used to build > >> >> >>> >> >> >> TurboSMARTS? > >> >> >>> >> >> >> > >> >> >>> >> >> >> > >> >> >>> >> >> >> > >> >> >>> >> >> >> Hello, > >> >> >>> >> >> >> > >> >> >>> >> >> >> I am trying to compile the TurboSMARTS codebase on Suse > >> >> >>> >> >> >> Linux > >> >> >>> >> >> >> 10.2. > >> >> >>> >> >> >> I > >> >> >>> >> >> >> tried two versions of gcc/g++: 3.4.1 and 4.1.2, but they > >> >> >>> >> >> >> all > >> >> >>> >> >> >> gave > >> >> >>> >> >> >> the > >> >> >>> >> >> >> following errors: > >> >> >>> >> >> >> > >> >> >>> >> >> >> /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 > >> >> >>> >> >> >> section > >> >> >>> >> >> >> .tbss > >> >> >>> >> >> >> mismatches non-TLS reference in eval.o > >> >> >>> >> >> >> /lib/libc.so.6: could not read symbols: Bad value > >> >> >>> >> >> >> collect2: ld returned 1 exit status > >> >> >>> >> >> >> > >> >> >>> >> >> >> Any idea about this? Could anyone tell me the exact > >> >> >>> >> >> >> version > >> >> >>> >> >> >> used > >> >> >>> >> >> >> to > >> >> >>> >> >> >> compile TurboSMARTS? > >> >> >>> >> >> >> > >> >> >>> >> >> >> Thanks, > >> >> >>> >> >> >> Lide > >> >> >>> >> >> > > >> >> >>> >> > > >> >> >>> >> > > >> >> >>> > > >> >> >>> > > >> >> >> > >> >> >> > >> >> > > >> > > >> > > > > > >
