108 Commits

Author SHA1 Message Date
Joshua Warner
8be7b6aeb3 correct THREAD_STATE_THREAD register for arm64 on darwin 2014-12-09 16:34:46 -07:00
Joshua Warner
5e0f7590d9 fix process=interpret build for 'arch=arm64 platform=ios' 2014-12-09 14:56:59 -07:00
Joel Dice
d52d0f6d96 add process=interpret support for Linux/ARM64
This makes all the tests pass for the platform=linux arch=arm64
process=interpret build.  Next step: process=compile support.
2014-11-25 20:02:59 -07:00
Joel Dice
1b19dc2c4f use inttypes.h macros to determine printf format symbols if possible
This addresses a recent regression where different versions of
MinGW(-w64) had different opinions about whether to use e.g. %I64d or
%lld to print 64-bit integers on 32-bit platforms.
2014-11-11 14:13:26 -07:00
Joel Dice
adcaeb513c Merge pull request #363 from lostdj/patch-4
interpret.invokeNative(): call native function with a right signature
2014-10-31 07:16:04 -06:00
lostdj
b7abaf7a78 interpret.invokeNative(): call native function with a right signature 2014-10-31 12:22:13 +03:00
Joel Dice
347a56824a fix MSYS/MinGW build
MinGW defines __STRICT_ANSI__ when -std=c++0x is specified, which we
have to override in order to get e.g. strdup.  Also, we need to
specify -D_WIN32_WINNT=0x0500 to get post-Windows-2000 functions like
GetModuleHandleEx.  Finally, it seems that GCC 4.8.1 wants us to use
%I64d instead of %lld on Windows.
2014-10-27 09:39:53 -06:00
Timofey Lagutin
d8f66a84ea jnienv.h: deleted redefinition of BOOTCLASSPATH_APPEND_OPTION 2014-10-25 17:43:46 +04:00
Joel Dice
d930fbcda2 ensure Object.notify is available for Android classpath build and reduce duplication 2014-10-10 07:38:41 -06:00
Joel Dice
b96cc3c575 update to more recent version of Android class library
Lots has changed since we forked Android's libcore, so merging the
latest upstream code has required extensive changes to the
Avian/Android port.

One big change is that we now use Avian's versions of
java.lang.Object, java.lang.Class, java.lang.ClassLoader, some
java.lang.reflect.* classes, etc. instead of the Android versions.
The main reason is that the Android versions have become very
Dex/Dalvik-specific, and since Avian is based on Java class files, not
dex archives, that code doesn't make sense here.  This has the side
benefit that we can share more native code with classpath-avian.cpp
and reduce the amount of Java/C++ code duplication.
2014-08-21 13:42:49 -06:00
Joel Dice
32aefaf421 ensure Thread::flags is always updated atomically
Since this field is sometimes updated from other threads, it is
essential that we always update it atomically.
2014-08-20 09:49:00 -06:00
Joel Dice
8b83de8985 add avian.Machine.tryNative
This function allows you to call native code such that any
SIGSEGV/SIGBUS/SIGFPE/EXC_ACCESS_VIOLATION/etc. raised by that code is
transformed into a Java exception and thrown by tryNative.  Note that
this effectively results in a longjmp out of whatever function raised
the exception, so any C++ destructors or other cleanup code will not
be run.
2014-08-19 14:03:46 -06:00
Joshua Warner
5210cbaa54 use prototype for __clear_cache across all linux-arm systems, not just android 2014-08-19 08:53:21 -06:00
Joel Dice
5b618982b5 explicitly override UNUSED definition
Recent versions of jni.h such as the one provided by Debian Jessie's
OpenJDK define UNUSED in a way that conflicts with our definition and
usage, so we need to explicitly undefine it before redefining it to
avoid compiler noise.
2014-08-17 15:34:44 -06:00
Joel Dice
60ea4b2cc2 Merge pull request #317 from joshuawarner32/cmake-vs
Get cmake build working with visual studio 2013
2014-07-31 08:16:48 -06:00
Joshua Warner
51b510cbea first pass at cmake + visual studio support 2014-07-30 14:15:15 -06:00
Joel Dice
a1e9315fa2 fix LZMA/bootimage build
This includes some tweaks to README.md and makefile to ensure the
directions in the former for building a bootimage actually work.
2014-07-28 09:19:39 -06:00
Joshua Warner
4d79f3bea1 Replace Allocator with Alloc or AllocOnly where possible 2014-07-16 18:51:35 -06:00
Joshua Warner
fa1e3d74c0 reduce Allocator interface 2014-07-16 18:51:29 -06:00
Joshua Warner
2d0ac3ac17 reduce vm::Zone interface 2014-07-16 18:41:02 -06:00
Joshua Warner
eb92c904c6 split Tokenizer into its own header 2014-07-16 18:41:02 -06:00
Joshua Warner
a1631c00f9 use size_t in Allocator 2014-07-16 18:10:51 -06:00
Joel Dice
4b7b3d2680 Merge pull request #295 from joshuawarner32/fix-windows-build
fix windows build
2014-07-15 12:31:10 -06:00
Joshua Warner
bfddef54c6 fix openjdk-src build (oversight from type-generator refactor) 2014-07-15 08:31:22 -06:00
Joshua Warner
21cec8834f fix LLD macro for gcc >= 4.8 on windows 2014-07-14 10:42:53 -06:00
Joel Dice
2a43e68c16 fix all the bugs
So there I was, planning to just fix one little bug: Thread.holdsLock
and Thread.yield were missing for the Android class library.  Easy
enough, right?  So, I added a test, got it passing, and figured I'd go
ahead and run ci.sh with all three class libraries.  Big mistake.

