0

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

7
  • What centos version are you using? Nov 1, 2012 at 15:38
  • @TomO'Connor CentOS release 5.8 (Final) Nov 1, 2012 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. Nov 1, 2012 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 Nov 1, 2012 at 15:43
  • 1
    Out of interest.. did you try the binary version download.icu-project.org/files/icu4c/49.1.2/… Nov 1, 2012 at 16:01

2 Answers 2

1

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.

2

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.

5
  • I need 4.0+ due to using it with PHP & Symfony Nov 1, 2012 at 15:38
  • Bugger. This is one of many reasons why I detest Centos. Nov 1, 2012 at 15:39
  • Yeah, me too. Next server I get is going with Ubuntu Nov 1, 2012 at 15:40
  • I just installed 4.8 instead and it worked fine Nov 1, 2012 at 15:55
  • Not that it answers the question, but fair enough. Nov 1, 2012 at 15:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .