11.9.12

git svn failure under cygwin

git svn init -s repo_url fails with error message:

child_info_fork::abort: unable to remap cygsvn_client-1-0.dll to same address as parent

Operating system: Windows 7, 64 bits.

Executing /usr/bin/rebaseall from ash did not help. After some research, I downloaded ListDLLs executable from Windows Sysinternals. I opened cygwin, ran git svn. Then I executed listdlls.exe from windows command prompt.

It seems that the base address of some cygwin dlls collide with other dlls:

grep '0x000000006' listed_dlls.txt | sort

0x0000000060000000 0x4da000 C:\Program Files\NVIDIA Corporation\Display\nvxdapix.dll
0x0000000061000000 0x15a000 C:\Program Files\NVIDIA Corporation\Display\nvxdbat.dll
0x0000000061000000 0x480000 C:\cygwin\bin\cygwin1.dll
0x0000000063000000 0x1ac000 C:\Program Files\NVIDIA Corporation\Display\nvxdplcy.dll
...
0x000000006e3b0000 0x8e000 C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\MSVCP90.dll
0x000000006e400000 0x2d000 C:\cygwin\bin\cygreadline7.dll
0x000000006e440000 0xda000 C:\Program Files (x86)\AVG\AVG2012\avgidpsdkx.dll
...
0x000000006e8f0000 0x2dd000 C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll
0x000000006ea70000 0x41000 C:\cygwin\bin\cygncursesw-10.dll
0x000000006ebd0000 0x683000 C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Data\67065dc691dbf9574b3c8e5ac6ec5246\System.Data.ni.dll
0x000000006eeb0000 0xf000 C:\cygwin\bin\cygintl-8.dll
0x000000006ef00000 0xfc000 C:\cygwin\bin\cygiconv-2.dll
0x000000006f260000 0x3b000 C:\Windows\SysWOW64\rsaenh.dll
...
0x000000006f510000 0x19e000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\comctl32.dll
0x000000006f5b0000 0x18000 C:\cygwin\bin\cyggcc_s-1.dll
0x000000006f6b0000 0xb0000 C:\Windows\SysWOW64\bthprops.cpl
0x000000006f760000 0x113b000 C:\Windows\assembly\NativeImages_v4.0.30319_32\System.ServiceModel\4f8ecf03aa4a4165e6850d1d67dc445f\System.ServiceModel.ni.dll

It seems that 0x0000000050000000 range is free

grep '0x000000005' listed_dlls.txt

<empty output>

Then I started ash.exe as admin and executed:

/usr/bin/rebaseall -b 0x0000000060000000

Cygwin dlls are rebased now to address 0x000000005xxxxxxx and git svn problem disappeared.

No comments: