Commit Graph

3112 Commits

Author SHA1 Message Date
Joshua Warner
5c44ba859c minor correction to bootimage process in readme.txt 2012-05-07 08:13:04 -06:00
Joel Dice
b09a388be5 update readme.txt to reflect OpenJDK 7 dependency 2012-05-04 20:31:50 -06:00
Joel Dice
4a4b82d959 Merge remote branch 'oss/master' into jdk7 2012-05-04 20:24:27 -06:00
Joel Dice
797b4c25cc fix OpenJDK bootimage build regression 2012-05-04 20:13:26 -06:00
Joel Dice
1119675b7a override InputStream.available for FileInputStream and the instance returned by ZipFile.getInputStream 2012-05-04 19:55:53 -06:00
Joel Dice
189340954a fix build regression due to last merge 2012-05-04 18:59:15 -06:00
Joel Dice
5ef5158bc1 Merge remote branch 'oss/master' into jdk7 2012-05-04 18:54:31 -06:00
Joel Dice
ea4e0a2f5d fix a couple of subtle Thread.getStackTrace bugs
The first problem was that, on x86, we failed to properly keep track
of whether to expect the return address to be on the stack or not when
unwinding through a frame.  We were relying on a "stackLimit" pointer
to tell us whether we were looking at the most recently-called frame
by comparing it with the stack pointer for that frame.  That was
inaccurate in the case of a thread executing at the beginning of a
method before a new frame is allocated, in which case the most recent
two frames share a stack pointer, confusing the unwinder.  The
solution involves keeping track of how many frames we've looked at
while walking the stack.

The other problem was that compareIpToMethodBounds assumed every
method was followed by at least one byte of padding before the next
method started.  That assumption was usually valid because we were
storing the size following method code prior to the code itself.
However, the last method of an AOT-compiled code image is not followed
by any such method header and may instead be followed directly by
native code with no intervening padding.  In that case, we risk
interpreting that native code as part of the preceding method, with
potentially bizarre results.

The reason for the compareIpToMethodBounds assumption was that methods
which throw exceptions as their last instruction generate a
non-returning call, which nonetheless push a return address on the
stack which points past the end of the method, and the unwinder needs
to know that return address belongs to that method.  A better solution
is to add an extra trap instruction to the end of such methods, which
is what this patch does.
2012-05-04 18:51:58 -06:00
Joel Dice
19de383aae Merge branch 'master' into jdk7
Conflicts:
	makefile
