Commit Graph

4006 Commits

Author SHA1 Message Date
Joshua Warner
73912afaf7 Merge pull request #255 from dicej/align
fix stack alignment bug in vmJumpAndInvoke
2014-05-08 09:49:14 -06:00
Joel Dice
3696edeb1e fix stack alignment bug in vmJumpAndInvoke
This was causing crashes on 32-bit OS X continuations=true builds.

There were two important differences between vmInvoke and
vmJumpAndInvoke: (1) vmInvoke expects its stack to be aligned on
entry, modulo the return address whereas the stack argument to
vmJumpAndInvoke is aligned without allowing for the return address,
and (2) vmInvoke pushes EBP before doing its frame allocation, whereas
vmJumpAndInvoke did not take that into account.  So in order for
vmJumpAndInvoke to allocate the exact same frame size that vmInvoke
would have when calling the same method, it needed to add an extra two
words beyond what it was already allocating.

Aside from alignment concerns, the code is not particularly sensitive
to vmJumpAndInvoke allocating a different frame size than vmInvoke,
since we store the frame pointer in a "thread local" variable:

   // remember this stack position, since we won't be able to rely on
   // %rbp being restored when the call returns
   movl   8(%ebp),%eax
   movl   %esp,TARGET_THREAD_SCRATCH(%eax)
...
GLOBAL(vmInvoke_returnAddress):
   // restore stack pointer
   movl   TARGET_THREAD_SCRATCH(%ebx),%esp

My original patch makes an equivalent change for the 64-bit changes,
but I'll leave that for after we release 1.0 since we're in
bugfix-only mode right now
2014-05-08 09:20:12 -06:00
Joel Dice
18e9a01184 Merge pull request #253 from joshuawarner32/make-fixes
Small make fixes
2014-05-07 16:23:04 -06:00
Joel Dice
8889903eed Merge pull request #254 from joshuawarner32/android-fixes
add Field.getDeclaredAnnotations default method for android classpath
2014-05-07 16:22:09 -06:00
Joshua Warner
518f428f13 add Field.getDeclaredAnnotations default method for android classpath (fixes Reflection test) 2014-05-07 14:48:21 -06:00
Joshua Warner
f15703afd2 add include paths for compiling with openjdk-icedtea7-jdk7u45_2.4.3 on darwin 2014-05-07 13:06:00 -06:00
Joshua Warner
22b610ffb5 fix parameterization of debugger 2014-05-07 13:06:00 -06:00
Joshua Warner
95122204f4 add sanity checks for makefile parameters 2014-05-07 13:06:00 -06:00
Joel Dice
2f7356863b Merge pull request #249 from joshuawarner32/remove-powerpc
remove powerpc support
2014-05-02 07:13:12 -06:00
Joel Dice
8673389fdc Merge pull request #252 from joshuawarner32/master
Define user.home property on posix
2014-05-01 12:42:18 -06:00
Joshua Warner
95cffe90b2 Define user.home property on posix 2014-05-01 11:26:27 -06:00
Joel Dice
451135aef3 Merge pull request #251 from joshuawarner32/ios-7.1
add support for 7.1 ios SDK
2014-04-30 16:44:48 -06:00
Joshua Warner
d37c6ce09b add support for 7.1 ios SDK 2014-04-30 13:23:22 -06:00
Joel Dice
6cecfe81d0 Merge pull request #250 from joshuawarner32/fix-tests
Fix ci.sh tests on arm qemu systems
2014-04-30 08:01:56 -06:00
Joel Dice
6de967af24 Merge pull request #247 from joshuawarner32/docker
Add dockerfiles for cross-compiling to windows and linux-arm
2014-04-30 07:59:10 -06:00
Joshua Warner
94bd876f35 ci.sh: control which target is run for each of the configurations
There are two important things here:
* We only want to run "jdk-test" if we were running "test" for everything else.
  This gets around a bug where jdk-test fails for cross-compile builds (where JNI is involved)
* We can specify a different test target by setting the "test" environment variable.
  This is useful for cross-compiling the tests in a docker image
  (setting the test_target to "build-test")
2014-04-29 14:19:42 -07:00
Joshua Warner
9839321922 add dockerfile for arm cross-compilation 2014-04-29 14:33:06 -06:00
Joshua Warner
1a0153a99e add dockerfile for windows cross-compilation 2014-04-29 14:33:06 -06:00
Joshua Warner
9cb1f1bb26 Fix ci.sh tests on arm qemu systems
There are two problems:
* The x86 JIT compiler requires detectFeatures, defined in the x86 assembly.
  Thus it can't (currently) be built on non-x86 platforms.
  For the purposes of fixing test/ci.sh, it suffices to pretend
  codegen-targets=all means codegen-targets=native when on arm.
* Qemu can introduce some extra latency which was regularly screwing up the LinkedBlockingQueueTest.
  Solution: increase the timeout to 1/10th seconds.
