-
-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libnet and libnio #409
libnet and libnio #409
Commits on Aug 12, 2023
-
Need to devise a way to get the platform specific headers from IKVM.Java. This requires new IKVM.Net.SDK support, and to split up IKVM.Java into platform specific versions. Which introduces our ref-assembly problem. Needs to be solved.
Configuration menu - View commit details
-
Copy full SHA for 1ec891f - Browse repository at this point
Copy the full SHA 1ec891fView commit details
Commits on Aug 16, 2023
-
Added net.dll and nio.dll. Building many files, though many are exclu…
…ded since they don't exactly match the headers generated by IKVM.Java. Some important utiltiies are available, however. For instance, Net.socket0, for creating sockets, can now be used. FileDispatcherImpl will be an important one to get building, but it doesn't build just yet. ServerSocketchannelImpl does, SocketDispatcher, SocketChannelImpl, LinuxWatchService.c builds. UnixNativeDispatch Trying to figure out how to materialize a .NET framework socket out of a handle.
Configuration menu - View commit details
-
Copy full SHA for 814de7d - Browse repository at this point
Copy the full SHA 814de7dView commit details
Commits on Aug 17, 2023
-
Add a setFd and setHandle method to FileDescriptor, so IOUtil and fri…
…ends can be used to set the FD from the call to socket0(). Core makes this easy, as it will take an existing handle. Framework needs to invoke the SocketInformation ctor, with information provided by a duplicate socket. Mono is unimplemented. But, if on Unix, we can probably pack some stuff into SocketInformation. Leave that up to the future. Fix a few JNI calls.
Configuration menu - View commit details
-
Copy full SHA for 2f5d2e4 - Browse repository at this point
Copy the full SHA 2f5d2e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d75fff - Browse repository at this point
Copy the full SHA 8d75fffView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1628512 - Browse repository at this point
Copy the full SHA 1628512View commit details -
Configuration menu - View commit details
-
Copy full SHA for ef520bc - Browse repository at this point
Copy the full SHA ef520bcView commit details -
Remove win81-arm. This is deprecated on .NET Core 5+ anyways. There i…
…s technically still Windows machines with Framework out there with ARM32.... but, I think the chances of them using IKVM are zero.
Configuration menu - View commit details
-
Copy full SHA for c1b23d7 - Browse repository at this point
Copy the full SHA c1b23d7View commit details -
Remove explit inclusion of libpthread. Not needed in latest glibc, an…
…d not available in musl.
Configuration menu - View commit details
-
Copy full SHA for ba0daca - Browse repository at this point
Copy the full SHA ba0dacaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4364f12 - Browse repository at this point
Copy the full SHA 4364f12View commit details -
Always use LoadLibraryEx on Windows. NativeLibrary seems to have some uncertainty about when it tries to do path searches and stuff.
Configuration menu - View commit details
-
Copy full SHA for 515d26d - Browse repository at this point
Copy the full SHA 515d26dView commit details
Commits on Aug 19, 2023
-
Use LoadLibraryExW explicitely. NativeLibrary from .NET Core just com…
…plicated things needlessly between Framework/Core. Rename libjava to libikvm. I hate this. But, .NET Core produces a java.dll file, which is loaded into the process using LoadLibrary, even though it's not native. And screws up dependency resolution for net.dll and nio.dll. dotnet/runtime#90839 Will research the single file thing. Need to figure out how to apply it to everything in files to publish.
Configuration menu - View commit details
-
Copy full SHA for f658b59 - Browse repository at this point
Copy the full SHA f658b59View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8de41f5 - Browse repository at this point
Copy the full SHA 8de41f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4cc070a - Browse repository at this point
Copy the full SHA 4cc070aView commit details
Commits on Aug 25, 2023
-
Move loading of 'jvm' up into JNINativeInterface.
Just call Load a second time. Same result. libnio needed a blank JNI_OnLoad. Not sure on this one. Doesn't exist in OpenJDK. Wrap dlopen() in libjvm. P/Invoke wasn't capable of resolving symbol properly on Linux, with libdl being deprecated in Ubuntu > 22.
Configuration menu - View commit details
-
Copy full SHA for 6fb7b33 - Browse repository at this point
Copy the full SHA 6fb7b33View commit details
Commits on Aug 27, 2023
-
Use proper address family based on socket.
Enable native initIDs method. Add a datagram test to the Java lang tests. Add a test to check that adhoc send fails when connected. Add some tests for bind with null values.
Configuration menu - View commit details
-
Copy full SHA for 4f4fd51 - Browse repository at this point
Copy the full SHA 4f4fd51View commit details
Commits on Aug 28, 2023
-
Enable native isIPv6 detection.
Add a test for joining IPv6 multicast groups. Skip unaligned long compare and swap tests on ARM[64]. Crashes with SIGBUS or similar. ARM doesn't support unaligned atomics. Add missing socket functions ot jvm.cpp.
Configuration menu - View commit details
-
Copy full SHA for 3b24828 - Browse repository at this point
Copy the full SHA 3b24828View commit details -
No need for separate dl* functions, since JVM_LoadLibrary, etc, provi…
…de the same functionality. Fix test for osx-arm64.
Configuration menu - View commit details
-
Copy full SHA for c81f1d6 - Browse repository at this point
Copy the full SHA c81f1d6View commit details
Commits on Aug 29, 2023
-
Move osx opts to targets. Change install_name to @loader_path/lib$(Ta…
…rgetName).dylib, which should allow linking libs to resolve from relative paths? Maybe.
Configuration menu - View commit details
-
Copy full SHA for a5c7cb3 - Browse repository at this point
Copy the full SHA a5c7cb3View commit details -
Configuration menu - View commit details
-
Copy full SHA for e51a2ee - Browse repository at this point
Copy the full SHA e51a2eeView commit details -
Implement JVM_GetLastErrorString, needed by FileDispatcher.
Use native FileDispatcher. We had to make a local copy of FileDispatcher.c in order to use lock0, since the signatures differ between solaris/windows versions. This is a minor fork, and gets locking working... maybe on OS X too? Remove lock0/release0 implementation from C#, use C version.
Configuration menu - View commit details
-
Copy full SHA for 091a9a5 - Browse repository at this point
Copy the full SHA 091a9a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 73bf17f - Browse repository at this point
Copy the full SHA 73bf17fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3e5e321 - Browse repository at this point
Copy the full SHA 3e5e321View commit details
Commits on Aug 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4551d9f - Browse repository at this point
Copy the full SHA 4551d9fView commit details -
So, libjava will be known as libiava, one off. We need libikvm name f…
…or non-java related IKVM native functionality apparently.
Configuration menu - View commit details
-
Copy full SHA for b65935b - Browse repository at this point
Copy the full SHA b65935bView commit details -
Reintroduce libikvm, containing only ikvm related things, and no depe…
…ndencies on OpenJDK related things. dl functions moved here. This is to prevent the bootstrapping issue with being forced to load libjvm itself using DllImport: the path of libjvm has to follow Java library load rules. libikvm follows .NET loading rules.
Configuration menu - View commit details
-
Copy full SHA for 5ead323 - Browse repository at this point
Copy the full SHA 5ead323View commit details
Commits on Sep 1, 2023
-
Split IKVM.Image out into IKVM.Image.runtime packages, which include …
…the native OpenJDK libraries. Unified the logic for building .runtime images into IKVM.Image/IKVM.Image.runtime.targets. We reuse IkvmImageItem processing, but still pack. This puts the native libraries exclusively in the image. Which will let us eliminate our search path processing for runtimes/native/*. The sun boot path can now be set to the image path, while the user lib path can be set to runtimes/ or the application dir. Need to do that still.
Configuration menu - View commit details
-
Copy full SHA for 80515b4 - Browse repository at this point
Copy the full SHA 80515b4View commit details
Commits on Sep 2, 2023
-
JVM_GetInterfaceVersion needs implementation.
NativeLibrary once again using NativeLibrary where available. This makes more sense now that we ensure full resolution before invoking. NativeLibrary has to bootstrap ikvm.dll on Windows without Mono by calling LoadLibrary directly, since the .NET SDK has the potential for putting the DLL files under runtimes/rid even under Framework. But sometimes it doesn't. boot path replaced with Image path. user path replaced with .NET paths. DestinationSubDirectory still needed for files without extensions. We preload jvm.dll through System.loadLibrary, so that it resolves out of JVM system paths. But, then we also load it by hand in JNI to get the JNI trampoline functions. Ensure we finalize all the manually loaded native libraries.
Configuration menu - View commit details
-
Copy full SHA for 77a1877 - Browse repository at this point
Copy the full SHA 77a1877View commit details -
Configuration menu - View commit details
-
Copy full SHA for af505b4 - Browse repository at this point
Copy the full SHA af505b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8699053 - Browse repository at this point
Copy the full SHA 8699053View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1c95514 - Browse repository at this point
Copy the full SHA 1c95514View commit details -
Configuration menu - View commit details
-
Copy full SHA for 592aa38 - Browse repository at this point
Copy the full SHA 592aa38View commit details -
Configuration menu - View commit details
-
Copy full SHA for 889b861 - Browse repository at this point
Copy the full SHA 889b861View commit details -
Allow duplicate items on publish, since depends into image tree has d…
…uplicates. Add CopyToOutput on a number of PublishProjectReferences. Remove conditional IncludeProjectReferences. Should not be required.
Configuration menu - View commit details
-
Copy full SHA for 87b21ed - Browse repository at this point
Copy the full SHA 87b21edView commit details -
Configuration menu - View commit details
-
Copy full SHA for b2666d9 - Browse repository at this point
Copy the full SHA b2666d9View commit details -
Configuration menu - View commit details
-
Copy full SHA for fea708a - Browse repository at this point
Copy the full SHA fea708aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8a11093 - Browse repository at this point
Copy the full SHA 8a11093View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e8dbd1 - Browse repository at this point
Copy the full SHA 6e8dbd1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 254b6c1 - Browse repository at this point
Copy the full SHA 254b6c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for bdbdce8 - Browse repository at this point
Copy the full SHA bdbdce8View commit details -
Hide some JNI related stuff from FIRST_PASS/IMPORTER/EXPORTER.
Make Tools tests project tolerate duplicate items. Try to load existing libjvm by checking ClassLoader.
Configuration menu - View commit details
-
Copy full SHA for 33339aa - Browse repository at this point
Copy the full SHA 33339aaView commit details -
Fetch from systemNativeLibraries collection. Do preload outside Ensur…
…e, which prevents accessing non initialized fields.
Configuration menu - View commit details
-
Copy full SHA for 8bac907 - Browse repository at this point
Copy the full SHA 8bac907View commit details -
Add an empty libawt for binding.
MSBuild.Tasks.Tests ignore duplicates.
Configuration menu - View commit details
-
Copy full SHA for 3d9d0e5 - Browse repository at this point
Copy the full SHA 3d9d0e5View commit details
Commits on Sep 3, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 03b9abd - Browse repository at this point
Copy the full SHA 03b9abdView commit details -
Change rpath on OS X to just be @loader_path, which I guess is correct.
Fix native lib name unmapping.
Configuration menu - View commit details
-
Copy full SHA for 80d2e5a - Browse repository at this point
Copy the full SHA 80d2e5aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7fa3056 - Browse repository at this point
Copy the full SHA 7fa3056View commit details -
Call System.loadLibrary in JniTests. Unsure about this one. Native.cs no longer needed in tests. Should use default loading logic.
Configuration menu - View commit details
-
Copy full SHA for bc8bad0 - Browse repository at this point
Copy the full SHA bc8bad0View commit details -
Moved loading of JNI libraries out to libjvm. Ensure libjvm sets up L…
…C_PATH to @loader_path, and names itself @rpath/libjvm.dylib. We preload libjvm using NativeLibrary (or libikvm), against a full path.
Configuration menu - View commit details
-
Copy full SHA for 4c241b3 - Browse repository at this point
Copy the full SHA 4c241b3View commit details -
Switch from using DllIMport for libjvm. Order? Preloading? Who knows.…
… Regardless, DllImport couldn't find it, even after a successful preload. Linux behaves same as OSX in that regard. Just use out NativeLibrary to pull out symbols.
Configuration menu - View commit details
-
Copy full SHA for 32c1777 - Browse repository at this point
Copy the full SHA 32c1777View commit details
Commits on Sep 4, 2023
-
Add native FileDescriptor stuff. Unify setFd and setHandle. Add suppo…
…rt for initializating based on file based FD or handle (using libikvm to detect if a handle is a file or socket). Add initIDs back to our local fork. We might be pretty close to discarding this fork and adding fields/properties through map.xml. Replace RandomAccessFile.open0 with native code. Maybe this will impact OS X locking? Ensure libjava (libiava) is loaded before any JNI call. This isn't loaded by any OpenJDK code that I can find. Seems to be built-in/internal. But, we need it to be loaded to bind JNI methods, and we don't wnat to edit OpenJDK Java files. isnanf() doesn't exist in MUSL. Manually define to isnan(). Move LibIkvm to separate file.
Configuration menu - View commit details
-
Copy full SHA for 8408e2c - Browse repository at this point
Copy the full SHA 8408e2cView commit details -
BootstrapAssemblyClassLoader renamed to RuntimeBootstrapAssemblyClass…
…Loader. In here we prepopulate nativeLibraries with libjava (libiava). We do that on the boostrap class loader, instead of just in time, to avoid recursion with string comparison stuff that also relies on libjava. libjava itself needed to be loaded through libjvm (it is a JNI library).
Configuration menu - View commit details
-
Copy full SHA for 91ea85f - Browse repository at this point
Copy the full SHA 91ea85fView commit details -
RandomAccessFile.open0 needs to take care of VFS lookups. So, here we…
… implement it using mJNI, intercept VFS calls, and then forward to native open0 implementation using JNIFrame by hand. Works fine. Add Flush wherever FileDispatcherImpl calls write, since that seems to actually matter.
Configuration menu - View commit details
-
Copy full SHA for 15ddd49 - Browse repository at this point
Copy the full SHA 15ddd49View commit details
Commits on Sep 5, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 86e9bb6 - Browse repository at this point
Copy the full SHA 86e9bb6View commit details -
Add a NativeLibraryHandle class, which is a SafeHandle. Holds the han…
…dle to the loaded library, and handles proper finalization. Ensures finalizers run after everything else. Might have to do something similar for libJVM's LoadLibrary call.
Configuration menu - View commit details
-
Copy full SHA for 631be5f - Browse repository at this point
Copy the full SHA 631be5fView commit details -
Add a unit test to check setLength.
Throw IOException properly on unauthorized exception.
Configuration menu - View commit details
-
Copy full SHA for 2ae7b17 - Browse repository at this point
Copy the full SHA 2ae7b17View commit details -
Configuration menu - View commit details
-
Copy full SHA for ac8ab6d - Browse repository at this point
Copy the full SHA ac8ab6dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 74c7608 - Browse repository at this point
Copy the full SHA 74c7608View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9f0e7f8 - Browse repository at this point
Copy the full SHA 9f0e7f8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 72e489b - Browse repository at this point
Copy the full SHA 72e489bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 811aa95 - Browse repository at this point
Copy the full SHA 811aa95View commit details -
Configuration menu - View commit details
-
Copy full SHA for f050071 - Browse repository at this point
Copy the full SHA f050071View commit details -
Include IKVM.Image-bin output into dist-image.
Importer tests should have runtime libs. Update Core, which fixes PublishProjectReferences to not ignore nested directories.
Configuration menu - View commit details
-
Copy full SHA for 3cd775b - Browse repository at this point
Copy the full SHA 3cd775bView commit details
Commits on Sep 6, 2023
-
Configuration menu - View commit details
-
Copy full SHA for b3a9a0c - Browse repository at this point
Copy the full SHA b3a9a0cView commit details -
Configuration menu - View commit details
-
Copy full SHA for face7ae - Browse repository at this point
Copy the full SHA face7aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2df45b4 - Browse repository at this point
Copy the full SHA 2df45b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for fd7140d - Browse repository at this point
Copy the full SHA fd7140dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8063e3b - Browse repository at this point
Copy the full SHA 8063e3bView commit details -
Configuration menu - View commit details
-
Copy full SHA for a87c7c1 - Browse repository at this point
Copy the full SHA a87c7c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6a4f8cc - Browse repository at this point
Copy the full SHA 6a4f8ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3696e13 - Browse repository at this point
Copy the full SHA 3696e13View commit details -
Revert position of stream on failure to lock.
Dispose in proper order in tests.
Configuration menu - View commit details
-
Copy full SHA for d4c221a - Browse repository at this point
Copy the full SHA d4c221aView commit details -
Configuration menu - View commit details
-
Copy full SHA for fe0dce6 - Browse repository at this point
Copy the full SHA fe0dce6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 194ce62 - Browse repository at this point
Copy the full SHA 194ce62View commit details