Commit Graph

3105 Commits

Author SHA1 Message Date
Joel Dice
ebd7f69c41 fix a couple of QNX/ARM issues
On QNX, we need to use msync to sync the instruction cache.  Also,
even though the compiler doesn't define __SOFTFP__, QNX uses the
softfp ABI on ARM.
2012-08-03 20:02:33 -06:00
Damjan Jovanovic
59d7f5a47a fix java.library.path on the ARM platform
On the ARM platform, Avian compiled to use OpenJDK gets this error on
startup:
java/lang/UnsatisfiedLinkError: no zip in java.library.path
  at java/lang/ClassLoader.loadLibrary (line 1860)
  at java/lang/Runtime.loadLibrary0 (line 845)
  at java/lang/System.loadLibrary (line 1084)
  at java/lang/System.initializeSystemClass (line 1145)

Using strace shows why:
[pid 22431]
stat64("/usr/lib/jvm/java-7-openjdk-armhf/jre/lib/i386/libzip.so",
0xbee377e0) = -1 ENOENT (No such file or directory)

The attached patch uses "arm" instead of "i386" in that path. This fixes the
problem.
2012-08-04 07:31:54 -06:00
Damjan Jovanovic
5a09774353 tests don't compile when building with OpenJDK
I get this error when compiling with "make openjdk=...." on both x86_64 and
arm:

compiling test classes
test/Arrays.java:90: error: reference to equals is ambiguous, both method
equals(float[],float[]) in Arrays and method equals(Object[],Object[]) in
Arrays match
      expect(java.util.Arrays.equals(null, null));

test/Arrays.java:95: error: reference to hashCode is ambiguous, both method
hashCode(double[]) in Arrays and method hashCode(Object[]) in Arrays match
      java.util.Arrays.hashCode(null);

The attached patch fixes this.
2012-08-04 07:29:39 -06:00
Joel Dice
2fb2fd9bb0 put test library in same directory as avian executable
This is a workaround for the fact that there's no precise equivalent
to LD_LIBRARY_PATH available on Windows.
2012-08-02 13:00:00 -06:00
Joel Dice
296a1e5bab use so-prefix and so-suffix to generate test library name
This fixes the JNI test for Windows and OS X.
2012-08-02 12:47:48 -06:00
Joel Dice
f03e5e8e55 clean up binary format code
Linux, FreeBSD, and QNX all use ELF, so no need to distinguish between
them when generating object files.  To avoid confusion, I've switch
from using operating system names to using binary format names where
applicable.
2012-08-02 12:39:24 -06:00
Joel Dice
e641f23e6c fix "no newline at end of file" error on FreeBSD 2012-08-02 12:14:15 -06:00
Joel Dice
3a1343fb06 add support for FreeBSD on x86_64 2012-08-02 10:49:32 -06:00
Damjan Jovanovic
c1aa0b46b5 add support for FreeBSD 2012-08-02 10:41:41 -06:00
Joel Dice
57e318bbec revert accidentally-committed build-cc/build-cxx change 2012-08-02 10:41:43 -06:00
Joshua Warner
fffde5f445 add Arrays test for equals and hashCode, handle corner cases with null 2012-07-24 11:31:47 -06:00
Joshua Warner
b034d11221 Ungenerify Arrays.{hashCode|equals}, make Arrays.equals consider nulls equal 2012-07-24 10:03:19 -06:00
Joshua Warner
e018851fd8 Merge branch 'master' of github.com:ReadyTalk/avian 2012-07-23 17:28:48 -06:00
Joshua Warner
62ff8440ed implement Arrays.equals and Arrays.hashCode 2012-07-23 07:28:05 -06:00
Joel Dice
265ab63e19 fix crash when AOT compiling switch statement with only a default case
The existing code handled such odd switch statements correctly in the
JIT case, but did the wrong thing for the AOT case, leading to an
assertion failure later on.
2012-07-19 13:26:06 -06:00
Joel Dice
56da23b964 fix unused variable warning for non-hardfloat ARM systems 2012-07-19 05:28:03 -06:00
Joel Dice
7467ebde13 Revert "fix unused variable warning for non-hardfloat ARM systems"
This reverts commit 5270db52c7.
2012-07-19 05:27:15 -06:00
Joel Dice
5270db52c7 fix unused variable warning for non-hardfloat ARM systems 2012-07-19 05:26:25 -06:00
Joel Dice
4ffe2d58bf load arguments into the first 8 VFP registers, not the first 9 2012-08-01 19:59:34 +00:00
Joel Dice
2be438b2bb fix bad offset for SSE argument marshalling in x86.S 2012-08-01 11:20:41 -06:00
Joel Dice
2cb5a74991 fix mixed marshalling of mixed float/double argument lists on armhf
When we skip a single-precision register to ensure a double-precision
load is aligned, we need to remember that in case we see another
single-precision argument later on, which we must backfill into that
register we skipped according to the ABI.
2012-08-01 16:48:26 +00:00
Joel Dice
67ec092e9a add JNI test to test suite 2012-08-01 16:04:12 +00:00
Joel Dice
2ec1eee6f5 revert debug code accidentally included in last commit 2012-07-31 20:07:34 +00:00
Joel Dice
b023f5a2aa fix allocate/free size mismatch in interpret.cpp
This was causing a crash every time the VM was run when build using
mode=debug and process=interpret.
2012-07-31 20:02:03 +00:00
Joel Dice
a97c5728bb add support for the ARM hardware floating point ABI
This ABI's calling convention passes arguments and returns results
using VFP registers, so we need to tweak vmNativeCall to match it.