2012-05-04 11:33:16 -06:00
Joel Dice
58691a7fdb fix native Windows build
For some reason, Cygwin's MinGW-W64 compilers end up pulling in our
version of process.h from unistd.h.  That doesn't really make sense --
it should use the one from the sysroot, but we can work around it by
just not including unistd.h, since it's not needed on Windows anyway.
2012-05-03 14:55:51 -06:00
Joshua Warner
8c0ef382f8 write out bootimage directly from the bootimage-generator, eliminating one of the steps in a custom bootimage build 2012-05-03 12:04:34 -06:00
Joshua Warner
9cbd67ec61 darwin doesn't have <malloc.h>, apparently 2012-05-03 10:13:56 -06:00
Joshua Warner
1b5f37c9de correctly define the target platform in the case of a bootimage build 2012-05-03 10:13:56 -06:00
Joshua Warner
d76807d9e0 add back pointer-size assignment in makefile for i386 (accidentally removed) 2012-05-03 10:13:56 -06:00
Joshua Warner
132af5f70e fix windows build 2012-05-03 10:13:56 -06:00
Joshua Warner
53225edbfe remove debug logging 2012-05-03 10:13:56 -06:00
Joshua Warner
5724baad41 free symbol names after writing codeimage 2012-05-03 10:13:56 -06:00
Joshua Warner
a09736e749 write java symbols to bootimage 2012-05-03 10:13:56 -06:00
Joshua Warner
b742c58055 directly emit codeimage as a object (binaryToObject is statically linked in), as a stepping stone to including extra symbols in said codeimage 2012-05-03 10:13:55 -06:00
Joshua Warner
99bc9b1d55 prettify SymbolInfo array 2012-05-03 10:13:55 -06:00
Joshua Warner
2fa7fa0e83 correct bootimage dependency chain 2012-05-03 10:13:55 -06:00
Joel Dice
2107a09623 fix incorrect argument marshalling in Unsafe.{allocate|free}Memory
This was causing UnsafeTest to crash on PowerPC.
2012-05-02 18:02:28 -06:00
Joel Dice
cab1a675af Merge branch 'jdk7' of oss.readytalk.com:/var/local/git/avian into jdk7 2012-05-02 11:54:02 -06:00
Joel Dice
20a0823a74 Merge remote-tracking branch 'origin/master' into jdk7 2012-05-02 11:44:24 -06:00
Joel Dice
e6afc6c321 set Thread.interrupted to true if thread is interrupted outside wait or sleep
This is the correct behavior according to the Thread.interrupt
JavaDoc, and it fixes an intermittent hang on exit in Eclipse.
2012-05-02 11:41:36 -06:00
Joshua Warner
b0dd39aa86 fix darwin arm binaryToObject support (just a missing break...) 2012-04-30 09:43:24 -06:00
Joel Dice
577df3cb04 Merge branch 'jdk7' of oss.readytalk.com:/var/local/git/avian into jdk7 2012-04-29 13:20:22 -06:00
Joshua Warner
661f6c28a8 refactor binaryToObject to allow more flexibilty (in particular, allowing arbitrary symbols per object) 2012-04-27 12:08:44 -06:00
Joel Dice
deeb3c694c interpret time of zero as infinity when isAbsolute is false in Unsafe.park
This behavior is not covered in the documentation, but
LockSupport.park clearly relies on it.
2012-04-25 17:47:07 -06:00
Joshua Warner
ca9b5b2f59 move OutputStream to ObjectWriter constructor in binaryToObject 2012-04-25 09:13:14 -06:00
Joshua Warner
a9ba4782ef improve build for binaryToObject 2012-04-25 09:13:04 -06:00
Joshua Warner
175db9ec54 allow streaming to more than just files in binaryToObject 2012-04-25 08:43:51 -06:00
Joshua Warner
9c308f751c refactor binaryToObject, to better support (eventually) putting symbols for compiled code in objects 2012-04-24 16:17:52 -06:00
Joel Dice
07f330967f update readme.txt based on recent feedback from the mailing list
This clarifies the need to include both openjdk.pro and vm.pro when
building with OpenJDK and ProGuard.  It also makes
-dontusemixedcaseclassnames the default in the ProGuard command and
gives different names to the C++ files used in the embedding and
bootimage examples to avoid confusion.
2012-04-20 16:05:04 -06:00
Joel Dice
01aa1e2bfd add note to readme.txt about using ProGuard with an OpenJDK build 2012-04-11 11:29:10 -06:00
Joel Dice
1120d8f91d fix ProGuarded openjdk-src build
This makes a simple "hello, world!" app work, at least.  Further
changes may be needed for more sophisticated apps.
2012-04-10 08:18:52 -06:00
Joel Dice
616c08fee9 Merge remote branch 'oss/master' into jdk7
Conflicts:
	makefile
2012-04-10 07:53:00 -06:00
Joel Dice
ba1f8aa68e don't fail build on missing iOS SDK unless actually building for iOS 2012-04-07 17:15:59 -06:00
Joel Dice
2fedfdea5b fix OS X build regression 2012-04-06 16:52:24 -06:00
Joel Dice
2b4407a962 fix iOS build regression 2012-04-05 10:04:53 -06:00
Joel Dice
8742ae1bde Merge branch 'jdk7' of oss.readytalk.com:/var/local/git/avian into jdk7 2012-04-05 09:51:52 -06:00
JET
6323c76540 added space before ';' in empty for loop to make Apple happy 2012-04-04 13:13:06 -06:00
JET
57092ece0d fixed Win32 getenv implementation 2012-04-03 10:38:48 -06:00
JET
2f225795fc added RuntimePermission and System.getenv() 2012-04-02 22:15:02 -06:00
JET
9b1b07bd88 Debugging VFP support on ARM. 2012-04-02 12:55:23 -06:00
Joel Dice
ae2b58ee40 increase bootimage.cpp heap and code size limits
OpenJDK is huge, so building a bootimage out of the whole thing (as
opposed to an app shrunk using ProGuard) requires a lot of space.
Note that we still can't handle this on ARM or PowerPC due to a
limitation in the compiler, but we don't expect people to ship
binaries with the entire OpenJDK class library anyway, so it shouldn't
be a problem in practice.
2012-03-27 18:14:29 -06:00
Joel Dice
48bb1e4f41 include charsets.jar in openjdk-src build
The other JARs we were including refer to classes in this jar, so we
need to include it as well.
2012-03-27 17:58:52 -06:00
Joel Dice
a2e0151728 initialize Machine::OutOfMemoryError in writeBootImage2
If we don't initialize that at our first opportunity, it's possible
we'll run out of memory later and exit silently instead of printing
the error and returning a nonzero exit code.
2012-03-27 17:57:11 -06:00
Joel Dice
4800518a31 fix bootimage.cpp build regression
I forgot to update bootimage.cpp when I added a parameter to Machine's
constructor in d78247a.
2012-03-27 08:22:35 -06:00
Joel Dice
382f016415 remove debug logging 2012-03-26 18:12:58 -06:00