Here's the stuff I found:

 * minor inconsistency in README.md about OpenSSL version

 * untested, broken Class.getEnclosingMethod (reported by Josh)

 * JNI test failed for tails=true Android build

 * Runtime.nativeExit missing for Android build

 * obsolete assertion in CallEvent broke tails=true Android build

 * obsolete superclass field offset padding broke bootimage=true Android build

 * runtime annotation parsing broke bootimage=true Android build
   (because we couldn't modify Addendum.annotationTable for classes in
   the heap image)

 * ci.sh tried building with both android=... and openjdk=..., which
   the makefile rightfully balked at

Sorry this is all in a single commit; I didn't expect so many
unrelated issues, and I'm too lazy to break them apart.
2014-07-12 16:57:24 -06:00
Joshua Warner
80f19abf3a put all commented code in if(false) blocks instead; fix ensuing broken code 2014-07-12 10:16:03 -06:00
Joshua Warner
836cc41320 bulk, global reformat 2014-07-11 13:25:22 -06:00
Joshua Warner
7642b94308 reformat changes since master 2014-07-11 13:25:22 -06:00
Joshua Warner
cbad6931af retypedef object to GcObject*, remove (almost?) all unnecessary reinterpret_casts 2014-07-11 13:25:22 -06:00
Joshua Warner
b0490b8233 finish using setters 2014-07-11 13:25:22 -06:00
Joshua Warner
880b9fa910 use setters in machine.h 2014-07-11 13:25:21 -06:00
Joshua Warner
e548d37666 use setters in classpath-common.h 2014-07-11 13:25:21 -06:00
Joshua Warner
052f2498aa formalize Machine::roots in types.def 2014-07-11 13:25:21 -06:00
Joshua Warner
75f2dd013c remove old function-based accessors 2014-07-11 13:25:21 -06:00
Joshua Warner
a1583f1ecc touch up type safety in types.def 2014-07-11 13:25:20 -06:00
Joshua Warner
c796bdbde4 add bootimage-generator/main.cpp changes 2014-07-11 13:25:20 -06:00
Joshua Warner
924f242e66 add compile.cpp changes 2014-07-11 13:25:20 -06:00
Joshua Warner
b8ddc779a2 staticly type GcReference 2014-07-11 13:25:20 -06:00
Joshua Warner
1da8170c66 apply jnienv + java-common changes 2014-07-11 13:25:19 -06:00
Joshua Warner
9c93c5989c apply classpath-common.h changes 2014-07-11 13:25:19 -06:00
Joshua Warner
00e2307c39 apply machine.h changes 2014-07-11 13:25:19 -06:00
Joshua Warner
9ffbd7e9fe staticly type GcClassLoader instances 2014-07-11 13:25:19 -06:00
Joshua Warner
6a0502bbfe add util.cpp/.h changes 2014-07-11 13:25:19 -06:00
Joshua Warner
51368651dc better statically type Processor interface 2014-07-11 13:25:19 -06:00
Joshua Warner
0ec87c6aa1 statically type Addendum.pool better 2014-07-11 13:25:19 -06:00
Joshua Warner
9f5912c2b6 add stronger typing to method.code 2014-07-11 13:25:19 -06:00
Joshua Warner
9248f8f8ad add stronger typing to code.singleton 2014-07-11 13:25:18 -06:00
Joshua Warner
194e3b2701 add VMClass changes 2014-07-11 13:25:18 -06:00
Joshua Warner
9b36dca846 generate better typed accessors from type-generator (and switch to using standard library there) 2014-07-11 13:25:17 -06:00