[tlbuild] mingw cross-compilation fails at ICU

Manuel Pégourié-Gonnard mpg at elzevir.fr
Mon Apr 26 14:23:13 CEST 2010


Hi Peter,

Le 26/04/2010 11:35, Peter Breitenlohner a écrit :
> can you look into Work/build.log:
>
> After "=== configuring in icu-build", there ought to be
> "checking build system type..." and "checking host system type...".
> What are they? In particular is host system type "i586-mingw32msvc" or
> "i586-pc-mingw32msvc"?
>
=== configuring in icu-build (/home/mpg/tl/source/Work/libs/icu/icu-build)
make: running /bin/bash 
'/home/mpg/tl/source/Work/libs/icu/../../../libs/icu'/icu-4.4/configure 
--enable-static --disable-shared --disable-extras --disable-samples 
--disable-tests --disable-strict --disable-threads --disable-dyload 
--disable-utf16-string-check --build=x86_64-linux-gnu --host=i586-mingw32msvc 
--with-cross-build='/home/mpg/tl/source/Work/libs/icu'/icu-native
checking for ICU version numbers... release 4.4, library 44.0, unicode version 5.2
checking build system type... x86_64-pc-linux-gnu
checking host system type... i586-pc-mingw32msvc
checking target system type... i586-pc-mingw32msvc
checking for i586-mingw32msvc-gcc... i586-mingw32msvc-gcc

> BTW: Using '--build=i686-linux-gnu --host=i386-pc-mingw32' for gcc cross
> compiler I have no such problem.
>
Since my cross-compiling tools are installed as

/usr/bin/i586-mingw32msvc-*

I assume --host=i586-mingw32msvc is the correct option for me. I tried 
--host=i586-pc-mingw32msvc but it fails (earlier). Btw:

mpg at roth:~% /usr/bin/i586-mingw32msvc-gcc --version
i586-mingw32msvc-gcc (GCC) 4.4.2

> Might be worth it, but may also be just a waste of time. The only
> difference between the TL build procedure and the one described readme.html
> is that TL directly uses configure and not runConfigureICU.
>
Ok.

> A quite different point. If you configure with '--disable-xetex' and
> '--disable-bibtexu' the icu libraries are not used. Can you then build
> everything else?
>
Just tried, and unfortunately no. It first failed at dialog (missing ncurses 
headers) and pdfopen (linking problems, cannot resolve _fork() etc.) so I 
disabled them too. Now it fails at mf-mfextra with:

/bin/bash ../../../texk/web2c/web2c/convert mf
sed s/TEX-OR-MF-OR-MP/mf/ ../../../texk/web2c/lib/texmfmp.c >mfextra.c
i586-mingw32msvc-gcc -DHAVE_CONFIG_H -I. -I../../../texk/web2c -I./.. 
-I/home/mpg/tl/source/Work/texk -I/home/mpg/tl/source/texk 
-I../../../texk/web2c/.. -I/usr/include  -Wimplicit -Wreturn-type 
-Wdeclaration-after-statement -Wno-unknown-pragmas -g -O2 -MT mf-mfextra.o -MD 
-MP -MF .deps/mf-mfextra.Tpo -c -o mf-mfextra.o `test -f 'mfextra.c' || echo 
'../../../texk/web2c/'`mfextra.c
In file included from 
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/windows.h:98,
                  from /home/mpg/tl/source/texk/kpathsea/mingw32.h:9,
                  from /home/mpg/tl/source/texk/kpathsea/config.h:99,
                  from ../../../texk/web2c/config.h:32,
                  from ../../../texk/web2c/cpascal.h:16,
                  from ../../../texk/web2c/texmfmp.h:5,
                  from mfd.h:10,
                  from mfextra.c:14:
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/winsock2.h:64: 
error: conflicting types for ‘fd_set’
/usr/include/sys/select.h:78: note: previous declaration of ‘fd_set’ was here
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/winsock2.h:109: 
error: redefinition of ‘struct timeval’
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/winsock2.h:632: 
error: conflicting types for ‘select’
/usr/include/sys/select.h:109: note: previous declaration of ‘select’ was here
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/winsock2.h:635: 
error: conflicting types for ‘gethostname’
/usr/include/unistd.h:887: note: previous declaration of ‘gethostname’ was here
In file included from 
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/direct.h:22,
                  from /home/mpg/tl/source/texk/kpathsea/mingw32.h:14,
                  from /home/mpg/tl/source/texk/kpathsea/config.h:99,
                  from ../../../texk/web2c/config.h:32,
                  from ../../../texk/web2c/cpascal.h:16,
                  from ../../../texk/web2c/texmfmp.h:5,
                  from mfd.h:10,
                  from mfextra.c:14:
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/io.h:84: error: 
expected specifier-qualifier-list before ‘__time64_t’
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/io.h:112: 
error: expected specifier-qualifier-list before ‘__time64_t’
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/io.h:157: 
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘lseek64’
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/io.h:158: 
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘lseek64’
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/io.h:170: 
error: conflicting types for ‘getcwd’
/usr/include/unistd.h:507: note: previous declaration of ‘getcwd’ was here
In file included from /home/mpg/tl/source/texk/kpathsea/mingw32.h:15,
                  from /home/mpg/tl/source/texk/kpathsea/config.h:99,
                  from ../../../texk/web2c/config.h:32,
                  from ../../../texk/web2c/cpascal.h:16,
                  from ../../../texk/web2c/texmfmp.h:5,
                  from mfd.h:10,
                  from mfextra.c:14:
