Building OpenJDK 8 on Windows 8.1 Pro -- problems with msvcr100.dll
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Tue Nov 5 09:31:18 UTC 2013
On 2013-11-05 09:01, Magnus Ihse Bursie wrote:
>
>> Using the setup below, the configure script fails with the following
>> msvcr100.dll-related errors:
>> (1) configure: The file type of the located msvcr100.dll is PE32+
>> executable for MS Windows (DLL) (GUI) Mono/.Net assembly
> That's a new one. Where did configure pick this one up?
>> MinGW/MSYS (mingw-developer-toolkit, mingw32-base & msys-base
>> versions 2013072300, mingw32-gcc-g++ version 4.8.1-4)
>
> Aha, you're using msys! The recommended build environment on Windows
> is cygwin. I didn't think msys was actually working at this point.
>
> It might be the case that the msys "file" command classifies the dll
> differently.
That was indeed exactly the case. For the same, 64-bit file, file in
Cygwin classifies it as:
"PE32+ executable (DLL) (GUI) x86-64, for MS Windows"
but file in msys classifies it as:
"PE32+ executable for MS Windows (DLL) (GUI) Mono/.Net assembly"
The latter is apparently wrong. :(
On Ubuntu 11.04, file says the same as msys; on Ubuntu 13.10 it says the
same as cygwin.
Both Ubuntu 11.04 are using file 5.04, both Ubuntu 13.10 and my cygwin
are using file 5.11.
So, msys is shipping an old and broken version of file.
However, for our practical purposes, we can assume that PE32+ (in
contrast to PE32) is enough to distinguish the bitness of the dll. (That
is not enough, in theory, but will be for this specific case.)
To get past this, try modifying
CORRECT_MSVCR_ARCH=x86-64
in toolchain_windows.m4 to
CORRECT_MSVCR_ARCH=PE32+
I'll file a bug to figure out a more proper solution.
/Magnus
More information about the build-dev
mailing list