Thanks to Damjan Jovanovic for pointing this out and providing an
initial patch.
2012-07-31 16:36:59 +00:00
Joel Dice
836fc21106 fix bugs in File.getParent and listFiles
getParent should return the same value regardless of whether it ends
in a file separator, and listFiles should return null for
non-directories.
2012-07-31 09:27:18 -06:00
Joel Dice
c17710d2b0 fix int32_t*/jint* type incompatibility in java-nio.cpp 2012-07-24 16:50:24 -06:00
Joel Dice
03c3182497 fix OS X regression due to QNX header differences 2012-07-19 00:12:30 -06:00
Joel Dice
2d6bfa5383 Merge github.com:ReadyTalk/avian 2012-07-24 16:17:09 -06:00
Joel Dice
de086d1046 fix typo in Arrays test 2012-07-24 11:38:43 -06:00
Joel Dice
e85d079cfa Merge branch 'master' of https://github.com/joshuawarner32/avian 2012-07-24 11:34:18 -06:00
Joel Dice
af34259a01 Merge branch 'master' of https://github.com/joshuawarner32/avian 2012-07-24 10:21:37 -06:00
Joel Dice
52a878fa3e Merge branch 'master' of https://github.com/joshuawarner32/avian 2012-07-24 09:58:53 -06:00
Mike Keesey
b4ecec3034 Implementing add(T element) in AbstractList, which just calls add(size(), element) and returns true per the spec. 2012-07-23 18:55:11 -06:00
Joel Dice
129b67ce8f Merge branch 'github-master' 2012-07-19 13:28:55 -06:00
Joel Dice
4bafdf6286 add QNX ARM support
This is untested so far, since I haven't figured out how to install
the ARM port of QNX on QEMU.
2012-07-17 19:38:39 -06:00
Joel Dice
cace9d4531 use vfork instead of fork on QNX
On QNX, fork cannot be used in multithreaded programs, but vfork can,
so that's what we'll use.

http://www.qnx.com/developers/docs/6.4.1/neutrino/getting_started/s1_procs.html
2012-07-17 19:26:37 -06:00
Joel Dice
4237a19b68 add support for QNX on x86_32
All but one test is passing.  The failure is due to the fact that QNX
doesn't (in general) support calling fork(2) from a multithreaded
process.  Thus, we'll need to use spawn instead of fork/exec on QNX,
which I'll attempt in a later commit.

http://www.qnx.com/developers/docs/6.4.1/neutrino/getting_started/s1_procs.html
2012-07-17 18:21:17 -06:00
Joel Dice
38e1e3f521 Merge github.com:dicej/avian 2012-07-17 16:55:40 -06:00
Mike Keesey
59280c5780 Fixed isEmpty() on TreeSet, which actually returned !isEmpty(). 2012-07-13 15:46:01 -06:00
Joel Dice
8f0f3182de fix stack alignment for i386 continuations build 2012-07-10 17:22:49 -06:00
Joel Dice
a30c593a69 fix typo in compile-x86.cpp that broke 64-bit Windows continuations build 2012-07-10 16:23:45 -06:00
Joel Dice
9974d91648 implement DatagramChannel.receive and fix Datagrams to be Java 6 compatible 2012-07-10 14:09:14 -06:00
Joel Dice
d8483d720d Merge remote-tracking branch 'origin/master' into dicej-master 2012-07-09 16:48:30 -06:00
Joel Dice
3d99ff37cb Merge remote-tracking branch 'origin/master' into dicej-master 2012-07-09 16:46:21 -06:00
Joel Dice
fdbb63e9d9 remove unused function returnCode 2012-07-09 13:40:15 -06:00
Nandor Kracser
77f7d3eb44 Commenting-out unused returnCode() method because it raises compiler
warning with 'make process=interpret use-clang=yes' on Mac OS X. The
compiler warning later corrupted the compilation.
2012-07-09 21:10:53 +02:00
Nandor Kracser
938c4b3563 Changing LLD to 'lld' because it raises compile warnings in interpret.cc
on Mac OS X (make process=interpret).
2012-07-09 21:05:11 +02:00
Joel Dice
2ab304acb8 Merge github.com:mkeesey/avian 2012-07-07 16:29:18 -06:00
Mike Keesey
ba1719f1ef EnumSet.allOf can take advantage of the bulk BitSet.set(start, end) operation to run faster instead of adding each element individually. 2012-07-06 23:47:42 -06:00