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
Mike Keesey
a5c9dd6f24
Fixing some issues with runtime annotations within avian.
...
We were not properly converting dots to slashes internally for package names
and we did not properly handle Method.getAnnotations and
Method.getAnnotation(Class<T>) on methods without any annotations.
Added some tests to cover these cases.
2012-05-22 14:02:51 -06:00
Joel Dice
f0152f1d33
Merge branch 'jdk7'
2012-05-11 16:41:18 -06:00
Joshua Warner
3dcf886bbe
allow passing bootimage / codeimage start and end symbol names to the bootimage-generator
...
The usage statement for the bootimage-generator now looks like this:
build/linux-x86_64-bootimage/bootimage-generator \
-cp <classpath> \
-bootimage <bootimage file> \
-codeimage <codeimage file> \
[-entry <class name>[.<method name>[<method spec>]]] \
[-bootimage-symbols <start symbol name>:<end symbol name>] \
[-codeimage-symbols <start symbol name>:<end symbol name>]
2012-05-10 14:49:59 -06:00
Joel Dice
19de383aae
Merge branch 'master' into jdk7
...
Conflicts:
makefile
2012-05-04 11:33:16 -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
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
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
2fa7fa0e83
correct bootimage dependency chain
2012-05-03 10:13:55 -06:00
Joel Dice
20a0823a74
Merge remote-tracking branch 'origin/master' into jdk7
2012-05-02 11:44:24 -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
Joshua Warner
a9ba4782ef
improve build for binaryToObject
2012-04-25 09:13:04 -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
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
8742ae1bde
Merge branch 'jdk7' of oss.readytalk.com:/var/local/git/avian into jdk7
2012-04-05 09:51:52 -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
1be6fe6f15
add -march=i586 to lflags as well as cflags where appropriate
...
When link time optimization is enabled, we need to remind the compiler
that we're targeting i586 when linking so it can resolve atomic
operations like __sync_bool_compare_and_swap.
2012-03-26 18:09:35 -06:00