[foreign] libclang.dll not copied to JDK image on Windows

Henry Jen henry.jen at oracle.com
Wed Jan 16 16:54:15 UTC 2019


I remember this was fixed by copy using CLANG_LIBNAME, 

https://cr.openjdk.java.net/~henryjen/panama/build-windows/webrev.01/webrev/

but perhaps it got reverted.

Another follow up that wasn’t pushed is following to make sure 

https://cr.openjdk.java.net/~henryjen/panama/libclang-symlinks/webrev/

Cheers,
Henry

> On Jan 16, 2019, at 7:30 AM, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
> 
> Yeah - noted the same, working on a fix
> 
> Maurizio
> 
> On 16/01/2019 15:22, Jorn Vernee wrote:
>> Afaik the `libclang.dll` file is supposed to be in the `bin` folder after building. It's not copied there for me either currently, but jextract works since I have the llvm/bin folder on the PATH, so the library can be loaded from there. The copying was supposedly working when the Windows build patch came in [1]
>> 
>>     "This patch allow build image to be completed successfully and libclang.dll copied to bin as expected."
>> 
>> And I remember verifying that as well. I guess I just never noticed the regression since I have the llvm/bin folder on my PATH.
>> 
>> Jorn
>> 
>> [1] : https://mail.openjdk.java.net/pipermail/panama-dev/2018-October/003003.html
>> 
>> Maurizio Cimadamore schreef op 2019-01-16 15:07:
>>> As the subject implies, there seems to be a build setup issue on
>>> windows, as the image I've built doesn't have libclang.dll under the
>>> images 'lib' folder.
>>> 
>>> As a result jextract fails with the simplest of example:
>>> 
>>> $ build/windows-x64/images/jdk/bin/jextract.exe foo.h
>>> Exception in thread "main" java.lang.UnsatisfiedLinkError:
>>> C:\cygwin64\home\MCIMADAM\panama\closed\build\windows-x64\images\jdk\bin\jclang.dll: 
>>> Can't find dependent libraries
>>>         at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
>>>         at
>>> java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2451) 
>>>         at
>>> java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2523) 
>>>         at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2733)
>>>         at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2679)
>>>         at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:849)
>>>         at java.base/java.lang.System.loadLibrary(System.java:1905)
>>>         at
>>> jdk.internal.clang/jdk.internal.clang.LibClang.<clinit>(LibClang.java:35) 
>>>         at
>>> jdk.jextract/com.sun.tools.jextract.parser.Parser.parse(Parser.java:71)
>>>         at
>>> jdk.jextract/com.sun.tools.jextract.JextractTool.processHeaders(JextractTool.java:58) 
>>>         at jdk.jextract/com.sun.tools.jextract.Main.run(Main.java:264)
>>>         at jdk.jextract/com.sun.tools.jextract.Main.main(Main.java:334)
>>> 
>>> 
>>> Is this a known issue? This is what I get in the spec.gmk file:
>>> 
>>> CLANG_LIB_PATH:=/cygdrive/c/progra~1/llvm/lib
>>> CLANG_INCLUDE_PATH:=/cygdrive/c/progra~1/llvm/include
>>> CLANG_INCLUDE_AUX_PATH:=/cygdrive/c/progra~1/llvm/lib/clang/70fe6e~1.0/include 
>>> CLANG_LIBNAME:=/cygdrive/c/progra~1/llvm/bin/libclang.dll
>>> LIBCLANG_CPPFLAGS:=-I/cygdrive/c/progra~1/llvm/include
>>> LIBCLANG_LDFLAGS:=/LIBPATH:/cygdrive/c/progra~1/llvm/lib
>>> LIBCLANG_LIBS:=/cygdrive/c/progra~1/llvm/lib/libclang.lib
>>> 
>>> All paths involved seem to exist.
>>> 
>>> Maurizio



More information about the panama-dev mailing list