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