From 618684f7a0098f90131f31689bc526434e43b34a Mon Sep 17 00:00:00 2001 From: Jerome Haltom Date: Thu, 18 Jan 2024 10:05:29 -0600 Subject: [PATCH 1/5] Introduce platform specific assembly builds from refasm branch. These are not yet deployed, but are used to generate per-platform JNI headers for the native libraries. They increase the build time, immensely, but we are going to have to eat that eventually. openjdk.props file now supports RuntimeIdentifier metadata. If '', file is included in all builds. If set to 'ref' file is included only in 'reference assembly' build (which is still our impl assembly for now). If linux, win, osx, etc. --- IKVM.sln | 18 +++ openjdk.props | 85 ++-------- .../IKVM.Java.runtime.linux.msbuildproj | 8 + .../IKVM.Java.runtime.osx.msbuildproj | 8 + .../IKVM.Java.runtime.win.msbuildproj | 8 + src/IKVM.Java/IKVM.Java.msbuildproj | 152 +----------------- src/IKVM.Java/IKVM.Java.runtime.props | 86 ++++++++++ src/IKVM.Java/IKVM.Java.runtime.targets | 105 ++++++++++++ src/libiava/libiava.clangproj | 1 - src/libnet/libnet.clangproj | 1 - src/libnio/libnio.clangproj | 1 - src/libunpack/libunpack.clangproj | 1 - targets/openjdk.lib.props | 12 ++ 13 files changed, 258 insertions(+), 228 deletions(-) create mode 100644 src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj create mode 100644 src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj create mode 100644 src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj create mode 100644 src/IKVM.Java/IKVM.Java.runtime.props create mode 100644 src/IKVM.Java/IKVM.Java.runtime.targets diff --git a/IKVM.sln b/IKVM.sln index d69efc6beb..e2dbf3936d 100644 --- a/IKVM.sln +++ b/IKVM.sln @@ -54,6 +54,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.MSBuild.Tasks.Tests", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.Java", "src\IKVM.Java\IKVM.Java.msbuildproj", "{ABD81C7E-F986-4018-986E-ACAF82C64D3A}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.Java.runtime.linux", "src\IKVM.Java.runtime.linux\IKVM.Java.runtime.linux.msbuildproj", "{BC8E0429-5E53-4F23-8CE8-86A1B44D669E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.Java.runtime.win", "src\IKVM.Java.runtime.win\IKVM.Java.runtime.win.msbuildproj", "{537B5ACE-81A2-4DCA-AB4D-9862E63F448D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.Java.runtime.osx", "src\IKVM.Java.runtime.osx\IKVM.Java.runtime.osx.msbuildproj", "{C6BC9419-F394-4B59-A707-F9A82A3FE625}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.NET.Sdk", "src\IKVM.NET.Sdk\IKVM.NET.Sdk.msbuildproj", "{704BD7C7-7746-4D72-A86E-ECFE7BBD80CC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.MSBuild", "src\IKVM.MSBuild\IKVM.MSBuild.msbuildproj", "{AE5BFBC6-7DD4-4ACA-BEA7-86F842F38B64}" @@ -383,6 +389,18 @@ Global {ABD81C7E-F986-4018-986E-ACAF82C64D3A}.Debug|Any CPU.Build.0 = Debug|Any CPU {ABD81C7E-F986-4018-986E-ACAF82C64D3A}.Release|Any CPU.ActiveCfg = Release|Any CPU {ABD81C7E-F986-4018-986E-ACAF82C64D3A}.Release|Any CPU.Build.0 = Release|Any CPU + {BC8E0429-5E53-4F23-8CE8-86A1B44D669E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC8E0429-5E53-4F23-8CE8-86A1B44D669E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC8E0429-5E53-4F23-8CE8-86A1B44D669E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC8E0429-5E53-4F23-8CE8-86A1B44D669E}.Release|Any CPU.Build.0 = Release|Any CPU + {537B5ACE-81A2-4DCA-AB4D-9862E63F448D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {537B5ACE-81A2-4DCA-AB4D-9862E63F448D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {537B5ACE-81A2-4DCA-AB4D-9862E63F448D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {537B5ACE-81A2-4DCA-AB4D-9862E63F448D}.Release|Any CPU.Build.0 = Release|Any CPU + {C6BC9419-F394-4B59-A707-F9A82A3FE625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6BC9419-F394-4B59-A707-F9A82A3FE625}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6BC9419-F394-4B59-A707-F9A82A3FE625}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6BC9419-F394-4B59-A707-F9A82A3FE625}.Release|Any CPU.Build.0 = Release|Any CPU {704BD7C7-7746-4D72-A86E-ECFE7BBD80CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {704BD7C7-7746-4D72-A86E-ECFE7BBD80CC}.Debug|Any CPU.Build.0 = Debug|Any CPU {704BD7C7-7746-4D72-A86E-ECFE7BBD80CC}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/openjdk.props b/openjdk.props index cee82ceadb..08a17b81b1 100644 --- a/openjdk.props +++ b/openjdk.props @@ -2,7 +2,15 @@ %(Identity) + + + + + + + + @@ -1348,33 +1356,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1537,42 +1519,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1674,18 +1621,6 @@ - - - - - - - - - - - - diff --git a/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj b/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj new file mode 100644 index 0000000000..4cc6cb7fe8 --- /dev/null +++ b/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj @@ -0,0 +1,8 @@ + + + linux + + + + + diff --git a/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj b/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj new file mode 100644 index 0000000000..e7a75938f5 --- /dev/null +++ b/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj @@ -0,0 +1,8 @@ + + + osx + + + + + diff --git a/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj b/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj new file mode 100644 index 0000000000..9f49101e48 --- /dev/null +++ b/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj @@ -0,0 +1,8 @@ + + + win + + + + + diff --git a/src/IKVM.Java/IKVM.Java.msbuildproj b/src/IKVM.Java/IKVM.Java.msbuildproj index 81ddd9d256..cac99f43a6 100644 --- a/src/IKVM.Java/IKVM.Java.msbuildproj +++ b/src/IKVM.Java/IKVM.Java.msbuildproj @@ -1,154 +1,8 @@  - - - - - - net472;net6.0 - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\javac')) - $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\javac.exe')) - -J-Xmx1536M - "$(JavaCompilerPath)" $(JavaCompilerArgs) - - - - - - - - - - - - - - $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\rmic')) - $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\rmic.exe')) - -J-client -J-Xms128m - "$(RmiCompilerPath)" $(RmiCompilerArgs) - - - - - - $(IntermediateOutputPath)rmistubs\ - <_BuildRmiStubsCoreStampFile>$(RmiStubsOutputPath)stamp - - - - - <_RmiCompilerClasspath Include="@(Classpath);$(ClassOutputPath)" /> - <_RmiCompilerArgs Include="@(RmiCompilerArgs)" /> - <_RmiCompilerArgs Include="-nowarn" /> - <_RmiCompilerArgs Include="-bootclasspath" /> - <_RmiCompilerArgs Include="@(_RmiCompilerClasspath, '$([System.IO.Path]::PathSeparator)')" /> - <_RmiCompilerArgs Include="-d" /> - <_RmiCompilerArgs Include="$(RmiStubsOutputPath)" /> - - - <_RmiCompilerArgs>@(_RmiCompilerArgs, ' ') - - - - - - - - - - - $(BuildRmiStubsDependsOn) - CompileJava; - ResolveRmiStubInputItems; - _BuildRmiStubs; - - - - - - - - - - - - - - - - - $(CoreCleanDependsOn); - CleanRmiStubs; - - - - - BuildRmiStubs; - $(CoreCompileDependsOn); - + ref + + diff --git a/src/IKVM.Java/IKVM.Java.runtime.props b/src/IKVM.Java/IKVM.Java.runtime.props new file mode 100644 index 0000000000..76da1bd2e8 --- /dev/null +++ b/src/IKVM.Java/IKVM.Java.runtime.props @@ -0,0 +1,86 @@ + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + + + net472;net6.0 + IKVM.Java + false + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/IKVM.Java/IKVM.Java.runtime.targets b/src/IKVM.Java/IKVM.Java.runtime.targets new file mode 100644 index 0000000000..aaa976f4fa --- /dev/null +++ b/src/IKVM.Java/IKVM.Java.runtime.targets @@ -0,0 +1,105 @@ + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + + + + + + $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\javac')) + $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\javac.exe')) + -J-Xmx1536M + "$(JavaCompilerPath)" $(JavaCompilerArgs) + + + + + + + + + + + + + + $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\rmic')) + $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\rmic.exe')) + -J-client -J-Xms128m + "$(RmiCompilerPath)" $(RmiCompilerArgs) + + + + + + $(IntermediateOutputPath)rmistubs\ + <_BuildRmiStubsCoreStampFile>$(RmiStubsOutputPath)stamp + + + + + <_RmiCompilerClasspath Include="@(Classpath);$(ClassOutputPath)" /> + <_RmiCompilerArgs Include="@(RmiCompilerArgs)" /> + <_RmiCompilerArgs Include="-nowarn" /> + <_RmiCompilerArgs Include="-bootclasspath" /> + <_RmiCompilerArgs Include="@(_RmiCompilerClasspath, '$([System.IO.Path]::PathSeparator)')" /> + <_RmiCompilerArgs Include="-d" /> + <_RmiCompilerArgs Include="$(RmiStubsOutputPath)" /> + + + <_RmiCompilerArgs>@(_RmiCompilerArgs, ' ') + + + + + + + + + + + $(BuildRmiStubsDependsOn) + CompileJava; + ResolveRmiStubInputItems; + _BuildRmiStubs; + + + + + + + + + + + + + + + + + $(CoreCleanDependsOn); + CleanRmiStubs; + + + + + + BuildRmiStubs; + $(CoreCompileDependsOn); + + + + diff --git a/src/libiava/libiava.clangproj b/src/libiava/libiava.clangproj index fc18582a62..d10120fbd4 100644 --- a/src/libiava/libiava.clangproj +++ b/src/libiava/libiava.clangproj @@ -14,7 +14,6 @@ - diff --git a/src/libnet/libnet.clangproj b/src/libnet/libnet.clangproj index a7ac7d24f3..d541b70ac7 100644 --- a/src/libnet/libnet.clangproj +++ b/src/libnet/libnet.clangproj @@ -14,7 +14,6 @@ - diff --git a/src/libnio/libnio.clangproj b/src/libnio/libnio.clangproj index 14fb5e5dd5..0e53cc0de0 100644 --- a/src/libnio/libnio.clangproj +++ b/src/libnio/libnio.clangproj @@ -19,7 +19,6 @@ - diff --git a/src/libunpack/libunpack.clangproj b/src/libunpack/libunpack.clangproj index 9e0f94059c..970f0f2a0b 100644 --- a/src/libunpack/libunpack.clangproj +++ b/src/libunpack/libunpack.clangproj @@ -12,7 +12,6 @@ - diff --git a/targets/openjdk.lib.props b/targets/openjdk.lib.props index 5a739d38f1..39465d08ca 100644 --- a/targets/openjdk.lib.props +++ b/targets/openjdk.lib.props @@ -28,6 +28,10 @@ $(PreprocessorDefinitions);_STATIC_CPPLIB;_DISABLE_DEPRECATE_STATIC_CPPLIB;WIN32_LEAN_AND_MEAN;IAL + + + + solaris @@ -35,6 +39,10 @@ $(PreprocessorDefinitions);_GNU_SOURCE;_REENTRANT;_LARGEFILE64_SOURCE + + + + solaris @@ -42,6 +50,10 @@ true + + + + $(IncludeDirectories);$(OpenJdkDir)jdk\src\share\native\common From 364b928ec40b4fa3b0e76ea72787d247c3c18f72 Mon Sep 17 00:00:00 2001 From: Jerome Haltom Date: Thu, 18 Jan 2024 10:08:19 -0600 Subject: [PATCH 2/5] Bad project file name. --- src/IKVM.Java/IKVM.Java.runtime.props | 2 +- src/libawt/libawt.clangproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/IKVM.Java/IKVM.Java.runtime.props b/src/IKVM.Java/IKVM.Java.runtime.props index 76da1bd2e8..d51949a39e 100644 --- a/src/IKVM.Java/IKVM.Java.runtime.props +++ b/src/IKVM.Java/IKVM.Java.runtime.props @@ -30,7 +30,7 @@ - + diff --git a/src/libawt/libawt.clangproj b/src/libawt/libawt.clangproj index f3140e4309..ef4e1b3c00 100644 --- a/src/libawt/libawt.clangproj +++ b/src/libawt/libawt.clangproj @@ -13,4 +13,4 @@ - \ No newline at end of file + From 4eede5e845bc5a888d9cdd287d697c0b8ba25d21 Mon Sep 17 00:00:00 2001 From: Jerome Haltom Date: Thu, 18 Jan 2024 10:20:50 -0600 Subject: [PATCH 3/5] Fix reference to projects. --- src/IKVM.Java/IKVM.Java.runtime.props | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/IKVM.Java/IKVM.Java.runtime.props b/src/IKVM.Java/IKVM.Java.runtime.props index d51949a39e..fd751e1bee 100644 --- a/src/IKVM.Java/IKVM.Java.runtime.props +++ b/src/IKVM.Java/IKVM.Java.runtime.props @@ -28,9 +28,9 @@ - - - + + + From d244624c8739643c08d919667bd7d0af55825bb3 Mon Sep 17 00:00:00 2001 From: Jerome Haltom Date: Thu, 18 Jan 2024 10:44:23 -0600 Subject: [PATCH 4/5] Add unique PackageId to prevent conflicts on restore. --- src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj | 1 + src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj | 1 + src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj | 1 + 3 files changed, 3 insertions(+) diff --git a/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj b/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj index 4cc6cb7fe8..fe5d9ed7e5 100644 --- a/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj +++ b/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj @@ -1,5 +1,6 @@  + IKVM.Java.runtime.linux linux diff --git a/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj b/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj index e7a75938f5..3d716ad07a 100644 --- a/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj +++ b/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj @@ -1,5 +1,6 @@  + IKVM.Java.runtime.osx osx diff --git a/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj b/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj index 9f49101e48..8b00a8071f 100644 --- a/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj +++ b/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj @@ -1,5 +1,6 @@  + IKVM.Java.runtime.win win From c5ad8762834c5bdf3953e663d3cb300145eb62b0 Mon Sep 17 00:00:00 2001 From: Jerome Haltom Date: Thu, 18 Jan 2024 17:04:15 -0600 Subject: [PATCH 5/5] Add required ZipFileSystemProvider back. --- openjdk.props | 1 + 1 file changed, 1 insertion(+) diff --git a/openjdk.props b/openjdk.props index 08a17b81b1..6b1b4373f1 100644 --- a/openjdk.props +++ b/openjdk.props @@ -1621,6 +1621,7 @@ +