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
>>> >> >> >>> >> >> >
>>> >> >> >>> >> >
>>> >> >> >>> >> >
>>> >> >> >>> >
>>> >> >> >>> >
>>> >> >> >>
>>> >> >> >>
>>> >> >> >
>>> >> >
>>> >> >
>>> >
>>> >
>>
>
>

Reply via email to