Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm trying to install ICU 49 on CentOS release 5.8 (Final). The only way I know how to do it is compiling by source.

I do the following:

./runConfigureICU Linux
gmake

And get the following error towards the end of the compile:

make[2]: Leaving directory `/root/icu/icu/source/tools/toolutil'
make[1]: Making `all' in `ctestfw'
make[2]: Entering directory `/root/icu/icu/source/tools/ctestfw'
generating dependency information for ucln_ct.c
generating dependency information for uperf.cpp
generating dependency information for datamap.cpp
generating dependency information for testdata.cpp
generating dependency information for tstdtmod.cpp
generating dependency information for ctest.c
make[2]: Leaving directory `/root/icu/icu/source/tools/ctestfw'
make[2]: Entering directory `/root/icu/icu/source/tools/ctestfw'
gcc -D_REENTRANT   -I../../common -I../../i18n -I./../toolutil -I.   -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long   -c -DPIC -fPIC -o ctest.o ctest.c
g++ -D_REENTRANT   -I../../common -I../../i18n -I./../toolutil -I.   -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long   -c -DPIC -fPIC -o tstdtmod.o tstdtmod.cpp
g++ -D_REENTRANT   -I../../common -I../../i18n -I./../toolutil -I.   -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long   -c -DPIC -fPIC -o testdata.o testdata.cpp
g++ -D_REENTRANT   -I../../common -I../../i18n -I./../toolutil -I.   -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long   -c -DPIC -fPIC -o datamap.o datamap.cpp
g++ -D_REENTRANT   -I../../common -I../../i18n -I./../toolutil -I.   -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long   -c -DPIC -fPIC -o uperf.o uperf.cpp
gcc -D_REENTRANT   -I../../common -I../../i18n -I./../toolutil -I.   -DU_ATTRIBUTE_DEPRECATED= -DT_CTEST_IMPLEMENTATION -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long   -c -DPIC -fPIC -o ucln_ct.o ucln_ct.c
g++ -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long     -shared -Wl,-Bsymbolic -Wl,-soname -Wl,libicutest.so.49 -o libicutest.so.49.1.2 ctest.o tstdtmod.o testdata.o datamap.o uperf.o ucln_ct.o -L../../lib -licutu -L../../lib -licui18n -L../../lib -licuuc -L../../stubdata -licudata -lpthread -ldl -lm
rm -f libicutest.so.49 && ln -s libicutest.so.49.1.2 libicutest.so.49
rm -f libicutest.so && ln -s libicutest.so.49.1.2 libicutest.so
make[2]: Leaving directory `/root/icu/icu/source/tools/ctestfw'
make[1]: Making `all' in `makeconv'
make[2]: Entering directory `/root/icu/icu/source/tools/makeconv'
generating dependency information for gencnvex.c
generating dependency information for genmbcs.cpp
generating dependency information for ucnvstat.c
generating dependency information for makeconv.c
make[2]: Leaving directory `/root/icu/icu/source/tools/makeconv'
make[2]: Entering directory `/root/icu/icu/source/tools/makeconv'
gcc -D_REENTRANT   -I../../common -I./../toolutil -DU_ATTRIBUTE_DEPRECATED= -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long  -c   -o makeconv.o makeconv.c
gcc -D_REENTRANT   -I../../common -I./../toolutil -DU_ATTRIBUTE_DEPRECATED= -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long  -c   -o ucnvstat.o ucnvstat.c
g++ -D_REENTRANT   -I../../common -I./../toolutil -DU_ATTRIBUTE_DEPRECATED= -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long  -c   -o genmbcs.o genmbcs.cpp
gcc -D_REENTRANT   -I../../common -I./../toolutil -DU_ATTRIBUTE_DEPRECATED= -O3 -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long  -c   -o gencnvex.o gencnvex.c
g++ -O3 -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long   -o ../../bin/makeconv makeconv.o ucnvstat.o genmbcs.o gencnvex.o -L../../lib -licutu -L../../lib -licui18n -L../../lib -licuuc -L../../stubdata -licudata -lpthread -ldl -lm
../../lib/libicuuc.so: undefined reference to `__sync_val_compare_and_swap_4'
../../lib/libicuuc.so: undefined reference to `__sync_add_and_fetch_4'
../../lib/libicuuc.so: undefined reference to `__sync_sub_and_fetch_4'
collect2: ld returned 1 exit status
make[2]: *** [../../bin/makeconv] Error 1
make[2]: Leaving directory `/root/icu/icu/source/tools/makeconv'
make[1]: *** [all-recursive] Error 2
make[1]: Leaving directory `/root/icu/icu/source/tools'
make: *** [all-recursive] Error 2

I've found absolutely nothing on Google to help me. I'm using icu4c-49_1_2-src.tgz from http://site.icu-project.org/download/49

share|improve this question
    
What centos version are you using? –  Tom O'Connor Nov 1 '12 at 15:38
    
@TomO'Connor CentOS release 5.8 (Final) –  Brandon Wamboldt Nov 1 '12 at 15:39
    
It'll probably take me roughly 30-40 minutes to grab a vagrant box of 5.8 final, build out and test this, but I think it's worth poking at. –  Tom O'Connor Nov 1 '12 at 15:41
    
@TomO'Connor Well I'd definitely appreciate any help. I'm going to continue trying things, see if I can't figure it out as well –  Brandon Wamboldt Nov 1 '12 at 15:43
    
Out of interest.. did you try the binary version download.icu-project.org/files/icu4c/49.1.2/… –  Tom O'Connor Nov 1 '12 at 16:01

2 Answers 2

up vote 1 down vote accepted

I might be a little late here, but I experienced this exact same problem building ICU 49.1.2 on 32-bit SLES 11 SP2.

After a bit of research and the bug report below, I tried updating my gcc/g++ installation. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40134

Using gcc/g++.46 (after performing a "make clean"), I was able to build the libraries. Obviously, this might be a little late for the OP, but perhaps someone else will benefit.

share|improve this answer

My suggestion (while I try and recreate your error). Don't.

I've found the requisite libraries in one of the yum repositories.

libicu.i386 : International Components for Unicode - libraries
libicu-devel.i386 : Development files for International Components for Unicode
libicu-doc.i386 : Documentation for International Components for Unicode

Ignore that those ones are i386, just the old server I'm using.

Name       : libicu
Arch       : i386
Version    : 3.6
Release    : 5.16.1
Size       : 13 M
Repo       : installed
Summary    : International Components for Unicode - libraries
URL        : http://www.ibm.com/software/globalization/icu/
License    : X License
Description: International Components for Unicode - libraries.

I'm lead to believe that it's in the default Centos repositories. I advise you try searching yum for libicu.

I'll have a go at reproducing the error when building from source.

share|improve this answer
    
I need 4.0+ due to using it with PHP & Symfony –  Brandon Wamboldt Nov 1 '12 at 15:38
    
Bugger. This is one of many reasons why I detest Centos. –  Tom O'Connor Nov 1 '12 at 15:39
    
Yeah, me too. Next server I get is going with Ubuntu –  Brandon Wamboldt Nov 1 '12 at 15:40
    
I just installed 4.8 instead and it worked fine –  Brandon Wamboldt Nov 1 '12 at 15:55
    
Not that it answers the question, but fair enough. –  Tom O'Connor Nov 1 '12 at 15:58

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.