2014-04-29 14:14:44 -06:00
Joel Dice
548d70b5e4 Merge pull request #248 from jentfoo/SortedMap_Interface
Added SortedMap interface
2014-04-29 13:57:15 -06:00
Joshua Warner
41adb74eb1 remove powerpc support 2014-04-29 13:26:40 -06:00
Mike Jensen
0545c07d33 Added SortedMap interface
I also changed TreeMap to implement the "SortedMap" interface, like it should.  Unfortanetly not all the code to implement the interface was there.  Where it was simple I implemented the additional functions, in the case of headMap, tailMap, subMap we are currently just throwing an UnsupportedOperationException.
2014-04-29 09:52:27 -06:00
Joshua Warner
32d25d79fd Merge pull request #243 from dicej/arm-non-ios
assume we can't use ARMv7 instructions on non-iOS platforms by default
2014-04-28 09:46:48 -06:00
Joel Dice
172ef9a7e6 Merge pull request #246 from joshuawarner32/master
Stop using *Critical functions in throwIOException
2014-04-24 19:40:10 -06:00
Joshua Warner
34962ff334 Merge pull request #245 from dicej/jdk8
add support for using the OpenJDK 8 class library
2014-04-24 18:50:38 -06:00
Joshua Warner
7f320b59b0 Merge pull request #241 from dicej/javadoc
push javadoc pages to ReadyTalk/readytalk.github.io instead of gh-pages
2014-04-24 18:49:32 -06:00
Joshua Warner
1b17ca146b Merge pull request #242 from dicej/copyright
update copyright years
2014-04-24 18:45:18 -06:00
Joshua Warner
3586481c8e Merge pull request #244 from dicej/url-set
avoid NPE in URL.set when file is null
2014-04-24 18:45:01 -06:00
Joshua Warner
690ba9cdc7 Stop using *Critical functions in throwIOException
This was a bug, wherein upon throwing an exception, we would try to
allocate memory for the message - all while holding a critical
reference to the jbyteArray representing the exception string.  This
caused an expect to fail in allocate3.
2014-04-24 15:23:05 -06:00
Joel Dice
2501929ccc assume we can't use ARMv7 instructions on non-iOS platforms by default
The only Linux/ARM machine I have access to does not support ARMv7.  I
don't know how common that is in general, but this seems like the safe
default.  You can always override it on the command line.

I've also broken the test target into build-test and run-test
subtargets, which can be useful when you're building on a shared
filesystem and running the tests on another machine (without using the
remote-test-host option).  If there's clock skew, the other machine
might try to rebuild stuff unecessarily.  Using run-test avoids
that.
2014-04-24 09:58:30 -06:00
Joel Dice
129626d91f add support for openjdk-src builds with OpenJDK 8
I've tested this on Linux with both OpenJDK 7 and 8.  Other platforms
will probably require further changes.
2014-04-23 17:09:52 -06:00
Joel Dice
3fc5e54a54 Merge pull request #240 from joshuawarner32/docker
Add basic docker image / util script for building
2014-04-23 16:50:44 -06:00
Joel Dice
a41efb76c5 avoid NPE in URL.set when file is null 2014-04-23 15:51:57 -06:00
Joshua Warner
08826580c5 improve Dockerfile with suggestions from code review 2014-04-23 14:41:44 -07:00
Joel Dice
7de555c797 add support for using the OpenJDK 8 class library
This ensures that all tests pass when Avian is built with an
openjdk=$path option such that $path points to either OpenJDK 7 or 8.

Note that I have not yet tried using the openjdk-src option with
OpenJDK 8.  I'll work on that next.
2014-04-23 15:36:56 -06:00
Joel Dice
9b7d0d1624 update copyright years 2014-04-23 15:33:41 -06:00
Joel Dice
7f646c8a38 push javadoc pages to ReadyTalk/readytalk.github.io instead of gh-pages
This, along with several other changes to the website, should help cut
repository bloat.
2014-04-23 15:32:16 -06:00
Joshua Warner
b2d242731a remove unnecessary intermediate apt-get update docker step 2014-04-23 13:28:33 -07:00
Joshua Warner
a0e7ed64d0 add script to run commands in the avian docker container 2014-04-23 12:55:23 -07:00
Joshua Warner
50bca071b2 Add basic dockerfile for avian build 2014-04-23 12:55:23 -07:00
Joshua Warner
5beb148df3 Merge pull request #239 from dicej/misc
fix Misc test failures
2014-04-21 19:50:52 -06:00
Joel Dice
4c3e0f3421 Merge pull request #238 from pcarrier/PsPN
CP: Properties.stringPropertyNames()
2014-04-20 19:24:10 -06:00
Joel Dice
1ed3de08fa fix Misc test failures
The Misc test was failing when run as "make input=Misc run" since
test-flags did not include $(build)/extra-dir in the class library,
leading the ClassLoader.getResources test to fail.

Also, the UnknownHostException test was not reliable -- some ISPs
(mine included) return DNS matches for bogus hostnames, defaulting to
the IP address of a webserver intended to help users with name
resolution problems.  That's dumb, I know, but I'm guessing I'm not
the only person with a dumb ISP, and it seems better to just remove
the test than make people think Avian is broken when it's really just
their DNS server that's broken.
2014-04-20 19:11:15 -06:00
Mike Jensen
1a8d557c72 Merge pull request #237 from pcarrier/sb
CP: StringBuilder.append(char[])
2014-04-20 08:04:47 -06:00
Pierre Carrier
91282a040f CP: StringBuilder.append(char[]) 2014-04-20 04:24:52 -07:00
Pierre Carrier
a36176baca CP: Properties.stringPropertyNames() 2014-04-20 04:24:14 -07:00
Joshua Warner
b01515ac84 Merge pull request #234 from dicej/field_getAnnotations
fix NPE in Field.getAnnotations
2014-04-17 15:18:07 -06:00
Joel Dice
b74f9e32e9 fix NPE in Field.getAnnotations 2014-04-17 13:16:21 -06:00
Joshua Warner
a6f0923678 Merge pull request #233 from jentfoo/RandomAccess_implements
Small change to make these two structures implement RandomAccess
2014-04-16 16:32:55 -06:00
Mike Jensen
7192b0081d Small change to make these two structures implement RandomAccess (as they should) 2014-04-16 14:33:32 -06:00