Joshua Warner
77365dfcc1
move binary-to-object to new tree structure
2013-02-19 20:23:11 -07:00
Joel Dice
f45b95e1b5
progress towards Android classpath support
...
It now builds and links, but fails at runtime because
register_libcore_icu_ICU can't find the file it wants. We'll probably need to replace register_libcore_icu_ICU with a better-behaved version.
2013-02-19 16:48:33 -07:00
Joel Dice
0f524fcf16
first pass at Android classpath support
...
Stuff compiles, but linking breaks spectacularly. Next step is to
figure out how to build the dependencies without checking out and
building the entire Android platform.
2013-02-19 09:36:19 -07:00
Joshua Warner
46029939d3
begin work on audit-codegen
2013-02-19 09:06:25 -07:00
Joshua Warner
24c0fab9bf
add unit tests for arg parser
2013-02-19 09:06:25 -07:00
Joshua Warner
e9be3c4e07
move arg parser out of bootimage.cpp
2013-02-19 09:06:21 -07:00
Joshua Warner
61f03643e0
begin splitting up x86 assembler
2013-02-19 09:05:31 -07:00
Joshua Warner
5a5b9248e6
fix unittests for process=interpret build
2013-02-15 20:44:55 -07:00
Joshua Warner
9a91c1dd2d
set remote-test variable based on the presence of remote-test-host or remote-test-port
...
The new way to run a remote test is:
make arch=<arch> remote-test-host=<host_to_test_on> test
2013-02-15 17:43:21 -07:00
Joshua Warner
a3fb540ec3
add ArchitecturePlanTest
2013-02-15 07:35:17 -07:00
Joshua Warner
33d245d0f7
add unittest framework
2013-02-14 20:54:20 -07:00
Joshua Warner
1258b23ea1
add remote-test capability
...
To execute tests on a remote host (for instance, because you're cross-compiling),
simply do:
make remote-test=true remote-test-host=<host_to_test_on> test
You can set several variables to control the functionality of remote-test.
See them below, along with their default values:
remote-test-host = localhost # host to ssh to
remote-test-port = 22
remote-test-user = ${USER} # user to execute tests as
remote-test-dir = /tmp/avian-test-${USER} # dir to rsync build output to
2013-02-14 18:47:48 -07:00
Joshua Warner
2db0303e2f
further compiler cleanup / organization
2013-02-13 23:23:07 -07:00
Joel Dice
a7ab59f1f6
switch clean target back to deleting all generated files
2013-02-13 22:13:56 -07:00
Joshua Warner
d00950458f
move JumpEvent out of compiler.cpp
2013-02-13 22:13:56 -07:00
Joshua Warner
0f6e098b69
move CallEvent out of compiler.cpp
2013-02-13 22:13:55 -07:00
Joshua Warner
6d265374ec
move Reads out of compile.cpp
2013-02-13 22:13:55 -07:00
Joshua Warner
b0abc4e1e5
further split up compiler.cpp
2013-02-13 22:13:55 -07:00
Joshua Warner
952cad2360
move site out of compiler.cpp
2013-02-13 22:13:55 -07:00
Joshua Warner
740886d58e
begin splitting up compiler.cpp
2013-02-13 22:13:55 -07:00
Joshua Warner
ef5e534e1e
begin moving register allocator out of compiler.cpp
2013-02-13 22:13:55 -07:00
Joshua Warner
3589d5c205
Merge branch 'master' of git://github.com/ReadyTalk/avian
...
Conflicts:
src/codegen/arm/assembler.cpp
src/common.h
src/machine.cpp
2013-02-12 17:37:19 -07:00
Joshua Warner
f7b49ddb06
allow codegen targets (Architectures and Assemblers) to co-exist
...
The primary motivation behind this is to allow all the different Assemblers
to be built at once, on a single machine. This should dramatically reduce
the time required to make sure that a particular change doesn't break
the build for one of the not-so-common architectures (arm, powerpc)
Simply pass "codegen-targets=all" to make to compile all
src/codegen/<arch>/assembler.cpp.
Note that while these architectures are built, they will not be fully-
functional. Certain stuff is assumed to be the same across the entire
build (such as TargetBytesPerWord), but this isn't the case anymore.
2013-02-12 17:16:40 -07:00
Joel Dice
86c92e26cb
Merge commit '752d02e7786b807185e3f4cd254ee988c01f830f' into HEAD
...
Conflicts:
classpath/java-io.cpp
makefile
src/bootimage.cpp
src/interpret.cpp
src/machine.cpp
src/windows.cpp
2013-02-12 10:47:28 -07:00
Joel Dice
937343d0d3
don't specify -Wl,-rpath argument on Darwin or Windows (take 2)
2013-02-12 09:27:47 -07:00
Joel Dice
8a7b6488d4
Merge remote branch 'osmandapp/upstream'
2013-02-12 09:26:01 -07:00
Joel Dice
752d02e778
make bootimage-object depend on openjdk-jar-dep
...
This ensures that the OpenJDK classes have been extracted prior to
bootimage creation.
2013-02-12 09:23:43 -07:00
Joel Dice
d1a7b66085
don't specify -Wl,-rpath argument on Darwin or Windows
...
It remains to be seen what form that argument should take on those
operating systems; for now, it only causes trouble, so we'll just
leave it out.
2013-02-12 08:22:21 -07:00
Joshua Warner
68776e5d73
move all codegen source in to codegen/ dir
2013-02-10 18:55:38 -07:00
Alexey Pelykh
dd14b10d8d
Lost assignment
2013-02-09 13:18:39 +02:00
Alexey Pelykh
837e2847ec
WP8 target refine
2013-02-09 13:09:58 +02:00
Alexey Pelykh
197d4f7f89
Make clean target more robust
...
Conflicts:
.gitignore
2013-02-09 09:42:48 +02:00
Alexey Pelykh
362f4aaa89
Support new WinRT interop
2013-02-09 09:42:43 +02:00
Alexey Pelykh
71052fa50c
Fix WP8/WinRT ARM build
2013-02-09 09:42:30 +02:00
Alexey Pelykh
c6694287e9
Finally, proper jvm.dll linking for WP8
2013-02-09 09:42:29 +02:00
Alexey Pelykh
d51db00136
Allow output of exceptions to debugger. Generate WinMD file
2013-02-09 09:42:28 +02:00
Alexey Pelykh
aaa60aebff
Makefile changes, added additional compiler flags
2013-02-09 09:42:27 +02:00
Alexey Pelykh
acdd297fb2
Fixes to WP8/WinRT support
2013-02-09 09:42:25 +02:00
Alexey Pelykh
5e0b073eff
Fix library overwriting ; proper assembler flags
2013-02-09 09:42:24 +02:00
Alexey Pelykh
dca12d3cd0
WinRT/WP8 process=compile
2013-02-09 09:42:22 +02:00
Alexey Pelykh
4d03650544
Replaced TODO comments with messages ; More correct AVIAN_AOT_ONLY usage
2013-02-09 09:42:21 +02:00
Alexey Pelykh
1b43caf815
Makefile fix
2013-02-09 09:42:20 +02:00
Alexey Pelykh
2f2cac556c
Windows Phone 8 / Windows RT initial support
...
Conflicts:
makefile
2013-02-09 09:42:19 +02:00
Victor Shcherb
c368a8b74a
Fix android makefile
2013-02-09 09:42:16 +02:00
Alexey Pelykh
1f77d15040
Path fix
2013-02-09 09:42:15 +02:00
Alexey Pelykh
b1990ba55f
Android toolchain
2013-02-09 09:42:14 +02:00
Victor Shcherb
3a42db9f6f
Add android platform
2013-02-09 09:42:13 +02:00
Joel Dice
07e3294937
use rpath=$ORIGIN instead of LD_LIBRARY_PATH
...
Hi
If libjvm.so is in the same directory as avian-dynamic, then there's
no need for LD_LIBRARY_PATH to include that directory, we can just set
the rpath in avian-dynamic to $ORIGIN when linking it. Working patch
attached.
Regards
Damjan
2013-02-08 09:34:26 -07:00
Joel Dice
ef11cd1d8d
rename clean to clean-current, and clean-all back to clean
...
This way, the clean target continues to do what it always did: delete
the whole build directory. You can use clean-current to just delete
the currently-configured build directory.
2013-02-07 09:33:21 -07:00
Joel Dice
82d4ced160
specify UTF-8 encoding to javac
...
This fixes "illegal character" errors when compiling e.g. Misc.java on
systems where the default encoding is not UTF-8.
2013-02-07 09:33:21 -07:00
Alexey Pelykh
18cb5ba379
Make clean target more robust
...
Conflicts:
.gitignore
2013-02-07 11:39:26 +02:00
Alexey Pelykh
41c7269896
Support new WinRT interop
2013-02-07 11:39:20 +02:00
Alexey Pelykh
d468d7eaba
Fix WP8/WinRT ARM build
2013-02-07 11:39:08 +02:00
Alexey Pelykh
7cd194b5de
Finally, proper jvm.dll linking for WP8
2013-02-07 11:39:07 +02:00
Alexey Pelykh
5a1b478b89
Allow output of exceptions to debugger. Generate WinMD file
2013-02-07 11:39:06 +02:00
Alexey Pelykh
d6ba068b4b
Makefile changes, added additional compiler flags
2013-02-07 11:39:05 +02:00
Alexey Pelykh
4840f4a019
Fixes to WP8/WinRT support
2013-02-07 11:39:03 +02:00
Alexey Pelykh
1590bd0554
Fix library overwriting ; proper assembler flags
2013-02-07 11:39:02 +02:00
Alexey Pelykh
9c67acfaf1
WinRT/WP8 process=compile
2013-02-07 11:39:00 +02:00
Alexey Pelykh
a78959a480
Replaced TODO comments with messages ; More correct AVIAN_AOT_ONLY usage
2013-02-07 11:38:59 +02:00
Alexey Pelykh
c5adad9dce
Makefile fix
2013-02-07 11:38:58 +02:00
Alexey Pelykh
0cbaad6495
Windows Phone 8 / Windows RT initial support
...
Conflicts:
makefile
2013-02-07 11:38:57 +02:00
Victor Shcherb
8da990f593
Fix android makefile
2013-02-07 11:38:54 +02:00
Alexey Pelykh
62104e843c
Path fix
2013-02-07 11:38:53 +02:00
Alexey Pelykh
b0cae77b2a
Android toolchain
2013-02-07 11:38:53 +02:00
Victor Shcherb
4cd8ab5910
Add android platform
2013-02-07 11:38:52 +02:00
Joel Dice
75f5921b3e
revert accidental makefile change
2013-01-26 20:07:18 -07:00
Joel Dice
dec2095c63
fix openjdk bootimage cross builds
...
We need to extract the OpenJDK classes into the build classpath
directory for the target platform before running the
bootimage-generator, or else it won't be able to find the classes.
2013-01-26 18:01:34 -07:00
Joel Dice
f79f320859
fix MSVC build regression
2012-12-05 17:17:29 -07:00
Joel Dice
36aa74316a
fix Windows cross-compile build
2012-12-04 17:37:02 -07:00
Carsten Elton Sorensen
571cc6a85e
Added new embed utility for Windows
2012-11-13 09:11:49 +01:00
Joel Dice
a3c4b60f43
rename package avian.avian_vm_resource to avian.avianvmresource
...
This package name must match the URL protocol we use for loading
embedded resources, but OpenJDK's URL class won't tolerate underscores
in a protocol name. Also, I had not updated the names of the native
methods in avian.avianvmresource.Handler, leading to
UnsatisfiedLinkErrors when they were called.
2012-10-06 15:33:24 -06:00
Joel Dice
16c526b775
fix OS X 10.8 and iOS 6.0 builds
...
This also adds support for Clang ARM builds, which involved removing
unused functions from arm.cpp to avoid link-time warnings.
2012-10-03 13:36:51 -06:00
Joel Dice
d3b32ecffd
Merge branch 'openjdk-version' of https://github.com/xranby/avian
2012-09-05 12:38:42 -06:00
Xerxes Rånby
db0c14d742
Set java.vm.info based on makefile info= and
...
set java.vm.version based on makefile version=
in order to display relevant OpenJDK -version information.
Signed-off-by: Matthias Klose <doko@ubuntu.com>
Signed-off-by: Xerxes Rånby <xerxes@zafena.se>
2012-09-05 15:30:49 +02:00
Xerxes Rånby
d88a33329a
Add a non-versioned SONAME to Avian libjvm.so that
...
matches the Hotspot Server/Client libjvm.so SONAME,
this allow libjava.so in OpenJDK 7 to find the Avian libjvm.so during ldopen.
2012-09-05 10:29:12 +02:00
Joel Dice
38454ce7d4
fix MSVC build of test JNI library
2012-08-15 17:43:45 -06:00
Joel Dice
b325221579
rename "resource" URL protocol to "avian_vm_resource"
...
This fixes a problem with JOSM, which attaches its own meaning to the
"resource" protocol. The new name is less likely to cause such
conflicts.
2012-08-11 19:01:32 -06:00
Joel Dice
021590af05
fix JNI test for openjdk-src build
2012-08-04 18:50:43 -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
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
Joel Dice
67ec092e9a
add JNI test to test suite
2012-08-01 16:04:12 +00: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
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
8706b6ad4a
fall back to x86_64-w64-mingw32 compiler for 32-bit Windows builds if i686-w64-mingw32 compiler not found
...
A multilib-capable x86_64-w64-mingw32 compiler should work just fine,
but since we don't know if it's mutilib or not, we try the
i686-w64-mingw32 version first.
2012-07-06 11:21:53 -06:00
Joel Dice
d21b09215f
use i686-w64-mingw32- prefix for ia32 Windows cross compiles
...
Using e.g. x86_64-w64-mingw32-gcc -m32 doesn't quite work at link time
when using Debian Wheezy's gcc-mingw-w64 package, due to the 32-bit
system libraries not being in the search path, so we use
i686-w64-mingw32-gcc instead.
2012-07-02 10:51:32 -06:00
Joshua Warner
fe1f069309
abort on startup if Thread field offset constants don't match the real runtime values
2012-06-20 13:16:08 -06:00
Joel Dice
165986841e
fix endianess bug in LZMA decoding
2012-06-06 12:58:24 -06:00
Joel Dice
7d8def84e0
fix build on old Xcode versions
2012-06-04 09:52:06 -06:00
Joel Dice
9ea6a28383
fix MSVC build regression
2012-06-04 09:51:11 -06:00
Joel Dice
9520b03333
fix OS X build regressions
2012-06-02 18:56:07 -06:00
Joel Dice
d61501453f
add support for LZMA on Windows
2012-06-02 15:43:42 -06:00
Joel Dice
f07a8c7ec4
make LZMA encoder by default
2012-06-02 13:23:52 -06:00
Joel Dice
5d9f7b2bc3
add optional LZMA support for compressing embedded JARs, boot images, and shared objects
2012-06-02 09:06:22 -06:00
Joel Dice
bd7ef24734
pass -std=c++11 to Clang for C++ code
2012-06-01 17:57:42 -06:00
Joel Dice
879df617df
add use-clang option for building with LLVM Clang instead of GCC
...
This also fixes several errors and warnings emitted by Clang.
2012-06-01 17:43:42 -06:00