This is the mail archive of the cygwin@cygwin.com 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: Obtaining a pervious version


John Williams wrote:
> Max Bowsher wrote:
>> John Williams wrote:
>>
>>> They have a cross compiler that uses the cygwin compatability layer.
>>> They have modified and distribute a version of this layer, which is
>>> built upon cygwin1.dll version 1.3.13.  However, they distribute
>>> with their tools only a minimal subset of cygwin necessary for
>>> their tools to run.  However, in the project I am doing I need not
>>> only the 3rd party cross compiler, but also native gcc and binutils
>>> etc.
>>>
>>> However, simply running the 3rd party tools under the current cygwin
>>> release does not work (versioning errors),
>
>> Details?
>
> OK, here it goes.  EDK is the 3rd part tool set.  They distribute
> (binary and source) a modified version of cygwin they call Xygwin
> (with xygwin1.dll and so on).  I suspect this is part of the problem.
>
> Starting point
> ?
> Fresh install of Cygwin 1.3.20 into c:/cygwin
> ?
> Fresh install of EDK SP3 into c:/EDK
>
> At this stage, the EDK toolchain is in the path for both Xygwin and
> Cygwin (i.e. c:/EDK/gnu/powerpc/bin/nt and
> c:/EDK/gnu/microblaze/bin/nt).
>
> Initial testing
> ?
> EDK/Xygwin works fine
> o
> Binaries executing from /usr/bin, which maps to c:/EDK/xygwin/bin
>
> ?
> Cygwin works fine
> o
> make, gcc, etc
> o
> Executing from /usr/bin, which is mapped to c:/cygwin/ bin
>
> Running Cygwin binaries from within Xygwin:
> ?
> gcc ? not found
> ?
> Add cygwin bin to the path
> o
> export PATH=${PATH}:/xygdrive/c/cygwin/bin
> ?
> running gcc results in
> o
> c:\cygwin\bin\gcc.exe: *** proc version mismatch detected -
> xB3836013/0x8E0899FA.
> You have multiple copies of cygwin1.dll on your system.
> Search for cygwin1.dll using the Windows Start->Find/Search facility
> and delete all but the most recent version.  The most recent version
> *should* reside in x:\cygwin\bin, where 'x' is the drive on which you
> have installed the cygwin distribution.
>
> Running EDK binaries from within Cygwin:
> ?
> Running mb-gcc results in a Windows dialog box stating
> o
> This application has failed to start because xygwin1.dll was not
>   found. Re-installing the application may fix this problem.
> ?
> Adding xygwin/bin to the path, and re-running gives
> o
> c:\EDK\gnu\microblaze\nt\bin\mb-gcc.exe: *** proc version mismatch
> detected - 0x8E0899FA/0xB3836013.
> You have multiple copies of cygwin1.dll on your system.
> Search for cygwin1.dll using the Windows Start->Find/Search facility
> and delete all but the most recent version.  The most recent version
> *should* reside in x:\cygwin\bin, where 'x' is the drive on which you
> have installed the cygwin distribution.
>
> Clearly, there is a version mismatch between Xygwin and Cygwin 1.3.20.
> Checking version info on Xygwin1.dll reveals that Xygwin is built upon
> Cygwin v1.3.13.  This is the source of the versioning error.
>
> New strategy ? accept the versioning differences, and try to fool
> Cygwin/Xygwin into finding the right DLLs.  Approach:
> ?
> Copy c:/cywgin/bin/cygwin1.dll ? c:/cygwin/bin/xygwin1.dll, and
> ?
> c:/EDK/xywgin/bin/xygwin1.dll ? c:/EDK/xygwin/bin/cygwin1.dll
>
> (Note that ?cross-copying? cygwin1.dll from cygwin to Xygwin, and
> xygwin1.dll to Cygwin, won?t work because of the versioning
> differences described above)
>
> After duplicating the DLLs, running mb-gcc inside Cygwin no longer
> gives an error message, but instead it fails silently.  For example,
> ?mb-gcc ?c system.c? runs without error, but does not produce
> system.o.
>
> You asked for details!!  If anyone read this far they are a champion.

OK, *now* its pretty obvious what the problem is. Cygwin 1.3.20 is backward
compatible with Cygwin 1.3.13, but Cygwin is not and never will be sideways
compatible with other slightly modified versions of Cygwin.

Compile your own EDK toolchain against Cygwin itself, not Xygwin.

Max.


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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