19

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.

Community
  • 1
  • 1
Ganesh kudva
  • 990
  • 3
  • 13
  • 34

5 Answers5

17

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 .

matzeri
  • 8,062
  • 2
  • 15
  • 16
  • Strangely enough, the problem was solved (i.e. I could do _svn up_) while setup was running, but once setup ended it was broken again. I solved this by canceling setup once _svn up_ was functional. So far without side effects. – Danny Schoemann Feb 01 '17 at 15:00
  • @DRSDavidSoft `Rebaseall` method was replaced by `rebase-trigger` https://sourceware.org/ml/cygwin-announce/2016-02/msg00005.html – matzeri Mar 21 '18 at 07:16
7

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.

Diomidis Spinellis
  • 18,734
  • 5
  • 61
  • 83
  • 1
    it was my case indeed. Using AVG! – gr68 Mar 24 '19 at 14:56
  • 1
    AVG blocked me too. You can click in the tray, right-click AVG, and turn "protection is on" into the off position. I then went back to git shell and typed "eval $(ssh-agent -s)" and success. The I reenabled my AVG. – Mickey Kawick Oct 15 '19 at 06:53
  • 1
    thank you ! I just installed AVG and it was the problem. – Normajean Jan 17 '20 at 10:30
2

Could also be caused by this update https://support.microsoft.com/en-us/help/4561616/windows-10-update-kb4561616

caduceus
  • 1,542
  • 2
  • 16
  • 21
0

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.

0

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
user1767316
  • 3,276
  • 3
  • 37
  • 46