Opened 15 years ago

Closed 15 years ago

Last modified 15 years ago

#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@…, MarcusCalhoun-Lopez (Marcus Calhoun-Lopez), mf2k (Frank Schima), nerdling (Jeremy Lavergne)
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 (13)

comment:1 Changed 15 years ago by mf2k (Frank Schima)

Cc: takanori@… added; takanori nox removed
Keywords: icu removed
Owner: changed from macports-tickets@… to nox@…

comment:2 Changed 15 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:3 Changed 15 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Cc: mcalhoun@… added

Cc Me!

comment:4 Changed 15 years ago by jmroot (Joshua Root)

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 15 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 15 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 15 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:8 Changed 15 years ago by mf2k (Frank Schima)

Cc: macsforever2000@… added

Cc Me!

comment:9 Changed 15 years ago by nerdling (Jeremy Lavergne)

Cc: snc@… added

This similarly occurs in 10.6.

comment:10 Changed 15 years ago by takanori@…

Applied a workaround in r55654

comment:11 Changed 15 years ago by nerdling (Jeremy Lavergne)

This patch appears to fix it in Snow Leopard. I'm able to build ports that were erring on ICU before.

comment:12 Changed 15 years ago by nox@…

Resolution: fixed
Status: newclosed

So this is fixed now, right?

comment:13 Changed 15 years ago by nerdling (Jeremy Lavergne)

Seems like it.

Note: See TracTickets for help on using tickets.