-
Bug
-
Resolution: Fixed
-
P2
-
6
-
b42
-
generic
-
generic
VC7 cygwin builds have brought up issues around the Windows VC6 and VC7 runtime libraries msvcrt.dll, msvcr71.dll, msvcp71.dll.
They should not be rebased, should have execute permission, and probably should be read-only files.
If a DLL doesn't have execute permission it appears to not load and if these runtime libraries don't have execute permission, the exe just fails with little information (since the stdout logic or much of it is in these libraries, it's can't do much). The build will fail as soon as it trys to use the java or javac that was built if these DLL's don't have execute permission.
MKS builds seem to leave them with read-write permission and allow them to be rebased, and
MKS also seems to change their permission somehow to execute permissions, I can't figure that one out. But adding execute permission to these files should probably be explicit.
MKS builds are allowing the rebasing of them, and should not.
Here is the failure I was seeing:
>>>>> Making rebase-dlls @ Mon Jun 20 16:19:15 PDT 2005 ...
>>>>
>>>>
>> /usr/bin/find c:/kto/pjava-cyg/control/build/windows-i586/bin -type f
>> '(' -name '*.dll' -o -name '*.ocx' ')' -print | \
>> /usr/bin/grep -v unicows.dll | \
>> /usr/bin/grep -v msvcrt.dll >
>> c:/kto/pjava-cyg/control/build/windows-i586/tmp/deploy/plugin/rebase.input
>>
>> if [ -n "`/usr/bin/ls
>> c:/kto/pjava-cyg/control/build/windows-i586/plugin`" ]; then \
>> /usr/bin/find c:/kto/pjava-cyg/control/build/windows-i586/plugin
>> -type f '(' -name '*.dll' -o -name '*.cpl' ')' -print | \
>> /usr/bin/grep -v unicows.dll | \
>> /usr/bin/grep -v msvcrt.dll >>
>> c:/kto/pjava-cyg/control/build/windows-i586/tmp/deploy/plugin/rebase.input;
>> \
>> fi
>> /usr/bin/ls: c:/kto/pjava-cyg/control/build/windows-i586/plugin: No
>> such file or directory
>> C:/PROGRA~1/MICROS~2.NET/Vc7/bin/../../Common7/Tools/Bin/rebase.exe -b
>> 0x6D000000 -R c:/kto/pjava-cyg/control/build/windows-i586/bin -G
>> c:/kto/pjava-cyg/control/build/windows-i586/tmp/deploy/plugin/rebase.input
>>
>>
>> REBASE: Total Size of mapping 0x0000000000cc0000
>> REBASE: Range 0x000000006d000000 -0x000000006dcc0000
>> REBASE: *** RelocateImage failed (msvcp71.dll). Image may be corrupted
>> REBASE: *** RelocateImage failed (msvcr71.dll). Image may be corrupted
>> make[2]: *** [rebase-dlls] Error 99
>> make[2]: Leaving directory `/cygdrive/c/kto/pjava-cyg/deploy/make/plugin'
>> make[1]: *** [images] Error 2
>> make[1]: Leaving directory `/cygdrive/c/kto/pjava-cyg/deploy/make'
>> make: *** [deploy-build] Error 2
>> BUILD FAILED, see logfile
>> ###################################################################
###@###.### 2005-06-21 17:29:01 GMT
They should not be rebased, should have execute permission, and probably should be read-only files.
If a DLL doesn't have execute permission it appears to not load and if these runtime libraries don't have execute permission, the exe just fails with little information (since the stdout logic or much of it is in these libraries, it's can't do much). The build will fail as soon as it trys to use the java or javac that was built if these DLL's don't have execute permission.
MKS builds seem to leave them with read-write permission and allow them to be rebased, and
MKS also seems to change their permission somehow to execute permissions, I can't figure that one out. But adding execute permission to these files should probably be explicit.
MKS builds are allowing the rebasing of them, and should not.
Here is the failure I was seeing:
>>>>> Making rebase-dlls @ Mon Jun 20 16:19:15 PDT 2005 ...
>>>>
>>>>
>> /usr/bin/find c:/kto/pjava-cyg/control/build/windows-i586/bin -type f
>> '(' -name '*.dll' -o -name '*.ocx' ')' -print | \
>> /usr/bin/grep -v unicows.dll | \
>> /usr/bin/grep -v msvcrt.dll >
>> c:/kto/pjava-cyg/control/build/windows-i586/tmp/deploy/plugin/rebase.input
>>
>> if [ -n "`/usr/bin/ls
>> c:/kto/pjava-cyg/control/build/windows-i586/plugin`" ]; then \
>> /usr/bin/find c:/kto/pjava-cyg/control/build/windows-i586/plugin
>> -type f '(' -name '*.dll' -o -name '*.cpl' ')' -print | \
>> /usr/bin/grep -v unicows.dll | \
>> /usr/bin/grep -v msvcrt.dll >>
>> c:/kto/pjava-cyg/control/build/windows-i586/tmp/deploy/plugin/rebase.input;
>> \
>> fi
>> /usr/bin/ls: c:/kto/pjava-cyg/control/build/windows-i586/plugin: No
>> such file or directory
>> C:/PROGRA~1/MICROS~2.NET/Vc7/bin/../../Common7/Tools/Bin/rebase.exe -b
>> 0x6D000000 -R c:/kto/pjava-cyg/control/build/windows-i586/bin -G
>> c:/kto/pjava-cyg/control/build/windows-i586/tmp/deploy/plugin/rebase.input
>>
>>
>> REBASE: Total Size of mapping 0x0000000000cc0000
>> REBASE: Range 0x000000006d000000 -0x000000006dcc0000
>> REBASE: *** RelocateImage failed (msvcp71.dll). Image may be corrupted
>> REBASE: *** RelocateImage failed (msvcr71.dll). Image may be corrupted
>> make[2]: *** [rebase-dlls] Error 99
>> make[2]: Leaving directory `/cygdrive/c/kto/pjava-cyg/deploy/make/plugin'
>> make[1]: *** [images] Error 2
>> make[1]: Leaving directory `/cygdrive/c/kto/pjava-cyg/deploy/make'
>> make: *** [deploy-build] Error 2
>> BUILD FAILED, see logfile
>> ###################################################################
###@###.### 2005-06-21 17:29:01 GMT