[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