[tlbuild] Build progress with CYGWIN

Rodrigo Medina rodmedina at cantv.net
Thu Sep 4 05:48:55 CEST 2008


Hi to everybody,
Report on the slow progress with CYGWIN.

1)graphite
Karl Berry wrote:
>Graphite depends on GCC 4?!

I took the idea that it  was so from the replies to the follwing
message that was about building with HPux

    http://tug.org/pipermail/tlbuild/2008q3/000355.html

My compilation with graphite stopped exactly in the same
point of that message:
../include/graphite/GrFeature.h:110: error: syntax error before `(' token

In the next message
(http://tug.org/mailman/htdig/tlbuild/2008q2/000179.html)
 J Kew wrote:

>Looking at line 110, I'd say your system is lacking std::wstring  
>support. What version of gcc are you using? A Google search seems to  
>indicate that this is a problem on HPUX with gcc 3.x, but if you can  
>update to gcc 4.x you may have a better chance.

2) About the SWAP problem included the following in XeTeXswap.h


#ifdef XETEX_MAC
#include "sfnt.h" /* for the 'fixed' typedef */
static inline fixed
SWAP(fixed p)
{
        return (fixed)SWAP32((UInt32)p);
}
#endif
/*BEGIN NEW CODE FOR CYGWIN */
#ifdef U_CYGWIN
#include "sfnt.h" /* for the 'fixed' typedef */
static inline fixed
SWAP(fixed p)
{
        return (fixed)SWAP32((UInt32)p);
}
#endif
/*END OF NEW CODE FOR CYGWIN */
static inline UInt16
SWAP(UInt16 p)
{
        return SWAP16(p);
}

3) About the library  libsicudata.a.
In deed the problem was with the file 
texlive-20080816-source/libs/icu-xetex/config/mh-cygwin
in which the name of the files are changed for buiding icu
but those changes are not propagated to xetex.
.
.
.
# Change the stubnames so that poorly working FAT disks and installation
program
s can work.
# This is also for backwards compatibility.
DATA_STUBNAME = dt
I18N_STUBNAME = in
.
.
.
I just commented out both instructions and the obstacle was overcome.
But few steps ahead a new obstacle appeared, just in the linking of
xetex.exe.  I think it is due to the same file mh-cygwin. Perhaps the
 easiest thing is to look at the source of icu for cygwin and copy the
 right file.

generating import library for `cygexpat-1.dll'
dlltool --as=as --dllname cygexpat-1.dll --def .libs/cygexpat-1.dll-def
--output
-lib .libs/libimp-cygexpat-1.a
g++ -o xetex.exe xetexini.o xetex0.o xetex1.o xetex2.o xetexextra.o trans.o
XeTe
X_ext.o xetex_pool.o XeTeXFontMgr_FC.o synctex-xe.o mfileio.o numb
ers.o pdfimage.o bmpimage.o jpegimage.o pngimage.o XeTeX_pic.o
XeTeXFontMgr.o Xe
TeXLayoutInterface.o XeTeXOTLayoutEngine.o XeTeXFontInst.o cmaps.o
 FontTableCache.o XeTeXOTMath.o XeTeXFontInst_FT2.o 
../../libs/icu-xetex/lib/li
bsicuuc.a ../../libs/icu-xetex/lib/libsicule.a ../../libs/icu-xete
x/lib/libsicudata.a ../../libs/teckit/lib/.libs/libTECkit.a
../../libs/freetype2
/.libs/libfreetype.a ../../libs/zlib/libz.a ../../libs/xpdf/xpdf/l
ibxpdf.a ../../libs/xpdf/goo/libGoo.a ../../libs/xpdf/fofi/libfofi.a
../../libs/
libpng/libpng.a .libs/libimp-cygfontconfig-1.a .libs/libimp-cygfre
etype-6.a -lz .libs/libimp-cygexpat-1.a lib/lib.a
../kpathsea/.libs/libkpathsea.
a
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld:
warning: au
to-importing has been activated without --enable-auto-import speci
fied on the command line.
This should work unless it involves constant data structures referencing
symbols
 from auto-imported DLLs.XeTeXLayoutInterface.o: In function `crea
teFont':
/home/rmedina/TeXlive-2008/texlive-20080816-source/Work/texk/web2c/../../../
texk
/web2c/xetexdir/XeTeXLayoutInterface.cpp:123: undefined reference 
to `__imp___ZN7icu_3_87UMemorynwEj'
/home/rmedina/TeXlive-2008/texlive-20080816-source/Work/texk/web2c/../../../
texk
/web2c/xetexdir/XeTeXLayoutInterface.cpp:123: undefined reference 
to `__imp___ZN7icu_3_87UMemorydlEPv'
-----------------------------------------------------------

I suspect that the problem is due to the fact that libraries built were
static instead of dynamic. But I am an ignorant on dll's.

regards
RM




More information about the tlbuild mailing list