/usr/include/fcntl.h:118: error: conflicting types for ‘creat’
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/io.h:288: 
note: previous declaration of ‘creat’ was here
In file included from ../../../texk/web2c/cpascal.h:302,
                  from ../../../texk/web2c/texmfmp.h:5,
                  from mfd.h:10,
                  from mfextra.c:14:
../../../texk/web2c/lib/lib.h:14: error: conflicting types for ‘eof’
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/io.h:291: 
note: previous declaration of ‘eof’ was here
In file included from mfextra.c:25:
/usr/include/sys/time.h:165:1: warning: "timerclear" redefined
In file included from 
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/windows.h:98,
                  from /home/mpg/tl/source/texk/kpathsea/mingw32.h:9,
                  from /home/mpg/tl/source/texk/kpathsea/config.h:99,
                  from ../../../texk/web2c/config.h:32,
                  from ../../../texk/web2c/cpascal.h:16,
                  from ../../../texk/web2c/texmfmp.h:5,
                  from mfd.h:10,
                  from mfextra.c:14:
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/winsock2.h:118:1: 
warning: this is the location of the previous definition
In file included from mfextra.c:25:
/usr/include/sys/time.h:166:1: warning: "timercmp" redefined
In file included from 
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/windows.h:98,
                  from /home/mpg/tl/source/texk/kpathsea/mingw32.h:9,
                  from /home/mpg/tl/source/texk/kpathsea/config.h:99,
                  from ../../../texk/web2c/config.h:32,
                  from ../../../texk/web2c/cpascal.h:16,
                  from ../../../texk/web2c/texmfmp.h:5,
                  from mfd.h:10,
                  from mfextra.c:14:
/usr/lib/gcc/i586-mingw32msvc/4.4.2/../../../../i586-mingw32msvc/include/winsock2.h:114:1: 
warning: this is the location of the previous definition
mfextra.c: In function ‘main’:
mfextra.c:749: warning: implicit declaration of function ‘_setmaxstdio’
mfextra.c: In function ‘get_date_and_time’:
mfextra.c:1815: warning: assignment from incompatible pointer type
make[5]: *** [mf-mfextra.o] Erreur 1
make[5]: quittant le répertoire « /home/mpg/tl/source/Work/texk/web2c »
make[4]: *** [all-recursive] Erreur 1
make[4]: quittant le répertoire « /home/mpg/tl/source/Work/texk/web2c »
make[3]: *** [all] Erreur 2
make[3]: quittant le répertoire « /home/mpg/tl/source/Work/texk/web2c »
make[2]: *** [subtexk] Erreur 1
make[2]: quittant le répertoire « /home/mpg/tl/source/Work/texk »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /home/mpg/tl/source/Work/texk »
make: *** [all-recursive] Erreur 1
Command exited with non-zero status 2

which is probably more annoying.

Thanks,
Manuel.


More information about the tlbuild mailing list