-
Notifications
You must be signed in to change notification settings - Fork 133
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
[WIP] Libcore10 - Android10 runtime #527
Draft
dkimitsa
wants to merge
33
commits into
MobiVM:master
Choose a base branch
from
dkimitsa:libcore10/master
base: master
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…, removed shade plugin as it will be not required.
- dalvik - libart - luni - ojluni - json - xml What was not copied: - tests - ojluni/annotataions - all native code (as its subject for VM folder)
…ere three folders of sources: common, openjdk, platform, publicapi. Sources from them were copied into single folder. There were conflicts for files: Platform.java and NativeCryptoJni.java ones from platform/ folder were preferred What was not copied: - tests
What was not copied: - tests - samples
…che-http, apache-xml (FIXME: return if once detected that these are required)
- bouncycastle - javasqlite - okhttp What was not copied: - tests - samples - native code
…ava from boringssl
…able in LC10, copied implementation to ArrayUtils
…s. As it requires support for SerializedLambda which is missing (due not full support of dynamic invoke in RoboVM). Otherwise it breaks compilation with error message: > error: cannot find symbol > symbol: method getImplMethodKind() > location: interface SerializedLambda
…ot supported/not used code(more to go later): - removed everything related to dynamic invoke -- as not supported by compiler and RoboVM uses own stubs. - removed not used classes that break compilation
… one from R45, copied mostly required source codes. CMakeFiles were built from Android.bp. Not compilable for now. Also openssl replaced with boringssl. Code just was copied. No changes or compilation yet
…e folders: luni, ojluni and libnativehelper. Also there was conflict in function names. This is solved by moving all constants to single file to libnativehelper
…changes: - OsConstants -- all linux constants that are not available on MAC/iOS are put behind #ifdef - Portability.h -- copied workarounds from old RoboVM - Linux related code -- removed from compilation (as uses not available on MAC apis) - Openjdk_Jvm -- remove unused and unsupported code, not implemented stubs marked with TODO
… code to be changed as it relies on ART implementation. Quickest way to get Libcore10 running is to reuse old primitives that run on existing Dalvik/RoboVM implementation. Warning: This commit makes Java classes not compilable intentionally and allows to track changes done to files from RoboVM/Dalvik tree
…able as it is not part of temporally used reflect package from luni4
…rk with core classes from Luni4
- System.arraycopy reverted to RoboVM implementation to use existing native code - project wide applied `RoboVM` marked changes from RoboVM project
…ion from luni4 as Linux implementation required lot of API not available on MacOS/iOS. Libcore10 code adapted to it. android.system.Os commented out as mostly duplicates OS class (and has same dependency to Linux issues)
… one, copied and extended API for Posix
…ve to be C functions as being called from C code. Also separated register_ and onLoad calls (as onLoad should be called once all native methods are registered)
…m OpenJDK, also copied KQueue implementations from there. As existing android code works against Linux one that is not available on MAC/iOS
…itialized from embedded and packed one. Also icu4j adapted to use .dat file from native part. As its expensive to keep two copies: for native part and icu java resources for icu4j
…e to use URI instead of File for certificate store. This allows to use certificates packed into jar as it was in luni4 RoboVM.
…reflect Libcore10. Can run basic console app (Hooray!)
…'` when compiling native part for release, using recent Xcode
…pdated Set/List API
Root case: wrong application path was set for console target when running under debugger.
# Conflicts: # compiler/compiler/src/main/java/org/robovm/compiler/plugin/debug/DebuggerLaunchPlugin.java # compiler/rt/libcore/crypto/src/main/java/org/conscrypt/NativeCrypto.java # compiler/rt/libcore/crypto/src/main/java/org/conscrypt/OpenSSLSocketImpl.java # compiler/rt/libcore/libdvm/src/main/java/java/lang/Daemons.java # compiler/vm/rt/android/external/openssl/ssl/t1_lib.c # compiler/vm/rt/android/libcore/crypto/src/main/native/org_conscrypt_NativeCrypto.cpp
Many thanks for making this! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR proposes replaces Java Runtime classes used in RoboVM (Android 4.4 base) with ones from Android10 (R45)
Scope of changes
Highlights
Conscrypt
is an alternate Java Security Provider that uses BoringSSLTODO/FIXME
Test builds
There are several options to get test build:
Custom plugin repository
as described by link:https://dkimitsa.github.io/assets/updatePlugins.xml
as custom plugin repository;repository: https://dkimitsa.github.io/assets/updatePlugins.xml
;RoboVM - Libcore 10
plugin from there.Issue reporting
Please open the issue in the robovm-libcore10-smoketest tracker that was created for testing of libcore10.
Updates/tech notes
Will be post technical details in blog under libcore10 tag