Hi Lide, please set the following environment variable before running the simulator:
$ export LD_ASSUME_KERNEL=2.4.1 It is strange, I don't remember having too many problem three or four years ago when I used TurboSMARTS, maybe now there are more incompatibilities (OS, gcc, etc) than at that time. Anyway, I hope this solve your problem Regards, Jesus 2010/1/7 Lide Duan <[email protected]>: > Some updates... > > Regarding the issue that lvpt.cpp cannot find zlib.h, I added > "-I/opt/zlib-1.2.3/include" into liblvpt/Makefile, and now the entire > program can be built. > > However, if I execute the compiled binary, e.g. > $./sim-outorder > ./sim-outorder: relocation error: ./sim-outorder: symbol errno, version > GLIBC_2.0 not defined in file libc.so.6 with link time reference > > Apparently, something is still not right... > > Lide > > 2010/1/7 Lide Duan <[email protected]> >> >> 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 >>> >> >> >>> >> >> > >>> >> >> >>> >> > >>> >> >> >>> >> > >>> >> >> >>> > >>> >> >> >>> > >>> >> >> >> >>> >> >> >> >>> >> >> > >>> >> > >>> >> > >>> > >>> > >> > >
