WindowsでのOpenJDKビルドでmspdbcore.dllがみつからないときの対処

WSLを使ってWindows版のOpenJDKをビルドできるということだったので、ずっと試してた。
Windows Subsystem for Linux を使って OpenJDK をビルド - #chiroito ’s blog

けど、configureでcがコンパイルできるか試すところで止まってしまう。
config.logを見ると、どうも

c1: fatal error C1356: mspdbcore.dll を見つけることができません

というエラーが出ている。

VC++のbin/Hostx86/x64/cl.exeというのを使っているのだけど、Hostx86/x64にはmspdbcore.dllがない。一方でHostx86/x86やHostx64/x64にはmspdbcore.dllがあって、コマンドラインで試したところこちらではコンパイルが通る。

ということで、強制的にHostx64/x64のほうのcl.exeを使うようにしてみたらビルドが通った。

$ export CC=/mnt/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe 
$ export CXX=/mnt/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe 
$ bash configure --with-boot-jdk=/mnt/c/Users/naoki/java/jdk/jdk-13.0.1 --disable-hotspot-gtest                            
$ make images

無事recordもうごいてる f:id:nowokay:20191208074736p:plain