Commit Graph

328 Commits

Author SHA1 Message Date
Joel Dice
368c804bb7 bootimage-object should depend on binaryToMacho 2008-12-18 20:10:25 -07:00
Joel Dice
2622773eb4 support bootimage build on OS X 2008-12-18 19:52:03 -07:00
Joel Dice
c479bccdb4 support cross-platform bootimage build (as long as the build arch matches the target arch 2008-12-04 17:24:38 -07:00
Joel Dice
7d68c9b0a5 Merge branch 'bootimage' of oss.readytalk.com:/var/local/git/avian
Conflicts:

	src/heapdump.cpp
2008-12-04 14:29:17 -07:00
Rich Scott
db3434001f Use mingw32 'strip' when compiling for Windows.
This fixes the error when using /usr/bin/strip on
Ubuntu 8.10 when it believes the target file is of
an "ambiguous format".
2008-12-03 13:12:49 -07:00
Joel Dice
4ec853d1bc include heapwalk.o in libavian.a if bootimage=true 2008-12-02 19:37:16 -07:00
Joel Dice
4a1dd3a8f7 specify writable and executable section for boot image 2008-12-01 19:35:52 -07:00
Joel Dice
0ec5ad3701 update makefile to optionally build and use a boot image; various bugfixes 2008-11-29 16:08:14 -07:00
Joel Dice
61ecb56e21 Merge branch 'master' of oss:/var/local/git/avian into powerpc 2008-11-25 16:19:21 -07:00
Joel Dice
6500f1eff6 initial work to support boot image creation and use 2008-11-21 16:20:35 -07:00
Joel Dice
15ea90cd0c specify -fno-omit-frame-pointer to ease debugging and profiling 2008-11-19 18:10:29 -07:00
Joel Dice
4dd1d1eec8 add Subroutine test to cover jsr and ret instructions 2008-11-12 10:07:30 -07:00
Joel Dice
c80eb51c17 Merge branch 'master' into powerpc
Conflicts:

	makefile
	src/assembler.h
	src/compile.cpp
	src/compiler.cpp
	src/compiler.h
	src/finder.cpp
2008-11-11 08:21:48 -07:00
Joel Dice
6f1d02dae7 remove the libstdc++ dependency once and for all
The trick is to make all destructors non-virtual.  This is safe because
we never use the delete operator, which is the only case where virtual
destructors are relevant.  This is a better solution than implementing
our own delete operator, because we want libraries loaded at runtime to
use the libstdc++ version, not ours.
2008-10-28 15:40:50 -06:00
Joel Dice
708d2f1c0c compile assembly files using different flags than C++ files
This is intended to fix the build error described here:

  http://groups.google.com/group/avian/msg/38b6619d6d8cac68
2008-10-23 16:55:39 -06:00
Joel Dice
6a5116e7a7 implement primitive heap dump facility for memory profiling, accessible via Runtime.dumpHeap
The proper way to do this is to implement a subset of JVMTI, but this
will do the job for now.
2008-10-21 17:38:20 -06:00
Joel Dice
f38a55cbb2 make linking against libstdc++ the default, overrideable via use-libstdcpp make parameter 2008-10-13 16:31:59 -06:00
dain
8549ab856e Merge branch 'master' of ssh://oss.readytalk.com/var/local/git/avian 2008-10-13 09:48:04 -06:00
dain
157b1facf8 Add stdc++ to common-lflags 2008-10-13 09:46:07 -06:00
Joel Dice
1a39012002 support building on Cygwin 2008-10-11 14:46:20 -06:00
Joel Dice
54e618847a use /bin/sh instead of /bin/bash to run test.sh, since MSYS does not have /bin/bash (although /bin/sh is bash) 2008-10-11 11:59:18 -06:00
Frank Jacobs
471ac4d960 support building from a directory with spaces in its name 2008-10-11 10:10:11 -06:00
Joel Dice
5c04c19e29 look for %s@%d format symbols when resolving native methods on Windows, which obviates the need for -k flag to dlltool 2008-10-10 17:37:36 -06:00
Joel Dice
e3a5c7e03f look for jar under $JAVA_HOME/bin 2008-10-10 17:01:33 -06:00
Joel Dice
e2c04b2761 various makefile refinements for better supporting native Windows builds 2008-10-10 11:43:40 -06:00
Frank Jacobs
68513521ef support building on Windows using MinGW
Here is a patch for getting Avian to build in Windows. I used MinGW
and MSYS for the build environment. The patch has the following
changes:

1. java-nio.cpp: Had to add an include and remove a function
declaration that was reported as duplicate.
2. readme.txt: Updated the instructions to include notes about
building on Windows.
3. makefile: Added a conditional for MinGW. I left the existing "ifeq
($(platform),windows)" conditional alone so as to not break
cross-compiled Windows builds. There are some similarities between the
two, so it might be possible to combine portions of them in an elegant
manner. Since I'm not sure how the cross-compiled builds have been
done, I didn't want to mess with that portion of the makefile.
2008-10-10 08:06:31 -06:00
Joel Dice
e2f0b45337 add 'small' optimization mode 2008-09-29 11:13:31 -06:00
Joel Dice
65f9f3583c uncomment MAKEFLAGS = -s 2008-06-25 17:17:04 -06:00
Joel Dice
a85cf0115d fix makefile for building on linux
This may break OS X PowerPC, but I don't have such a machine to test on
at the moment.
2008-06-24 14:58:58 -06:00
Joel Dice
8512d6c74c Merge branch 'master' of oss:/var/local/git/avian into powerpc 2008-06-23 17:38:16 -06:00
Joel Dice
2716169110 update version number to 0.1.1 2008-06-17 17:30:00 -06:00
dicej
a9ae50900a define LinkageArea in powerpc.h and add the latter to makefile 2008-06-15 12:48:53 -06:00
dicej
358f3f801b Merge branch 'master' of oss.ecovate.com:/var/local/git/avian into powerpc 2008-06-15 11:48:05 -06:00
Joel Dice
064ba4519a update version number to 0.1 2008-06-08 15:51:11 -06:00
dicej
f375f6e85c enable powerpc build for process=interpret (won't run yet, though) 2008-06-04 17:09:09 -06:00
dicej
0ccf8d57ea rough sketch of powerpc support 2008-06-04 16:21:27 -06:00
Joel Dice
f3fb813714 update valgrind.supp to suppress ld-2.6.so warnings 2008-05-18 22:24:12 -06:00
Joel Dice
525f733171 Merge branch 'master' into compiler
Conflicts:

	src/compile.cpp
	src/compiler.cpp
	src/compiler.h
2008-04-13 13:48:20 -06:00
Dain
3fcfae5c66 removed --kill-at flag 2008-04-09 17:15:28 -06:00
Joel Dice
74295bb707 interpret avian.bootstrap property as a complete file name 2008-03-31 12:57:49 -06:00
Joel Dice
c37f0dcf18 fix darwin build 2008-03-30 22:23:51 -06:00
Joel Dice
357bd29460 support building Avian as a self-contained dynamic library 2008-03-30 21:43:43 -06:00
Joel Dice
55d2fb8f57 specify doctitle, etc. when generating javadoc 2008-03-11 12:51:07 -06:00
Joel Dice
a388ca19ee fix build for GCC 4.3
Note that this requires removing the -Wconversion flag for now.  I'll
see about restoring it when I'm ready to tackle all those warnings.
2008-03-10 13:49:10 -06:00
Joel Dice
b7f2f95c39 uncomment MAKEFLAGS = -s 2008-03-09 15:28:23 -06:00
Joel Dice
7cfb89bd2a Merge branch 'master' into compiler 2008-03-09 11:31:55 -06:00
Joel Dice
315fc06a20 look for win32 headers and libraries in parent directory 2008-03-07 16:34:24 -07:00
Joel Dice
fbc5463fb1 specify Avian version via a macro defined in makefile 2008-03-06 13:30:26 -07:00
Joel Dice
9d76d6a04e implement a few more classpath methods, including Collection.addAll and Collection.toArray 2008-02-28 11:37:10 -07:00
Joel Dice
3317149cd2 Merge branch 'master' into compiler
Conflicts:

	src/x86.cpp
2008-02-26 17:56:35 -07:00
Joel Dice
b2e7099bbc add javadoc target to makefile 2008-02-26 17:19:15 -07:00
Joel Dice
2edaa82801 prepend copyright notice and license to all source files; add license.txt and readme.txt 2008-02-19 11:06:52 -07:00
Joel Dice
b9fa7179d9 more work on new compiler; addition now works 2008-02-11 17:20:32 -07:00
Joel Dice
5b2f351f01 adapt compile.cpp to new compiler 2008-02-11 10:21:41 -07:00
Eric Scharff
c1f3d28d24 Fixes dynamic symbol loading bug on Mac OS X.
On OS X, when you call dlopen() on a null library, and then call dlsym(),
the most recently loaded symbols are always used, no matter what flags
we seem to pass to dlopen().  The solution is to explicitly find the name
of the running executable, and open that as a library.
2008-01-28 16:17:22 -07:00
Joel Dice
008ac07079 refactor native method resolution to be simpler and more robust 2008-01-28 10:27:02 -07:00
Joel Dice
aa081089ce use compile-object to build jni-objects 2008-01-25 16:45:52 -07:00
Joel Dice
6bca3a8665 additional tweaks to make embedded resources work on darwin 2008-01-23 10:12:56 -07:00
Joel Dice
618684de6e support embedded resources on darwin via binaryToMacho.cpp 2008-01-23 09:56:25 -07:00
Joel Dice
c3ce201a59 revert earlier change of breaking libclasspath.a out of libvm.a 2008-01-21 16:58:27 -07:00
Joel Dice
d3774d54bc build libclasspath.a, which contains native methods for the classpath 2008-01-21 16:51:23 -07:00
Joel Dice
f29b1b9b6f libvm.a should not include classpath code 2008-01-21 16:42:44 -07:00
Joel Dice
35160e46d8 don't include embedded boot classpath in libvm.a, only the executable 2008-01-18 17:54:36 -07:00
Joel Dice
e6aea41a88 make the default compilation mode 'fast' 2008-01-11 17:35:27 -07:00
Joel Dice
48e532f8e9 add debug-fast compilation mode 2008-01-11 17:15:34 -07:00
Joel Dice
8e5ce11047 refactor memory management code
We now support immortal objects, which the GC will scan for references
but not consider for collection.  On x86_64, we allocate JIT code memory
via mmap, which lets us map memory into the bottom 2GB of the address
space, ensuring that 32-bit relative jumps and calls work.
2008-01-09 18:20:36 -07:00
Joel Dice
324744d525 makefile cleanups 2008-01-08 15:05:56 -07:00
Joel Dice
6057ffd693 whitespace tweak 2008-01-03 19:17:42 -07:00
Joel Dice
e81a534986 misc makefile tweaks 2008-01-03 12:49:42 -07:00
Joel Dice
f151d85f4e intercept SIGSEGV and throw NullPointerExceptions 2007-12-31 15:40:56 -07:00
Joel Dice
5d65e7c220 handle synchronized methods properly in JIT mode 2007-12-27 17:02:05 -07:00
Joel Dice
a2181e88c0 include boot classpath in vm arguments on darwin, since we don't build those classes into the executable 2007-12-27 08:46:17 -07:00
Joel Dice
6ed28a13c3 fix x86-32 regressions due to JIT refactoring 2007-12-26 10:16:21 -07:00
Joel Dice
b361e1b637 refactor JIT code to make operand size an explicit part of each applicable instruction 2007-12-26 09:56:14 -07:00
Joel Dice
8cd18d6193 more JIT bugfixes 2007-12-23 13:06:24 -07:00
Joel Dice
f87a78833b fix JIT regressions on amd64 2007-12-23 12:18:34 -07:00
Joel Dice
15857135c0 more JIT fixes; all tests now pass on x86-32 2007-12-23 11:48:22 -07:00
Joel Dice
a020a3f6bb handle various return types properly in invokeNative2 2007-12-23 11:09:41 -07:00
Joel Dice
31cf1754ce fix frame trace bug leading to incomplete stack coverage during GC; fix thinko pushing arguments in vmInvoke 2007-12-23 11:01:41 -07:00
Joel Dice
6c532e2ba4 fix register allocation bugs in floating point instructions 2007-12-22 17:15:46 -07:00
Joel Dice
be42c325d8 32-bit JIT bugfixes; still broken 2007-12-19 18:42:12 -07:00
Joel Dice
7dd81c803a fix native call argument marshalling regression 2007-12-19 17:02:32 -07:00
Joel Dice
4c3a2575ba lots of JIT bugfixes; all top-level tests now pass 2007-12-17 13:55:31 -07:00
Joel Dice
56a8ce8fb1 more JIT bugfixes; implement mul instruction 2007-12-16 16:52:38 -07:00
Joel Dice
e4fbadd051 JIT-related GC safety fixes 2007-12-16 15:41:07 -07:00
Joel Dice
86218ebcb8 fix stack pointer calculation in unwind code and set rbx to thread pointer when unwinding 2007-12-15 18:00:25 -07:00
Joel Dice
796a64a426 lots of JIT bugfixes and cleanups 2007-12-15 17:24:15 -07:00
Joel Dice
fdeafe46fd 2+2 test now works with new JIT code 2007-12-11 14:26:59 -07:00
Joel Dice
f8cda0cd85 more JIT compiler progress 2007-12-09 15:45:43 -07:00
Joel Dice
466c958d2b implement persistent red-black tree in util.cpp based on PersistentSet.java 2007-11-26 18:40:47 -07:00
Joel Dice
0bbe9489a7 flesh out call tracing in new JIT code 2007-11-26 16:15:53 -07:00
Joel Dice
49ed41daa0 refactor stack walking interface in processor.h and sketch stack walking implementation in compile2.cpp 2007-11-25 16:00:55 -07:00
Joel Dice
3570beaba9 specify -DNDEBUG cflag in debug mode to improve performance when debugging large apps 2007-11-14 16:23:15 -07:00
Joel Dice
fe0e542afe finish support for inline vtables in class objects; convert constant pools from arrays to singletons to reduce memory footprint 2007-11-05 14:40:17 -07:00
Joel Dice
19d36cc463 implement impdep1 instruction for lazily loading bootstrap classes 2007-11-05 08:29:43 -07:00
Joel Dice
6c0e0c37e2 snapshot 2007-11-05 07:28:46 -07:00
Joel Dice
514be2dc87 snapshot 2007-11-04 16:10:33 -07:00
Joel Dice
94e9bd0fd2 clean up bootstrap type generation to eliminate redundancy (broken) 2007-11-04 14:15:28 -07:00
Joel Dice
bea4a73f54 Merge branch 'singleton' 2007-11-02 15:56:48 -06:00
Joel Dice
7dfbd87a40 bugfixes 2007-11-02 15:42:19 -06:00
Joel Dice
e820b6a8a4 sketch of singleton support 2007-11-02 15:08:14 -06:00
Joel Dice
d3592f2dbd tweak makefile to recompile all dirty java files in a single javac invocation for efficiency 2007-11-02 08:01:10 -06:00
Eric Scharff
eb3bd1ce7c Got strip working for Mac OS X 2007-11-01 14:37:51 -06:00
Eric Scharff
7f33b7371b Factored JNIEXPORT into one place. Adopted the visbility attribute that
should allow strip to work on Mac OS X
2007-11-01 14:00:22 -06:00
Eric Scharff
b3891debb2 Fixes build for Mac OS X.
If the binary is stripped on Mac OS X, dlsym fails, so builtin native library
calls do not work.  The solution, in this case, is to not strip the binary.
2007-10-30 16:22:53 -06:00
Joel Dice
956106f518 implement StringBuilder.delete() more efficiently 2007-10-29 15:40:05 -06:00
Joel Dice
7aecdb6ce0 undo accidentally-committed makefile change 2007-10-28 18:54:21 -06:00
Joel Dice
a80677d673 fix aliasing warnings 2007-10-28 18:51:38 -06:00
Joel Dice
7f1837fecd move fixed object (mark and sweep) support into heap.cpp and refine algorithms for determining when and how much to GC 2007-10-28 13:14:53 -06:00
Joel Dice
60072b9fdc implement fixed object support 2007-10-27 19:54:30 -06:00
Eric Scharff
8f604ca7e1 makefile cleanups 2007-10-26 16:16:47 -06:00
Eric Scharff
789cc8e9a2 On the Mac, building in the vm object is complicated. Instead,
rely on external files.
2007-10-26 16:10:12 -06:00
Joel Dice
476a0d70f2 Merge branch 'master' of dice:git/vm
Conflicts:

	makefile
2007-10-26 15:03:53 -06:00
Joel Dice
f354abb4a0 build fixes and refactoring 2007-10-26 15:02:39 -06:00
Eric Scharff
e2ae3201f7 Fix for mac's lacking objcopy - rely on the version in MacPorts 2007-10-26 13:43:14 -06:00
Eric Scharff
4088387cf0 Fix typo in makefile - path must be specified to find 2007-10-26 13:32:19 -06:00
Joel Dice
ccdc7fdda3 eliminate bin2c and use objcopy instead to translate binary data to an object file 2007-10-26 11:38:36 -06:00
Joel Dice
d0089c4d88 makefile fixes 2007-10-26 08:34:54 -06:00
Joel Dice
448d48adc9 superficial makefile tweak 2007-10-25 18:03:26 -06:00
Joel Dice
20cc788fa4 support classloading from jar files compiled into the executable 2007-10-25 16:06:05 -06:00
Joel Dice
b12b779c7f add support for passing properties to the VM via JNI; use vm.builtins property to specify builtin libraries 2007-10-25 12:33:43 -06:00
Joel Dice
2de0decfe3 Merge branch 'master' of dice:git/vm
Conflicts:

	src/interpret.cpp
2007-10-25 09:05:24 -06:00
Joel Dice
1c90ea5fd6 rewrite main.cpp to use jni.h interface for creating the VM and invoking the main method of the specified class 2007-10-25 09:04:13 -06:00
Eric Scharff
b91307224d Fixed broken mac commit 2007-10-25 09:03:24 -06:00
Eric Scharff
5131cac38a Fix regression for non Mac OS X platforms linking in archives 2007-10-25 08:58:44 -06:00
Eric Scharff
782f7e8feb Fixes build parameters for Mac 2007-10-25 08:55:48 -06:00
Joel Dice
eaf1d205cd more windows port fixes 2007-10-24 11:24:19 -06:00
Joel Dice
75b79e133e use /usr/local/win32 include and lib directories in makefile when cross-compiling for windows 2007-10-24 09:46:44 -06:00
Joel Dice
4dfcaa0f91 build standalone executable (no seperate .so) on all platforms; build libvm.a too 2007-10-23 17:23:55 -06:00
Joel Dice
c686d1ca60 add -k to dlltool command 2007-10-23 14:18:42 -06:00
Joel Dice
eb4cea6291 more work on the windows port; we now have some tests passing 2007-10-23 14:05:59 -06:00
Joel Dice
1381267e70 mork work on the windows port 2007-10-23 11:22:48 -06:00
Joel Dice
58dec050c8 sketch of windows port 2007-10-22 19:00:57 -06:00
Joel Dice
ac4b28ffe6 refactor build system to support cross-compiling 2007-10-22 14:56:27 -06:00
Joel Dice
5fb1495f4d bugfixes and new instructions in compile.cpp 2007-10-16 19:21:35 -06:00
Joel Dice
96ed27c55c various bugfixes to get Tree.java to work 2007-10-16 11:21:26 -06:00
Joel Dice
5f6258045e implement various floating point instructions; fix Floats.java to actually test something 2007-10-15 13:12:38 -06:00
Joel Dice
5c99edd90e fix many JIT GC bugs; GC.java now passes 2007-10-13 15:48:40 -06:00
Joel Dice
7e0731ebdd various bugfixes involving longs 2007-10-08 17:13:55 -06:00
Eric Scharff
673aec28fb The warning -Wold-style-cast turns out to be more trouble than its worth
when dealing with old-style casts that are in header files.  Removing.
2007-10-08 13:29:40 -06:00
Joel Dice
404d996c1e snapshot 2007-10-03 18:41:54 -06:00
Joel Dice
68e382ca8d snapshot 2007-10-01 18:08:17 -06:00
Joel Dice
7ecb5b9c30 fixes for various recent regressions 2007-09-30 10:32:17 -06:00
Joel Dice
569cfa9e07 implement more instructions; various bugfixes 2007-09-29 14:24:14 -06:00
Joel Dice
79603e284d sketch of Compiler.compileNative() and ifnull instruction implementation 2007-09-28 17:41:03 -06:00
Joel Dice
f1bdc4c745 various fixes to get JIT working on x86_64 2007-09-26 18:01:38 -06:00
Joel Dice
2f3f97d550 clean up compile.cpp and support both x86_64 and i386; further refactoring to support JIT 2007-09-26 17:23:03 -06:00
Joel Dice
1207989f72 fix build and runtime bugs introduced in last commit 2007-09-26 08:43:40 -06:00
Joel Dice
e7c8fb645a JIT works for Instructions.java 2007-09-25 17:53:11 -06:00
Joel Dice
1c90708abf bugfixes for recent refactoring effort 2007-09-24 07:46:48 -06:00