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: direct.h


Greetings, Martin Landa!

> 2015-12-09 20:53 GMT+01:00 Eric Blake <eblake@redhat.com>:
>> That's because <direct.h> is an old, non-standard header not present on
>> modern POSIX-y machines.  You want <dirent.h> instead, when targetting
>> cygwin.  Or else your project is truly tied to Windows, and you should
>> be targetting mingw, in which case the question is semi-off-topic here
>> (other than how to properly use the mingw cross-compilers available from
>> a cygwin installation).

> the project is Unix-based, I am just trying to create the both 32bit
> and 64bit binaries for Windows users... I modified GDAL lib dependency
> to include dirent.h instead of direct.h. The configure doesn't fails,
> good. Unfortunately several compiled GRASS tools fails to run when
> building:

>       1 [main] g.proj (2604)
> C:\cygwin64\home\landa\grass_trunk\dist.x86_64-w64-mingw32\bin\g.proj.exe:
> *** fatal error - cygheap base mismatch detected -
> 0x180321400/0x901400.
> This problem is probably due to using incompatible versions of the cygwin DLL.
> 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.  Rebooting is also suggested if you
> are unable to find another cygwin DLL.

> I do not have any other cygwin1.dll in path. Other GRASS tools are
> compiled successfully, so the issue is probably related to linked
> libraries or?

Seems like a (sadly) typical issue.
https://cygwin.com/faq.html#faq.using.fixing-fork-failures
Try rebasing your newly built libraries.
If that does not help, see if you can get better results in an isolated
environment (i.e. VM). Overly zealous AV software could interfere with Cygwin
DLL mapping semantics required by POSIX.

>> That depends on whether your code is POSIX-y and targetting cygwin, or
>> is tied to Windows APIs and should be targetting mingw.
>>
>>>
>>> I am also not sure what will be difference between binaries compiled
>>> using cygwin and mingw32-w64 toolchain except of dependencies (like
>>> cygwin1.dll). MinGW32-w64 should produce native windows application,
>>> but what does it mean exactly?
>>
>> A native app doesn't depend on cygwin, but that also means it can't use
>> the POSIX-y interface provided by cygwin.

> OK, thanks for explanation! Martin



-- 
With best regards,
Andrey Repin
Thursday, December 10, 2015 16:11:04

Sorry for my terrible english...


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


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