[tlbuild] Patches for building Textiles with CYGWIN-gcc-3.4.4
Rodrigo Medina
rodmedina at cantv.net
Fri Oct 3 02:53:30 CEST 2008
Hi TeXlive Team,
Angelo Graziosi wrote:
>It seems that applying patch #6 is equivalent to stop at patch #5, i.e.
>we can avoid to change .../texk/web2c/configure.
>In any case, the result is that xetex.exe depend on a few Cygwin dlls
I think that we have come up against two kinds of problems with CYGWIN:
a) Problems due to peculiarities of CYGWIN that make the building
process to differ from other platforms.
b) Bugs in Makefile-configure.
The patches #2-#6 have to do with problems of the first kind. In particular
The patch #6 is related to a test that is done in configure if the
stdc++lib can be linked statically. The result of this test is used in
building various programs like (pdftex, xetex). Two tries of flags are
provided for different platforms. None of those tries is correct for CYGWIN,
so the test fails. But actually in CYGWIN stdc++lib is linked statically by
default; so the failure of the test has no consequences for most programs.
But in the case of xetex the result of the test is used to determine if a
bunch of other libraries are linked statically or dynamically.
The patch #6 just provides a set of flags that works for CYGWIN.
The fact that, after applying the patches, there are still libraries linked
dynamically, I believe is due to bugs in configure. In fact xetex is not the
only program in which this happens, so I think that to modify xetex.mk is
not
the proper thing to do. Follows the list of programs that
are linked dynamically to libraries different from cygwin1.dll
$ cygcheck ./info.exe
.\info.exe
C:\cygwin\bin\cygwin1.dll
C:\WINDOWS\system32\ADVAPI32.DLL
C:\WINDOWS\system32\KERNEL32.dll
C:\WINDOWS\system32\ntdll.dll
C:\WINDOWS\system32\RPCRT4.dll
C:\WINDOWS\system32\Secur32.dll
C:\cygwin\bin\cygncurses-8.dll
$ cygcheck ./mf.exe
.\mf.exe
C:\cygwin\bin\cygwin1.dll
C:\WINDOWS\system32\ADVAPI32.DLL
.....
C:\cygwin\usr\X11R6\bin\cygX11-6.dll
C:\cygwin\usr\X11R6\bin\cygXt-6.dll
C:\cygwin\usr\X11R6\bin\cygICE-6.dll
C:\cygwin\usr\X11R6\bin\cygSM-6.dll
$ cygcheck ./pdfclose.exe
.\pdfclose.exe
C:\cygwin\bin\cygwin1.dll
C:\WINDOWS\system32\ADVAPI32.DLL
.....
C:\cygwin\usr\X11R6\bin\cygX11-6.dll
$ cygcheck ./pdfopen.exe
.\pdfopen.exe
C:\cygwin\bin\cygwin1.dll
C:\WINDOWS\system32\ADVAPI32.DLL
.....
C:\cygwin\usr\X11R6\bin\cygX11-6.dll
$ cygcheck ./xdvi-xaw.exe
.\xdvi-xaw.exe
C:\cygwin\bin\cygiconv-2.dll
C:\cygwin\bin\cygwin1.dll
C:\WINDOWS\system32\ADVAPI32.DLL
.....
C:\cygwin\usr\X11R6\bin\cygX11-6.dll
C:\cygwin\usr\X11R6\bin\cygXaw-8.dll
C:\cygwin\usr\X11R6\bin\cygXext-6.dll
C:\cygwin\usr\X11R6\bin\cygXmu-6.dll
C:\cygwin\usr\X11R6\bin\cygXt-6.dll
C:\cygwin\usr\X11R6\bin\cygICE-6.dll
C:\cygwin\usr\X11R6\bin\cygSM-6.dll
C:\cygwin\usr\X11R6\bin\cygXp-6.dll
C:\cygwin\usr\X11R6\bin\cygXau-6.dll
C:\cygwin\usr\X11R6\bin\cygXpm-4.dll
$ cygcheck ./xdvipdfmx.exe
.\xdvipdfmx.exe
C:\cygwin\bin\cygwin1.dll
C:\WINDOWS\system32\ADVAPI32.DLL
....
C:\cygwin\bin\cygfontconfig-1.dll
C:\cygwin\bin\cygexpat-0.dll
C:\cygwin\bin\cygfreetype-6.dll
C:\cygwin\bin\cygz.dll
$ cygcheck ./xetex.exe
.\xetex.exe
C:\cygwin\bin\cygwin1.dll
C:\WINDOWS\system32\ADVAPI32.DLL
....
C:\cygwin\bin\cygfontconfig-1.dll
C:\cygwin\bin\cygexpat-0.dll
C:\cygwin\bin\cygfreetype-6.dll
C:\cygwin\bin\cygz.dll
There are four kinds of DLL's that appear.
1- The X11 libraries. In this case I think that it is correct that
those libraries appear. After all if you want to use xdvi you have
to have XWin installed.
2- Libraries that are provided by TeXlive and nevertheless the program
is linked to the system library instead than to the library provided.
(cygz.dll, cygfreetype-6.dll, cygncurses-8.dll) This is clearly
a Makefile-configure bug.
3- Libraries that are not provided, but are linked dynamically instead
than statically to the system library (cygfontconfig-1.dll,
cygiconv-2.dll) This is also a Makefile-configure bug.
4- The case of expat is special. The source of the library is provided
but the actual library is not built. (The target is missing in the
Makefile).
--------
Karl Berry wrote:
> Patch #6
> Modify .../texk/web2c/configure.
> Aside from anything else, we can't modify configure. It is generated
> from configure.in. Please send a patch against configure.in.
Just make the same modification in /texk/web2c/configure.in
> This should only be tried if we're on Cygwin, though. Otherwise it's
> just a waste of time ...
It will be tried only for those platforms for which tries #1 and #2 fail.
----
Unfortunately I am not the right person for doing complex modifications
in configure.in. My experience is very limited.
Greetings
Rodrigo Medina
More information about the tlbuild
mailing list