devel/icu... help... ?

b. f. bf1783 at
Wed Aug 3 13:53:09 UTC 2011

> Thanks for the quick reply and I certainly appreciate your viewpoint.
> Are these undefined references defined by FREEBSD? If so, why would you
> introduce an OS dependency in a library intended to provide unicode support?

It is difficult to say, from the limited information, whether the
failure is due to the use of an older toolchain ( gcc 3.4.x , etc.),
or some difference in other parts of the base system.  It is
inevitable that icu will depend upon some features of the base system,
on almost any platform.

> c++ -O2 -fno-strict-aliasing -pipe -W -Wall -ansi -pedantic -Wpointer-arith
> -Wwrite-strings -Wno-long-long   -o intltest aliastst.o allcoll.o apic\
> oll.o astrotst.o callimts.o calregts.o caltest.o caltztst.o canittst.o
> citrtest.o cntabcol.o convtest.o currcoll.o fldset.o dadrfmt.o dadrcal.o
> da\drcoll.o dcfmapts.o decoll.o dtfmapts.o dtfmrgts.o dtfmtrtts.o dtfmttst.o
> dtptngts.o encoll.o escoll.o ficoll.o frcoll.o g7coll.o intltest.o iterc\
> oll.o itformat.o itmajor.o itutil.o jacoll.o lcukocol.o loctest.o miscdtfm.o
> mnkytst.o msfmrgts.o nmfmapts.o nmfmtrt.o numfmtst.o numrgts.o plurul\
> ts.o plurfmts.o pptest.o regcoll.o restest.o restsnew.o sdtfmtts.o svccoll.o
> tchcfmt.o selfmts.o tfsmalls.o tmsgfmt.o trcoll.o tscoll.o tsdate.o t\
> sdcfmsy.o tsdtfmsy.o tsmthred.o tsnmfmt.o tsputil.o tstnrapi.o tstnorm.o
> tzbdtest.o tzregts.o tztest.o ucdtest.o usettest.o ustrtest.o strcase.o t\
> ranstst.o strtest.o thcoll.o bytestrietest.o ucharstrietest.o itrbbi.o
> rbbiapts.o dicttest.o rbbitst.o ittrans.o transapi.o cpdtrtst.o testutil.o \
> transrt.o trnserr.o normconf.o sfwdchit.o jamotest.o srchtest.o reptest.o
> regextst.o itrbnf.o itrbnfrt.o itrbnfp.o ucaconf.o icusvtst.o uobjtest.o\
>  idnaref.o idnaconf.o nptrans.o punyref.o testidn.o testidna.o uts46test.o
> incaltst.o calcasts.o v32test.o uvectest.o textfile.o tokiter.o utxttes\
> t.o windttst.o winnmtst.o winutil.o csdetest.o tzrulets.o tzoffloc.o
> tzfmttst.o ssearch.o dtifmtts.o tufmtts.o itspoof.o simplethread.o
> bidiconf.o\
>  locnmtst.o dcfmtest.o alphaindextst.o -L../../tools/ctestfw -licutest
> -L../../lib -licui18n -L../../lib -licuuc -L../../stubdata -licudata -L../.\
> ./lib -licutu -lm   -lpthread
> numfmtst.o(.data+0x30c): undefined reference to `.LC3163'
> numfmtst.o(.data+0x314): undefined reference to `.LC3164'
> numfmtst.o(.data+0x324): undefined reference to `.LC3165'
> numfmtst.o(.data+0x39c): undefined reference to `.LC3171'
> gmake[1]: *** [intltest] Error 1
> gmake[1]: Leaving directory
> `/usr/ports/devel/icu/work/icu/source/test/intltest'
> gmake: *** [all-recursive] Error 2
> gmake: Leaving directory `/usr/ports/devel/icu/work/icu/source/test'
> *** Error code 2 (ignored)
> cd /usr/ports/devel/icu/work/icu/source/test/iotest && /usr/bin/env
> LD_LIBRARY_PATH=/usr/ports/devel/icu/work/icu/source/lib:/usr/ports/devel/icu\
> /work/icu/source/tools/ctestfw  ./iotest
> env: ./iotest: No such file or directory
> *** Error code 127
> Stop in /usr/ports/devel/icu.
> *** Error code 1
> Stop in /usr/ports/devel/icu.
> If I ignore the bad refs, then the error looks like a shell syntax problem.

You can't ignore the bad refs.  The port can't run iotest, because
iotest was not built: the port terminated the building of the tests
after it failed to build intltest, but continued, and attempted to run
the tests, because the commands that build the tests are preceded by a
"-" in the port Makefile.

> Of course, I only ask because I do not have the time to wade through all
> your stuff to figure out what is going on. But ICU is required for the
> latest glib20 build which QT uses.
> This stuff has worked fine on my FREEBSD6.2 system until this week. And if I
> read these msgs correctly, this problem also occurs on FREEBSD8.

This doesn't help unless you provide specific information about the
last working versions of the central ports Makefiles, icu, and all
ports that icu depends upon.  I don't know what message(s) you're
referring to about failures on 8.x.

You could try building the port with a newer toolchain by setting
USE_GCC to an appropriate value in your build environment or an
included Makefile.  Or you could disable the tests (e.g., by removing
"post-build" from the following port Makefile line:

     84 post-build test regression-test: iotest cintltst intltest

), or at least ignore the test outcomes (e.g., by adding a leading "-"
to the group of commands that run the tests).  If those two
alternatives fail, or aren't acceptable, then you will have to debug
the build.


More information about the freebsd-ports mailing list