Ticket #20250 (closed defect: fixed)
ICU 4.2.1 fails to build
| Reported by: | dbsgeo@… | Owned by: | nox@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 1.7.1 |
| Keywords: | Cc: | takanori@…, mcalhoun@…, macsforever2000@…, snc@… | |
| Port: | icu |
Description
Trying to build universal against 10.4 on a 10.5 machine i get:
$ sudo port install boost +icu +python25 +universal Password: ---> Fetching boost-jam ---> Attempting to fetch boost-jam-3.1.17.tgz from http://superb-west.dl.sourceforge.net/boost ---> Verifying checksum(s) for boost-jam ---> Extracting boost-jam ---> Applying patches to boost-jam ---> Configuring boost-jam ---> Building boost-jam ---> Staging boost-jam into destroot ---> Installing boost-jam @3.1.17_0+universal ---> Activating boost-jam @3.1.17_0+universal ---> Cleaning boost-jam ---> Fetching bzip2 ---> Attempting to fetch bzip2-1.0.5.tar.gz from http://distfiles.macports.org/bzip2 ---> Verifying checksum(s) for bzip2 ---> Extracting bzip2 ---> Applying patches to bzip2 ---> Configuring bzip2 ---> Building bzip2 ---> Staging bzip2 into destroot ---> Installing bzip2 @1.0.5_2+universal ---> Activating bzip2 @1.0.5_2+universal ---> Cleaning bzip2 ---> Fetching icu ---> Attempting to fetch icu4c-4_2_1-src.tgz from http://distfiles.macports.org/icu ---> Verifying checksum(s) for icu ---> Extracting icu ---> Applying patches to icu ---> Configuring icu ---> Building icu Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_icu/work/icu/source" && gnumake all " returned error 2 Command output: DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-1157_P100-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-1158_P100-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-1160_P100-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-1164_P100-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-871_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-12712_P100-1998.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-16804_X110-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-273_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-277_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-278_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-280_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-284_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-285_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-290_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-297_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-420_X120-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-424_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-4517_P100-2005.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-4899_P100-1998.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-4971_P100-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-500_P100-1995.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-5123_P100-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-803_P100-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-8482_P100-1999.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-9067_X100-2005.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/makeconv -c -d ./out/build/icudt42b ./mappings/ibm-16684_P110-2003.ucm DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/genbrk -c -i ./out/build/icudt42b -r brkitr/word_POSIX.txt -o out/build/icudt42b/brkitr/word_POSIX.brk ../bin/genbrk: can not initialize ICU. status = U_FILE_ACCESS_ERROR gnumake[1]: *** [out/build/icudt42b/brkitr/word_POSIX.brk] Error 1 gnumake: *** [all-recursive] Error 2 Error: The following dependencies failed to build: icu python25 db46 gdbm readline sqlite3 tk Xft2 tcl xorg-libXScrnSaver xorg-libXext xorg-scrnsaverproto Error: Status 1 encountered during processing.
Change History
comment:1 Changed 4 years ago by macsforever2000@…
- Keywords icu removed
- Cc takanori@… added; takanori, nox removed
- Owner changed from macports-tickets@… to nox@…
comment:2 Changed 4 years ago by takanori@…
I confirmed the problem. As you say, ICU 4.2 fails to build universal binaries. I was not aware of it since I am not using +universal any longer. Sorry!!
Anyway, I have no choice but to disable +universal until the problem will be fixed..
comment:4 Changed 4 years ago by jmr@…
FYI, the same failure occurs without +universal on trunk. Clearing configure.archflags allows it to build, but of course you're then not respecting the build_arch setting.
comment:5 Changed 4 years ago by andre.david@…
Same problem here. Found
http://icu-project.org/trac/ticket/3821
which seems to be related and fixed.
comment:6 Changed 4 years ago by blb@…
It looks like icu's configure script thinks that having even one -arch flag means universal mode is enabled. Without any -arch, it says:
checking whether byte ordering is bigendian... no
but with MacPorts trunk adding just -arch i386:
checking whether byte ordering is bigendian... universal
configure has:
# Check for potential -arch flags. It is not universal unless
# there are some -arch flags. Note that *ppc* also matches
# ppc64. This check is also rather less than ideal.
case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #(
*-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
esac
so it seems any -arch will set off its universal belief, and hits the error. FWIW, the error appears to be related to paths that include some sort of type size:
DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/genbrk -c -i ./out/build/icudt42b -r brkitr/word_POSIX.txt -o out/build/icudt42b/brkitr/word_POSIX.brk
udata_openChoice(): Opening: NULL : cnvalias . icu
P=icudt42l T=
tocEntryName = icudt42l/cnvalias.icu
tocEntryPath = icudt42l/cnvalias.icu
IND: inBasename = (n/a), pkg=icudt42l
Trying individual files
SUFFIX1=/cnvalias.icu PATH=./out/build/icudt42b
STUB=/icudt42l [9]
SUFFIX=/cnvalias.icu [0xbffff0d0]
0xbfffef18: init icudt42l -> [path=./out/build/icudt42b], [base=icudt42l], [suff=/cnvalias.icu], [itempath=], [nextpath=./out/build/icudt42b], [checklast4=false]
rest of path (IDD) = ./out/build/icudt42b
^
--> ./out/build/icudt42b/icudt42l/cnvalias.icu
...
Note the icudt42b/icudt42l where it appears to be trying both 42b and 42l; without -arch, it only uses one (icudt42l).
comment:7 Changed 4 years ago by andre.david@…
I just tried it this morning after updating and got the same:
DYLD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$DYLD_LIBRARY_PATH ../bin/genbrk -c -i ./out/build/icudt42b -r brkitr/word_POSIX.txt -o out/build/icudt42b/brkitr/word_POSIX.brk ../bin/genbrk: can not initialize ICU. status = U_FILE_ACCESS_ERROR gnumake[1]: *** [out/build/icudt42b/brkitr/word_POSIX.brk] Error 1 gnumake: *** [all-recursive] Error 2 Warning: the following items did not execute (for icu): org.macports.destroot org.macports.build Error: Unable to upgrade port: 1
comment:10 Changed 4 years ago by takanori@…
Applied a workaround in r55654
comment:11 Changed 4 years ago by snc@…
This patch appears to fix it in Snow Leopard. I'm able to build ports that were erring on ICU before.
comment:12 Changed 4 years ago by nox@…
- Status changed from new to closed
- Resolution set to fixed
So this is fixed now, right?
comment:13 Changed 4 years ago by snc@…
Seems like it.

