Commit Graph

394 Commits

Author SHA1 Message Date
Joel Dice
b063f10ad5 fix Windows build 2011-09-30 14:44:25 -06:00
Joel Dice
21d1a6c883 add __attribute__ ((used)) to EXPORT macro definition
This ensures that exported functions are not stripped when using the
-dead_strip option to the Apple linker.
2011-09-22 16:57:44 -06:00
Joel Dice
c537dcfd34 generate read-only code image in bootimage build
This avoids the requirement of putting the code image in a
section/segment which is both writable and executable, which is good
for security and avoids trouble with systems like iOS which disallow
such things.

The implementation relies on relative addressing such that the offset
of the desired address is fixed as a compile-time constant relative to
the start of the memory area of interest (e.g. the code image, heap
image, or thunk table).  At runtime, the base pointer to the memory
area is retrieved from the thread structure and added to the offset to
compute the final address.  Using the thread pointer allows us to
generate read-only, position-independent code while avoiding the use
of IP-relative addressing, which is not available on all
architectures.
2011-09-20 16:30:30 -06:00
Joel Dice
178dd7af34 Merge remote branch 'origin/master' into ios 2011-09-16 20:46:03 -06:00
Joel Dice
029a9ca507 fix MinGW (non-w64) build
Commit a2dca0dc fixed the MinGW-w64 openjdk-src build but broke the
traditional MinGW build.  This should ensure that both work.
2011-09-16 18:42:18 -06:00
Joel Dice
e505cbe99d more progress towards cross-architecture bootimage builds
This commit fixes a lot of bugs.  All tests are now pass for Linux
x86_64 to Linux i386 cross builds.
2011-08-31 21:18:00 -06:00
Joel Dice
6923c74c4c Merge branch 'ios' of oss:/var/local/git/avian into ios
Conflicts:
	makefile
2011-08-29 19:07:42 -06:00
Joel Dice
5b4f17997f progress towards cross-architecture bootimage builds
This monster commit is the first step towards supporting
cross-architecture bootimage builds.  The challenge is to build a heap
and code image for the target platform where the word size and
endianess may differ from those of the build architecture.  That means
the memory layout of objects may differ due to alignment and size
differences, so we can't just copy objects into the heap image
unchanged; we must copy field by field, resizing values, reversing
endianess and shifting offsets as necessary.

This commit also removes POD (plain old data) type support from the
type generator because it added a lot of complication and little
value.
2011-08-29 19:00:17 -06:00
Joel Dice
9522842b4b support cross builds on OS X to non-Mac targets 2011-08-23 17:04:04 -06:00
Joel Dice
e5a8d5c824 add support for Apple iOS on ARM
Most tests are passing, but not all, so this still needs more work.
2011-08-10 19:21:48 -06:00
Joel Dice
e3662f13a9 update copyright years and increment version number 2011-07-13 08:25:21 -06:00
Joel Dice
a2dca0dc62 fix Cygwin 1.7.x build
Recent versions of Cygwin's GCC no longer support the -mno-cygwin flag
(compilation works, but linking fails).  However, Cygwin now includes
mingw64-i686-gcc, mingw64-x86_64-gcc, and related packages, so we use
those compilers instead.  This has the added benefit that we can build
native x86_64 binaries on Cygwin now.

This will break the build for old Cygwin installs, so it will be
necessary to upgrade Cygwin and install the aforementioned packages to
build Avian going forward.
2011-07-12 22:58:51 +00:00
Joel Dice
50a699a08f Merge remote branch 'origin/B14038_Lion_appshare' into oss-master 2011-06-03 17:35:40 -06:00
Joel Dice
bcc72e8c9d Merge remote branch 'remotes/origin/B14038_Lion_appshare' into oss-master 2011-06-03 14:39:50 -06:00
Matt Klich
698138f649 OSX Lion build changes
Added JavaVM to include path. Also allow dynamically building with
different SDK versions through the OSX_SDK_VERSION and OSX_SDK_SYSROOT
environment variables (these default to the previosly hardcoded value of
10.4 and 10.4u respectively).
2011-06-02 15:15:08 -06:00
Matt Klich
c7c0a45a61 Revert "OSX Lion build changes"
This commit introduced conditional includes which is not the preferred
method. Will do it in the makefile instead.

