This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Building sources from CVS.


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

Attachment: pgpztkKVJ7xJp.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]