Error Running jextract on d3d12.h

Jorn Vernee jorn.vernee at oracle.com
Wed Sep 9 09:16:05 UTC 2020


Hi Michael,

Too bad that you couldn't get it working. FWIW, the WSL support is still 
a bit of a work in progress, and the Cygwin support has been tested a 
lot more. I'm using Cygwin to build the JDK as well, and though I have 
been able to build with WSL in the past, it doesn't seem to work 
out-of-the-box for compiling a Windows JDK currently (though I have 
successfully used it for Linux JDKs). I get a different error as well.

Will see if I can get it working again (on my machine at least).

Jorn

On 09/09/2020 03:41, Michael Ennen wrote:
> Unfortunately I ran into an error trying to build the JDK on my local 
> Windows machine:
>
> /bin/bash: fork: Invalid argument
> lib/CoreLibraries.gmk:42: recipe for target 
> '/mnt/c/Users/mikee/dev/panama-foreign/build/windows-x86_64-server-release/support/native/java.base/libfdlibm/s_ilogb.obj' 
> failed
> make[3]: *** 
> [/mnt/c/Users/mikee/dev/panama-foreign/build/windows-x86_64-server-release/support/native/java.base/libfdlibm/s_ilogb.obj] 
> Error 254
> make[3]: *** Deleting file 
> '/mnt/c/Users/mikee/dev/panama-foreign/build/windows-x86_64-server-release/support/native/java.base/libfdlibm/s_ilogb.obj'
> make[3]: *** Waiting for unfinished jobs....
> make/Main.gmk:203: recipe for target 'java.base-libs' failed
> make[2]: *** [java.base-libs] Error 2
>
> I will have to try and get AdoptOpenJDK to add nightly builds for 
> foreign-jextract branch.
>
> On Tue, Sep 8, 2020 at 1:12 PM Michael Ennen <mike.ennen at gmail.com 
> <mailto:mike.ennen at gmail.com>> wrote:
>
>     Fantastic. I will give building it a try and see what happens.
>     Thanks for fixing the issue already!
>
>     On Tue, Sep 8, 2020 at 3:41 AM Jorn Vernee <jorn.vernee at oracle.com
>     <mailto:jorn.vernee at oracle.com>> wrote:
>
>         Hi Michael,
>
>         Thanks for trying out jextract!
>
>          > Sorry if it is too early to post feedback like this.
>
>         Not at all :)
>
>         It looks like you are using the pre-built binary from
>         jdk.java.net
>         <https://urldefense.com/v3/__http://jdk.java.net__;!!GqivPVa7Brio!JqlklYM5FZERg9DSRRy9c_gEWiojjqKemNRfUt4BBC-cb3SZUyCKxW7XRpZp9rPK$>?
>         Note
>         that that one is pretty old. We are planning to update it in
>         the near
>         future, but if you don't want to wait, you can also try
>         building the
>         panama JDK yourself. The repo is found at:
>         https://github.com/openjdk/panama-foreign
>         <https://urldefense.com/v3/__https://github.com/openjdk/panama-foreign__;!!GqivPVa7Brio!JqlklYM5FZERg9DSRRy9c_gEWiojjqKemNRfUt4BBC-cb3SZUyCKxW7XRgdSwLuQ$>
>         See doc/building.md [1] for
>         instructions (though you'll have to substitute mercurial for
>         git, as the
>         doc has not yet been updated after the recent mainline
>         transition [2])
>
>         In the time between that binary coming out and now, there has
>         been a
>         complete re-write of jextract. With the current version I gave
>         extracting d3d12.h a try, using the following commands
>         (powershell):
>
>              $jdk = <path to built jdk>
>              nal -Name jextract -Value "$jdk\bin\jextract.exe"
>              $I = "C:\Program Files (x86)\Windows
>         Kits\10\Include\10.0.18362.0"
>              jextract -d out -t org.jextract -I "$I\um" --filter
>         "d3d12.h" --
>         "$I\um\d3d12.h"
>
>         But I ran into a problem for which I've filed:
>         https://bugs.openjdk.java.net/browse/JDK-8252899
>
>         I'll try and see if I can get the extraction of d3d12.h working.
>
>         Thanks,
>         Jorn
>
>         [1] :
>         https://github.com/openjdk/panama-foreign/blob/foreign-jextract/doc/building.md
>         <https://urldefense.com/v3/__https://github.com/openjdk/panama-foreign/blob/foreign-jextract/doc/building.md__;!!GqivPVa7Brio!JqlklYM5FZERg9DSRRy9c_gEWiojjqKemNRfUt4BBC-cb3SZUyCKxW7XRiq855ms$>
>         [2] : https://github.com/openjdk/jdk/pull/21
>         <https://urldefense.com/v3/__https://github.com/openjdk/jdk/pull/21__;!!GqivPVa7Brio!JqlklYM5FZERg9DSRRy9c_gEWiojjqKemNRfUt4BBC-cb3SZUyCKxW7XRob2igXb$>
>
>         On 08/09/2020 08:27, Michael Ennen wrote:
>         > Sorry for the consecutive replies to my own message. I read
>         some more docs
>         > and believe the following should work in theory:
>         >
>         > $inc ="C:\Program Files (x86)\Windows
>         Kits\10\Include\10.0.17763.0"
>         > $lib = "C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0"
>         > $panamaHome = "C:\Program Files\Java\jdk-14-panama"
>         > & $panamaHome\bin\jextract -J-Xmx8G --log FINEST -L
>         "C:\Windows\System32"
>         > -L "$lib\um\x64" -I "$inc\um" -l d3d12 -o d3d12.jar
>         --record-library-path
>         > $inc\um\d3d12.h
>         >
>         > The same error occurs.
>         >
>         > Log:
>         >
>         > Package clang_support is selected for C:\Program
>         > Files\Java\jdk-14-panama\conf\jextract
>         >
>         > Package  is selected for C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um
>         >
>         > Parsing header file C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um\d3d12.h with following args:
>         >
>         > arg[0] = -IC:\Program Files (x86)\Windows
>         Kits\10\Include\10.0.17763.0\um
>         >
>         >
>         > arg[1] = -IC:\Program Files\Java\jdk-14-panama\conf\jextract
>         >
>         >
>         >
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12.h:33:10: warning:
>         non-portable path
>         > to file '"Windows.h"'; specified path differs in case from f
>         > ile name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12.h:34:10: warning:
>         non-portable path
>         > to file '"Ole2.h"'; specified path differs in case from file
>         >   name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12.h:334:10: warning:
>         non-portable path
>         > to file '"OAIdl.h"'; specified path differs in case from fi
>         > le name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12.h:335:10: warning:
>         non-portable path
>         > to file '"OCIdl.h"'; specified path differs in case from fi
>         > le name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/ocidl.h:29:10: warning:
>         non-portable path
>         > to file '"Windows.h"'; specified path differs in case from f
>         > ile name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/ocidl.h:30:10: warning:
>         non-portable path
>         > to file '"Ole2.h"'; specified path differs in case from file
>         >   name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/ocidl.h:324:10: warning:
>         non-portable path
>         > to file '"OAIdl.h"'; specified path differs in case from fi
>         > le name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3dcommon.h:29:10: warning:
>         non-portable
>         > path to file '"Windows.h"'; specified path differs in case fr
>         > om file name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3dcommon.h:30:10: warning:
>         non-portable
>         > path to file '"Ole2.h"'; specified path differs in case from
>         > file name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3dcommon.h:57:10: warning:
>         non-portable
>         > path to file '"OAIdl.h"'; specified path differs in case from
>         >   file name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3dcommon.h:58:10: warning:
>         non-portable
>         > path to file '"OCIdl.h"'; specified path differs in case from
>         >   file name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12sdklayers.h:33:10: warning:
>         > non-portable path to file '"Windows.h"'; specified path
>         differs in ca
>         > se from file name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12sdklayers.h:34:10: warning:
>         > non-portable path to file '"Ole2.h"'; specified path differs
>         in case
>         > from file name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12sdklayers.h:138:10:
>         warning:
>         > non-portable path to file '"OAIdl.h"'; specified path
>         differs in cas
>         > e from file name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12sdklayers.h:139:10:
>         warning:
>         > non-portable path to file '"OCIdl.h"'; specified path
>         differs in cas
>         > e from file name on disk [-Wnonportable-include-path]
>         >
>         >
>         > Clang diagnostic: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12sdklayers.h:2730:15:
>         error: unknown
>         > type name 'D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED'
>         >
>         >
>         >
>         > java.lang.RuntimeException: C:\Program Files (x86)\Windows
>         > Kits\10\Include\10.0.17763.0\um/d3d12sdklayers.h:2730:15:
>         error: unknown
>         > type name 'D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UN
>         > SUPPORTED'
>         >
>         >
>         >
>         > Thanks.
>         >
>         > On Mon, Sep 7, 2020 at 11:05 PM Michael Ennen
>         <mike.ennen at gmail.com <mailto:mike.ennen at gmail.com>> wrote:
>         >
>         >> I should note that I also tried adding the DirectX 12
>         libraries like so:
>         >>
>         >> & $panamaHome\bin\jextract -J-Xmx8G -L $inc\um\x64 -L
>         C:\Windows\System32\
>         >> -I $inc\um -l d3d12 -o d3d12.jar --record-library-path
>         $inc\um\d3d12.h
>         >>
>         >> (first -L argument)
>         >>
>         >> On Mon, Sep 7, 2020 at 4:29 PM Michael Ennen
>         <mike.ennen at gmail.com <mailto:mike.ennen at gmail.com>> wrote:
>         >>
>         >>> Hi Panama Devs,
>         >>>
>         >>> Sorry if it is too early to post feedback like this.
>         >>>
>         >>> I am attempting to run `jextract` on the d3d12.h DirectX
>         12 header file
>         >>> so that I can use panama to interact with native DirectX
>         12 from Java.
>         >>>
>         >>> I am attempting to run jextract as follows:
>         >>>
>         >>> $inc ="C:\Program Files (x86)\Windows
>         Kits\10\Include\10.0.17763.0"
>         >>> $panamaHome = "C:\Program Files\Java\jdk-14-panama"
>         >>> & $panamaHome\bin\jextract -J-Xmx8G -L
>         C:\Windows\System32\ -I $inc\um -l
>         >>> d3d12 -o d3d12.jar --record-library-path $inc\um\d3d12.h
>         >>>
>         >>> When I do I get the following error:
>         >>>
>         >>> java.lang.RuntimeException: C:\Program Files (x86)\Windows
>         >>> Kits\10\Include\10.0.17763.0\um/d3d12sdklayers.h:2730:15:
>         error: unknown
>         >>> type name 'D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED'
>         >>>
>         >>> It is quite probable I have the command line arguments
>         wrong. I read the
>         >>> jextract --help arguments list and the examples document
>         (for the 2 Windows
>         >>> examples) and this is what I came up with.
>         >>>
>         >>> Thanks for your work.
>         >>> --
>         >>> Michael Ennen
>         >>>
>         >>
>         >> --
>         >> Michael Ennen
>         >>
>         >
>
>
>
>     -- 
>     Michael Ennen
>
>
>
> -- 
> Michael Ennen


More information about the panama-dev mailing list