Reputation: 1040
I am trying to build my software using cygwin-x86(32 bit version) on Windows-7.
Cygwin-x64(64 bit) works perfectly fine on the same machine. I want to build 32-bit executable.
Whenever I try cygwin-x86, I get the following errors:
[main] make 7780 child_info_fork::abort: C:\cygwin\bin\cygiconv-2.dll: Loaded to different address: parent(0x440000) != child(0x5F0000)
make: fork: Resource temporarily unavailable
I have checked this thread Cygwin Error
I have already tried everything mentioned in there, but I still continue to face the same issue.
Whenever i try /usr/bin/rebaseall -v or cd /usr/bin && ./rebaseall -v as mentioned in the step 7 of the accepted answer in the above mentioned thread, I get this error:
/usr/x86_64-pc-cygwin/sys-root/usr/bin/cygvtv_stubs-0.dll: skipped because wrong machine type. /usr/x86_64-pc-cygwin/sys-root/usr/bin/cygz.dll: skipped because wrong machine type.
Segmentation fault (core dumped)
I get this wrong machine type error for a lot of other .dll's as well.
As mentioned earlier I have cygwin-64 installed on my machine & working as expected. But while running rebaseall it is somehow looking for x86-64-pc-cygwin instead of 32 bit version.
Upvotes: 22
Views: 24710
Reputation: 1
I have recently spent hours on this. Just one of my systems had had a never-ending "Cygwin can't fork" problem. And the answer turned out to be well-known, but I think maybe not a Cygwin FAQ. Mandatory ASLR breaks Cygwin fork. And on that one out of several of my systems, for some reason sometime in the past, I had turned on Mandatory ASLR (Windows Settings -> Exploit protection). Ouch. Ouch, ouch, ouch. Also, ouch. So, if all else fails, and your Cygwin can't fork, check your Windows Mandatory ASLR setting. Also, ouch.
Upvotes: 0
Reputation: 3651
For me, the solution was to remove the .new
file extention of the libs from c:\cygwin64\bin\
I had the same problem using git. various dlls depending on the git command used where included in the error message stating that it was loaded to "different adress".
In fact a corporate antivirus or a loaded program had probably prevent un update during the rebase phase while installing a new program (git-svn in my case)
some required libraries where not installed but cleverly left in the target with the .new
file extention.
I just had to remove the .new
extention (and rename the original lib to .old
) to solve the problem.
In my case the list of lib involved was:
cygcrypto-1.1.dll
cyggcc_s-seh-1.dll
cygintl-8.dll
cygwin1.dll
Upvotes: 0
Reputation: 1838
Could also be caused by this update https://support.microsoft.com/en-us/help/4561616/windows-10-update-kb4561616
Upvotes: 2
Reputation: 19385
The problem can also be triggered by an anti-virus program. (I saw it happening with Avast.) You can test if this is the cause by disabling it.
Upvotes: 7
Reputation: 1
You can also kill each of the latest process of ash, dash or bash that was forked, setup.exe will simply skip this script and continue with the rest. I had to kill about 10-20 of them, mostly in latex postinstall scripts.
Upvotes: 0
Reputation: 8496
The thread is obsolete.
run /usr/bin/rebase-trigger
, close all cygwin processes and run again setup-x86.exe
. Also without installing anything will execute a rebase for you.
You can also specify the option full.
Additional note: The most likely cause of fork problems on 32 bit system are too many programs and libraries installed.
for example:
/usr/x86_64-pc-cygwin/sys-root/usr/bin/cygz.dll
belongs to cygwin64-zlib
a cross library for building cygwin64 programs from cygwin32. Do you really need it ? If not, as I suspect, remove all cywgin64 packages .
Upvotes: 17