Re: Cygwin-cross patch#2 for 2.96.4-1
Olaf Weber <[email protected]>
| Newsgroups | gmane.comp.tex.tetex.beta |
|---|---|
| Message-ID | <[email protected]> |
Jan Nieuwenhuizen writes:
> Olaf Weber writes:
>> The info pages for ld (version 2.14.90.0.7-multiarch) say that Cygwin
>> should be perfectly happy with dllexport. (It does make clear that if
>> dllexport is used anywhere, it must be used for all exported symbols.)
> Yes, and there's another issue with variables, IIRC.
>> So I'm curious what kind of failiure you're encountering.
> It's a failure of the libtoolish linking kind, and easy to check.
> Apply my patch, reverert the KPSEDLL bits, get cyg-apt
> http://lilypond.org/cygwin/cyg-apt
> and install a cygwin-cross compilation suite using dpkg-cross. Hmm
> that may be hairy if you're not using Debian? Hold on...
After a (very cursory) glance it already appears to be a bit hairier
than you make out above.
> Without my patch (new version attached) the Cygwin compile fails like
> this:
> /bin/sh ../libtool --mode=link i686-cygwin-gcc -o kpsewhich -lm kpsewhich.o -L../kpathsea -lkpathsea -L/cygwin/usr/X11R6/lib -lICE -lSM -lXpm -lX11
> generating import library for `cygkpathsea-4.dll'
> i686-cygwin-dlltool --as=i686-cygwin-as --dllname cygkpathsea-4.dll --def .libs/cygkpathsea-4.dll-def --output-lib .libs/libimp-cygkpathsea-4.a
> i686-cygwin-gcc -o .libs/kpsewhich kpsewhich.o -L/netrel/build/tetex-bin-2.96.4-1/texk/kpathsea .libs/libimp-cygkpathsea-4.a -L/cygwin/usr/X11R6/lib -lICE -lSM -lXpm -lX11
> kpsewhich.o(.text+0x19c): In function `find_format':
> /netrel/src/tetex-bin-2.96.4-1/texk/kpathsea/kpsewhich.c:127: variable 'kpse_format_info' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.
Why is it trying to auto-import this one at all? It should properly
marked for dllexport/dllimport already. Could you verify that this is
done in the preprocessed output of kpsewhich.c ?
Perhaps an explicit --disable-auto-import has to be supplied?
--
Olaf Weber
(This space left blank for technical reasons.)