On Nov 20 23:54, Alexey Pavlov wrote: > 2013/11/20 Christopher Faylor: > > On Wed, Nov 20, 2013 at 10:18:37PM +0400, Alexey Pavlov wrote: > >>Recent changes in CVS sources break build: > >> > >>-lgcc > >>/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../lib/w32api/libkernel32.a > >>/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../lib/w32api/libntdll.a > >>-Wl,-Map,cygwin.map > >> > >>/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../lib/w32api/libkernel32.a(dcnbs00754.o):(.text+0x0): > >>multiple definition of `IdnToUnicode' > >> > >>autoload.o:autoload.cc:(.kernel32_autoload_text+0x180): first defined here > >> > >>/usr/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../lib/w32api/libkernel32.a(dcnbs00752.o):(.text+0x0): > >>multiple definition of `IdnToAscii' > >> > >>autoload.o:autoload.cc:(.kernel32_autoload_text+0x140): first defined here > >> > >>collect2: error: ld returned 1 exit status > > > > The existence of two snapshots generated from latest CVS would > > imply that the error is on your end. > > I think this is because I'm use win32-api from latest mingw-w64 trunk.
This must be a bug in latest mingw-w64. autoload.cc defines multiple symbols which already exist in kernel32.dll. And all of these symbols also exist in mingw-w64 libkernel.a: $ grep kernel32 autoload.cc LoadDLLfuncEx (CancelSynchronousIo, 4, kernel32, 1) LoadDLLfunc (CreateSymbolicLinkW, 12, kernel32) LoadDLLfuncEx (GetNamedPipeClientProcessId, 8, kernel32, 1) LoadDLLfunc (GetSystemTimePreciseAsFileTime, 4, kernel32) LoadDLLfuncEx2 (IdnToAscii, 20, kernel32, 1, 0) LoadDLLfuncEx2 (IdnToUnicode, 20, kernel32, 1, 0) LoadDLLfunc (LocaleNameToLCID, 8, kernel32) $ strings /usr/lib/w32api/libkernel32.a | grep CancelSynchronousIo CancelSynchronousIo __imp_CancelSynchronousIo CancelSynchronousIo CancelSynchronousIo __imp_CancelSynchronousIo And the Idn symbols are already exported by the current w32api version: $ strings /usr/lib/w32api/libkernel32.a | grep IdnToAscii IdnToAscii __imp_IdnToAscii IdnToAscii IdnToAscii __imp_IdnToAscii So I don't see why these two IdnToXXX functions should result in problems but not any of the other kernel32 autoload symbols. For completeness I tried to build ther Cygwin DLL natively on Cygwin, not on Linux as usual, and it builds fine. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
pgpDtBd6aiPK5.pgp
Description: PGP signature