-
Notifications
You must be signed in to change notification settings - Fork 26
make use of avian instead of JavaVM.framework (OSX) #3
Comments
What's done so far (i can only see avian added as submodule)? |
There's a branch on the repo called integratedvm. It still needs a lot of work. You need to download sources for OpenJDK (because avian needs it) and then compile everything back together. It's not that simple though. Maven compiles the stuff separately and openJDK classes that avian uses are not seeing the bitcoinj classes at the same time. Check the prebuild script of the library on that branch to see more what's going on out there :) |
oh.. look after a lot of pain. :) |
Asked @mikehearn take a look at this task and advise. |
It should be easier to use Avian these days, as it can be compiled with the Android class library. Back when I first tried this the sticking point was Apple breaks source/compiler compatibility with almost MacOS every release, and Java 7 wouldn't compile on the latest version anymore. As MacOS can't be virtualised either, you'd have to actually find/buy an old Mac and run an old MacOS on it, just to build Avian, or get someone to send you their build (which is what I did in the end but never got a chance to finish this). This is stupid but an inevitable consequence of Apple's policies. Hopefully, Android actually can be compiled on the latest MacOS versions. If so then Avian should be buildable against that, and bitcoinj runs fine on Android, so then it should work. |
Do you see any issues there if we want to retain our 10.7+ compatibility then? |
No, the issues are just about compiling. You might want to compile on 10.7 to ensure binaries work on 10.7, but that's a general issue. |
I've started working on this. I have an Avian that was compiled on Mavericks against OpenJDK 8. It needed a small patch but seems to work fine. I was able to sync a chain etc. The bitcoinj test suite doesn't pass because something goes wrong trying to load scrypt (heap corruption occurs trying to use the native library), and there's another bug with those that try to do trust store loading for the payment protocol. Once the bcj unit tests are all passing, the next step is to find a way to bundle Avian into BitcoinKit and make BitcoinKit use it instead of the system JVM. |
The required java on osx is a small show stopper.
How's the state with using avian instead?
The text was updated successfully, but these errors were encountered: