Archived
This forum has been archived. Please start a new discussion on GitHub.
Building Ice-3.3.0 on CentOS 4.6
I'm new to Ice.
I have a fresh install of CentOS 4.6 (i386) with nptl-devel installed.
First, I downloaded the Ice-3.3.0 RHEL4 RPMs, installed them, and attempted to create the HelloWorld application described in the docs. I ran into some trouble, so I decided to try building Ice on my system, to see if that would work. Unfortunately, it does not.
I downloaded Ice-3.3.0.tar.gz, extracted it, changed into the Ice-3.3.0 directory, and typed "make".
It builds successfully for a while, then reaches this point:
make[3]: Entering directory `/home/stwhit/Ice-3.3.0/cpp/src/slice2cpp'
c++ -c -I. -I../../include -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g Gen.cpp
c++ -c -I. -I../../include -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g Main.cpp
rm -f ../../bin/slice2cpp
c++ -Wl,--enable-new-dtags -Wl,-rpath,/opt/Ice-3.3/lib -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g -L../../lib -o ../../bin/slice2cpp Gen.o Main.o -lSlice -lIceUtil -L/usr/lib/nptl -lpthread -lrt
/usr/bin/ld: cannot find /lib/tls/i486/libpthread.so.0
collect2: ld returned 1 exit status
make[3]: *** [../../bin/slice2cpp] Error 1
make[3]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp/src/slice2cpp'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp/src'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp'
make: *** [all] Error 1
Any ideas why I'm receiving this error? Thanks in advance.
I have a fresh install of CentOS 4.6 (i386) with nptl-devel installed.
First, I downloaded the Ice-3.3.0 RHEL4 RPMs, installed them, and attempted to create the HelloWorld application described in the docs. I ran into some trouble, so I decided to try building Ice on my system, to see if that would work. Unfortunately, it does not.
I downloaded Ice-3.3.0.tar.gz, extracted it, changed into the Ice-3.3.0 directory, and typed "make".
It builds successfully for a while, then reaches this point:
make[3]: Entering directory `/home/stwhit/Ice-3.3.0/cpp/src/slice2cpp'
c++ -c -I. -I../../include -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g Gen.cpp
c++ -c -I. -I../../include -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g Main.cpp
rm -f ../../bin/slice2cpp
c++ -Wl,--enable-new-dtags -Wl,-rpath,/opt/Ice-3.3/lib -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g -L../../lib -o ../../bin/slice2cpp Gen.o Main.o -lSlice -lIceUtil -L/usr/lib/nptl -lpthread -lrt
/usr/bin/ld: cannot find /lib/tls/i486/libpthread.so.0
collect2: ld returned 1 exit status
make[3]: *** [../../bin/slice2cpp] Error 1
make[3]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp/src/slice2cpp'
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp/src'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp'
make: *** [all] Error 1
Any ideas why I'm receiving this error? Thanks in advance.
0
Comments
-
Hi Stuart,
You need to install the nptl-devel package on CentOS 4.6 as mentioned in the INSTALL.LINUX file from you Ice source distribution.
Cheers,
Benoit.0 -
Hi Benoit,
Thanks for the response. Notice in my original post I stated I have nptl-devel installed.
I have a fresh install of CentOS 4.6 (i386) with nptl-devel installed.
As proof:
$ rpm -q nptl-devel
nptl-devel-2.3.4-2.39
Any other ideas?0 -
Hi,
Sorry, I didn't notice that you had nptl-devel installed. You have installed the nptl-devel package from your CentOS 4.6 distribution, right?
I'm afraid I don't understand this error and why the linker is looking for /lib/tls/i486/libpthread.so.0. On my CentOS 4.6 installation, libpthread.so.0 is located in /lib/tls:[benoit@xps cpp]$ ldd lib/libSlice.so ... libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00111000) ... [benoit@xps cpp]$ ldd bin/slice2cpp ... libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00111000) ...
It sounds like an issue with your OS or compiler installation. You could try compiling and linking a sample program with -lpthread (with and without -L/usr/lib/nptl) and see if it works.
Cheers,
Benoit.0 -
CentOS 4.6 comes with two versions of the nptl RPM.
$ ls -l /media/cdrom/CentOS/RPMS/nptl* -r--r--r-- 2 root root 905821 Nov 18 2007 /media/cdrom/CentOS/RPMS/nptl-devel-2.3.4-2.39.i386.rpm -r--r--r-- 2 root root 947773 Nov 18 2007 /media/cdrom/CentOS/RPMS/nptl-devel-2.3.4-2.39.i686.rpm
When I installed the i386 version of the RPM, I received the error.making all in slice2cpp make[3]: Entering directory `/home/stwhit/Ice-3.3.0/cpp/src/slice2cpp' c++ -c -I. -I../../include -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g Gen.cpp c++ -c -I. -I../../include -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g Main.cpp rm -f ../../bin/slice2cpp c++ -Wl,--enable-new-dtags -Wl,-rpath,/opt/Ice-3.3/lib -ftemplate-depth-128 -Wall -D_REENTRANT -I/usr/include/nptl -fPIC -g -L../../lib -o ../../bin/slice2cpp Gen.o Main.o -lSlice -lIceUtil -L/usr/lib/nptl -lpthread -lrt /usr/bin/ld: cannot find /lib/tls/i486/libpthread.so.0 collect2: ld returned 1 exit status make[3]: *** [../../bin/slice2cpp] Error 1 make[3]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp/src/slice2cpp' make[2]: *** [all] Error 1 make[2]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp/src' make[1]: *** [all] Error 1 make[1]: Leaving directory `/home/stwhit/Ice-3.3.0/cpp' make: *** [all] Error 1
Next, I uninstalled the i386 version of the nptl RPM and installed the i686 version, and now the compile is working.
So, I'm curious - is this expected? Which version of the RPM do you have installed?
Thanks again!0 -
Hi,
Yes, I think it's expected. Most likely the architecture of the nptl-devel you install needs to match the architecture of the glibc package. The installer probably installed the i686 glibc RPM on your machine so you need to use the i686 nptl-devel. ("rpm -qil glibc | grep pthread" should show the pthread library in a i686 directory).
Cheers,
Benoit.0