This reverts commit 7148556979.
2011-06-01 13:56:03 -06:00
Matt Klich
7148556979 OSX Lion build changes 2011-05-26 11:57:30 -06:00
Joel Dice
a17045b02f avoid naming conflicts in OpenJDK build of libavian.a
OpenJDK's compile.c and Avian's compile.cpp were both being compiled
to compile.o, which led to a conflict when building libavian.a.  We
now append "-openjdk" to the object file name for OpenJDK code to
avoid such conflicts.
2011-04-14 16:12:12 -06:00
Joel Dice
1d98d977ce only include security policy jars if they exist 2011-04-10 15:51:17 -06:00
Joel Dice
f617c5c9ef Merge remote branch 'origin/localization' into oss-master 2011-04-09 21:43:44 -06:00
Joel Dice
686cbc3637 implement JVM_ResolveClass
This just reuses code in avian.Classes which was formerly only used in
the Avian classpath build.
2011-03-26 23:24:48 -06:00
Joel Dice
6bd9ec3735 enable link time optimization when using GCC 4.6 or greater 2011-03-26 14:44:08 -06:00
JET
b29e692c31 Merge branch 'master' into localization 2011-03-23 10:24:44 -06:00
Joel Dice
48e569c65a add tail call test 2011-03-15 17:51:32 -06:00
Joel Dice
78790a0f68 fix OpenJDK JCE support
This primarily required additions to classpath-openjdk.cpp to
intercept ZipFile, ZipEntry, and JarFile native methods to consult
embedded encryption policy jars when required.
2011-03-04 16:55:31 -07:00
Joel Dice
7a91074a32 fix OS X cross-arch build regression 2011-03-01 12:20:49 -07:00
Joel Dice
5f50226ae0 enable Linux/PowerPC cross build 2011-02-27 22:54:59 -07:00
Joel Dice
9e1ee7e974 enable Linux PowerPC build 2011-02-26 12:45:22 -07:00
Joel Dice
6014cb93b1 fix Mac OS PowerPC cross build
While we can use Linux's jni.h to cross compile the i386 Mac OS build,
that doesn't work for the PowerPC one.  Now we use the proper
/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Headers/jni.h
from the sysroot instead.
2011-02-22 15:45:46 -07:00
JET
f6e2f4af21 Merge branch 'master' into localization 2011-02-21 17:58:50 -07:00
Joel Dice
19c443254d Merge remote branch 'oss/r0.5' into dev 2011-02-17 17:41:21 -07:00
Joel Dice
1ca8a20731 enable i686-apple-darwin8 cross compile 2011-02-17 17:39:41 -07:00
Joel Dice
c761ac6717 fix Subroutine test for use with OpenJDK build 2011-02-17 14:28:51 -07:00
Joel Dice
2216b22ccb add lib/currency.data to javahome-files on Windows
This file is needed by OpenJDK for both Windows and Posix systems.
2011-02-17 14:11:37 -07:00
Joel Dice
c743140e08 add new subroutine test
This test covers the case where a local stack slot is first used to
store an object reference and later to store a subroutine return
address.  Unfortunately, this confuses the VM's stack mapping code;
I'll be working on a fix for that next.

The new test requires generating bytecode from scratch, since there's
no reliable way to get javac to generate the code we want.  Since we
already had primitive bytecode construction code in Proxy.java, I
factored it out so we can reuse it in Subroutine.java.
2011-02-16 11:41:33 -07:00
Joel Dice
8fdd547922 Merge branch 'oss-master' into dev 2011-02-08 19:08:41 -07:00
Joel Dice
c2cbecbaf0 switch to using mingw-w64 tools for 32-bit Windows cross build
This allows us to use the same tools for 32-bit and 64-bit builds.
2011-02-08 10:37:54 -07:00
jet
5f9a2a1b9b Added -marm flag to ARM cflags, as we don't support Thumb. 2011-02-02 10:02:15 -07:00
Joel Dice
08a6025138 only enable frame pointer on x86(_64) 2011-01-28 17:05:42 -07:00
Joel Dice
f980ceb13e enable use-frame-pointer=true build
Also, include Continuations, Coroutines, and DynamicWind tests in test
suite for continuations=true build.
2011-01-27 21:06:01 -07:00
Joel Dice
220f7760b7 fix MSVC build regressions 2011-01-21 16:14:21 -07:00
Joel Dice
61fe7efd6d specify -mmacosx-version-min=10.4 for 32-bit OS X builds 2010-12-07 09:33:07 -07:00
Joel Dice
a2f14dce6f increment version number to 0.4 2010-12-05 20:20:48 -07:00
Joel Dice
1271678d41 various fixes for embedded resource loading in OpenJDK build 2010-12-05 17:40:50 -07:00
Joel Dice
4a3b5ad1ab fix windows cross openjdk-src build
This mainly involves some makefile ugliness to work around bugs in the
native Windows OpenJDK code involving conflicting static and
not-static declarations which GCC 4.0 and later justifiably reject but
MSVC tolerates.
2010-12-01 20:05:22 -07:00
Joel Dice
af8e043989 fix windows cross build 2010-12-01 16:05:56 -07:00
Joel Dice
84520cde51 Merge remote branch 'origin/master' into openjdk 2010-12-01 14:40:58 -07:00
Joel Dice
8de53aeacc fix Windows openjdk-src build 2010-11-29 17:39:41 -07:00
Joel Dice
0f04865e93 implement -jar option in main.cpp 2010-11-27 14:46:07 -07:00
Joel Dice
e68dfe1e89 various fixes to get Eclipse 3.6 working
* add libnet.so and libnio.so to built-in libraries for openjdk-src build

 * implement sun.misc.Unsafe.park/unpark

 * implement JVM_SetClassSigners/JVM_GetClassSigners

 * etc.
2010-11-27 11:25:02 -07:00