Commit Graph

751 Commits

Author SHA1 Message Date
Vasily Litvinov
e83ed4b454 Fixed CFLAGS for Android classpath under MinGW 2014-09-02 00:20:38 +04:00
Vasily Litvinov
62dc65e0e4 Fixed missing __BEGIN_DECLS / __END_DECLS on MinGW 2014-09-01 02:35:06 +04:00
Vasily Litvinov
33680dd676 Fixed jar tool usage - we should call "$(jar)" instead of simply "jar" 2014-09-01 01:13:14 +04:00
Ilya Mizus
f2493650d5 Small fix for Android Classpath on MacOS 2014-09-01 00:53:09 +04:00
Joel Dice
7f4c0b3118 fix SSL stack and Android JAR resource loading 2014-08-22 07:20:19 -06:00
Joel Dice
b96cc3c575 update to more recent version of Android class library
Lots has changed since we forked Android's libcore, so merging the
latest upstream code has required extensive changes to the
Avian/Android port.

One big change is that we now use Avian's versions of
java.lang.Object, java.lang.Class, java.lang.ClassLoader, some
java.lang.reflect.* classes, etc. instead of the Android versions.
The main reason is that the Android versions have become very
Dex/Dalvik-specific, and since Avian is based on Java class files, not
dex archives, that code doesn't make sense here.  This has the side
benefit that we can share more native code with classpath-avian.cpp
and reduce the amount of Java/C++ code duplication.
2014-08-21 13:42:49 -06:00
Joel Dice
ff78b05c59 fix crash in Posix_getaddrinfo for ProGuarded Android build
Posix_getaddrinfo needs to access fields in libcore.io.StructAddrinfo
via JNI, so we tell ProGuard to preserve them.

This commit also includes a minor indentation tweek in README.md and
removes -fno-rtti from lzma-build-cflags to avoid a warning from GCC.
2014-08-07 10:16:04 -06:00
Joel Dice
9f182d4613 Merge pull request #316 from bigfatbrowncat/fixing-windows-build
Fixed Android build on Windows
2014-07-29 08:43:39 -06:00
Vasily Litvinov
d668c6a259 Fixed Android build on Windows 2014-07-29 13:01:51 +04:00
Joshua Warner
e6b587333a Merge pull request #314 from sgoings/master
Avian UX Upgrade: Artifact Publishing v2
2014-07-28 17:32:15 -06:00
Joel Dice
830fd8535a fix lzma build with clang
Clang doesn't like seeing -std=c++0x when building C code, and many of
the options in cflags don't apply to the LZMA source code anyway, so
we give LZMA its own set of compiler flags.
2014-07-28 17:06:57 -06:00
Seth Goings
8c0fe8d9a3 Configure javadoc a bit 2014-07-28 13:56:38 -06:00
Joshua Warner
857c155980 Merge pull request #313 from dicej/lzma-bootimage
fix LZMA/bootimage build
2014-07-28 09:49:08 -06:00
Joel Dice
a1e9315fa2 fix LZMA/bootimage build
This includes some tweaks to README.md and makefile to ensure the
directions in the former for building a bootimage actually work.
2014-07-28 09:19:39 -06:00
Joel Dice
b811ca60c1 Merge pull request #291 from joshuawarner32/cpp11
Begin using c++11 features
2014-07-24 13:13:30 -06:00
Joel Dice
bcbce54b9e fix iOS build when using recent versions of OpenJDK 7
This is based on recent feedback on the Avian group.  I've tested it
using both OpenJDK 7u40 and 7u60.
2014-07-24 11:20:17 -06:00
Joshua Warner
d8ddc95315 use c++11 enhanced-for and auto in type-generator 2014-07-24 10:09:29 -06:00
Joshua Warner
41cb6fabf5 split avian::system::crash into its own file 2014-07-24 09:36:40 -06:00
Seth Goings
f4219caa28 Set up bootclasspath on javacompile targets 2014-07-23 17:26:48 -06:00
Seth Goings
644cf9167a Have Makefile pull version from gradle.properties 2014-07-23 16:36:19 -06:00
Joshua Warner
051804816a statically link libstdc++ to type-generator on windows (for real, this time!) 2014-07-17 12:22:24 -06:00
Joshua Warner
80cf745424 move executable allocator out of System class 2014-07-16 18:40:57 -06:00
Joel Dice
cae4b49005 fix heapdump=true build 2014-07-16 15:51:48 -06:00
Joshua Warner
732669dc01 statically link libstdc++ to type-generator on windows 2014-07-14 10:39:16 -06:00
Joel Dice
2a43e68c16 fix all the bugs
So there I was, planning to just fix one little bug: Thread.holdsLock
and Thread.yield were missing for the Android class library.  Easy
enough, right?  So, I added a test, got it passing, and figured I'd go
ahead and run ci.sh with all three class libraries.  Big mistake.

Here's the stuff I found:

 * minor inconsistency in README.md about OpenSSL version

 * untested, broken Class.getEnclosingMethod (reported by Josh)

 * JNI test failed for tails=true Android build

 * Runtime.nativeExit missing for Android build

 * obsolete assertion in CallEvent broke tails=true Android build

 * obsolete superclass field offset padding broke bootimage=true Android build

 * runtime annotation parsing broke bootimage=true Android build
   (because we couldn't modify Addendum.annotationTable for classes in
   the heap image)

 * ci.sh tried building with both android=... and openjdk=..., which
   the makefile rightfully balked at

Sorry this is all in a single commit; I didn't expect so many
unrelated issues, and I'm too lazy to break them apart.
2014-07-12 16:57:24 -06:00
Joshua Warner
9b36dca846 generate better typed accessors from type-generator (and switch to using standard library there) 2014-07-11 13:25:17 -06:00
Joshua Warner
5adb558355 add Code to classpath 2014-07-11 09:32:57 -06:00
Joshua Warner
13452beaab use arg-parser in type-generator 2014-07-11 09:12:34 -06:00
Joshua Warner
60df08d023 Merge pull request #283 from dicej/findclass-onload
fix case of JNIEnv::FindClass called from JNI_OnLoad
2014-07-01 21:39:52 -06:00
Joel Dice
5d3c612d0e fix JNIEnv::FindClass calls from JNI_OnLoad for all supported class libraries
This also fixes the some Android build rot and updates the version of
OpenSSL used.
2014-07-01 10:53:26 -06:00
Joshua Warner
65e930f73e use stress-major consistently in makefile 2014-07-01 08:05:12 -06:00
Joshua Warner
371e55c112 allow stress and stress-major as valid mode= settings in the makefile (note: all tests fail in both modes) 2014-06-30 13:47:19 -06:00
Joshua Warner
9a6f7bd0bf rename platform=darwin -> platform={ios,macosx}, fix ios simulator build 2014-06-22 12:30:52 -06:00
Joel Dice
7ec273fc70 Merge pull request #279 from bigfatbrowncat/avian-pack
Added Windows shell API lib for Android classpath
2014-06-09 08:42:33 -06:00
Mike Hearn
6edc4c1b48 Fix makefiles for building on Mavericks 2014-06-05 21:34:26 +08:00
Joel Dice
86648ea054 Merge pull request #263 from joshuawarner32/compiler-types
Introduce stronger typing in compiler
2014-06-01 20:08:44 -06:00
Joel Dice
a37a6fc5b4 update version to 1.0.1 2014-06-01 20:04:34 -06:00
Joshua Warner
781977d19c add debug-util for printing java bytecode as it's compiled 2014-05-30 23:40:21 -06:00
Joel Dice
d75c2131fb fix iOS OpenJDK and simulator builds
With the iOS openjdk-src build, sun.misc.Launcher will throw an
InternalError if avian.file.Handler is not present, so let's make it
happy.

Also, as of recent version(s) of Xcode, there are no utilities
(e.g. ar and strip) in iPhoneSimulator.platform/usr/bin, so we can
just use the system ones.
2014-05-18 19:23:21 -06:00
Ilya Mizus
1270cee364 Added Windows shell API lib for Android classpath 2014-05-13 18:06:48 +04:00
Joel Dice
81958144a1 fix test-flags definition for Windows
We need to quote a classpath with a Windows path separator (';') so it
isn't interpreted by the shell.
2014-05-09 16:37:17 -06:00
Joel Dice
34f8cf50d1 update version to 1.0 2014-05-08 10:00:31 -06:00
Joshua Warner
22b610ffb5 fix parameterization of debugger 2014-05-07 13:06:00 -06:00
Joshua Warner
95122204f4 add sanity checks for makefile parameters 2014-05-07 13:06:00 -06:00
Joel Dice
2f7356863b Merge pull request #249 from joshuawarner32/remove-powerpc
remove powerpc support
2014-05-02 07:13:12 -06:00
Joshua Warner
d37c6ce09b add support for 7.1 ios SDK 2014-04-30 13:23:22 -06:00
Joshua Warner
9cb1f1bb26 Fix ci.sh tests on arm qemu systems
There are two problems:
* The x86 JIT compiler requires detectFeatures, defined in the x86 assembly.
  Thus it can't (currently) be built on non-x86 platforms.
  For the purposes of fixing test/ci.sh, it suffices to pretend
  codegen-targets=all means codegen-targets=native when on arm.
* Qemu can introduce some extra latency which was regularly screwing up the LinkedBlockingQueueTest.
  Solution: increase the timeout to 1/10th seconds.
2014-04-29 14:14:44 -06:00
Joshua Warner
41adb74eb1 remove powerpc support 2014-04-29 13:26:40 -06:00
Joshua Warner
32d25d79fd Merge pull request #243 from dicej/arm-non-ios
assume we can't use ARMv7 instructions on non-iOS platforms by default
2014-04-28 09:46:48 -06:00
Joel Dice
2501929ccc assume we can't use ARMv7 instructions on non-iOS platforms by default
The only Linux/ARM machine I have access to does not support ARMv7.  I
don't know how common that is in general, but this seems like the safe
default.  You can always override it on the command line.

I've also broken the test target into build-test and run-test
subtargets, which can be useful when you're building on a shared
filesystem and running the tests on another machine (without using the
remote-test-host option).  If there's clock skew, the other machine
might try to rebuild stuff unecessarily.  Using run-test avoids
that.
2014-04-24 09:58:30 -06:00
Joel Dice
129626d91f add support for openjdk-src builds with OpenJDK 8
I've tested this on Linux with both OpenJDK 7 and 8.  Other platforms
will probably require further changes.
2014-04-23 17:09:52 -06:00
Joel Dice
1ed3de08fa fix Misc test failures
The Misc test was failing when run as "make input=Misc run" since
test-flags did not include $(build)/extra-dir in the class library,
leading the ClassLoader.getResources test to fail.

Also, the UnknownHostException test was not reliable -- some ISPs
(mine included) return DNS matches for bogus hostnames, defaulting to
the IP address of a webserver intended to help users with name
resolution problems.  That's dumb, I know, but I'm guessing I'm not
the only person with a dumb ISP, and it seems better to just remove
the test than make people think Avian is broken when it's really just
their DNS server that's broken.
2014-04-20 19:11:15 -06:00
Joel Dice
e5ca66c305 only define soname-flag and version-script-flag for openjdk builds
These flags are only needed to ensure that libjvm.so can be used as a
drop-in replacement for OpenJDK's VM, and that only makes sense for
openjdk builds (without the openjdk-src option).  It didn't hurt
anything to define them unconditionally, but it was misleading.
2014-04-11 19:32:16 -06:00
Joel Dice
4ce7676b1a disable LTO by default
The -flto flag slows down linking dramatically without providing a
noticeable improvement in speed or size.  Rather than take the
build-time hit every time we rebuild, let's only do it when it's
explicitly requested.
2014-04-07 15:26:31 -06:00
Joel Dice
ca4f2224d9 Merge pull request #217 from bigfatbrowncat/avian-pack
Some improvements for Android lib core support
2014-04-07 14:51:12 -06:00
Vasily Litvinov
11959d8ab3 Reversed applying patches to android libcore 2014-04-07 23:12:13 +04:00
Vasily Litvinov
f70ec251ce Fixing indentation 2014-04-05 01:19:52 +04:00
Vasily Litvinov
e55007297b Slight reformatting 2014-04-05 01:17:21 +04:00
Vasily Litvinov
84a102247d Fixing dos2unix call before patching (breaks on MacOS) 2014-04-05 01:16:10 +04:00
Ilya Mizus
a69c4be102 Merge commit '61b1c9380551d14f48ed2158b310e67a79001a60' into avian-pack 2014-04-04 20:21:30 +04:00
Ilya Mizus
66edf1ff4a Fix for https://github.com/ReadyTalk/avian/issues/216 2014-04-04 20:21:16 +04:00
Vasily Litvinov
61b1c93805 Added patching of Android sources by a patchfile, now used to comment call to System.loadLibrary("conscrypt_jni") 2014-04-03 04:11:06 +04:00
Joel Dice
548cce5af0 use x86_64-w64-mingw32- prefix for tools like dlltool as necessary
This fixes architecture mismatches when cross-compiling.
2014-04-02 08:56:12 -06:00
Vasily Litvinov
b52cbc21b2 Fixed .properties publishing and patching 2014-03-30 23:41:26 +04:00
Vasily Litvinov
25a8a1d59a Merge branch 'avian-droid-2' of https://github.com/bigfatbrowncat/avian into avian-droid-2
Conflicts:
	makefile
Resolved using my changes
2014-03-30 23:16:01 +04:00
Vasily Litvinov
c4e194b63f Small refactoring of the non-class file copying 2014-03-30 23:10:48 +04:00
Joel Dice
043e832c02 fix OpenJDK and Android build regression
c2bfba9 introduced a regression such that building against a non-Avian
class library failed due to avian.Cell not being added to the library.
Since avian.Continuations depends on that class, the build broke.
2014-03-25 15:58:46 -06:00
Joel Dice
164717056b remove makefile references to deleted classes 2014-03-24 10:10:08 -06:00
Joel Dice
570b5447bf fix openjdk and android builds when continuations=true
Also, update the whitespace padding for printing test results to
accommodate long names like extra.ComposableContinuations.
2014-03-21 07:38:29 -06:00
Joel Dice
91e4d2b4a1 quick sketch of composable continuation implementation
I've been told by knowledgeable people that it is impossible to
implement composable continuations (AKA delimited continuations AKA
shift/reset) in terms of call-with-current-continuation.  Since I
don't yet understand why that is, I figured it would help my
understanding to attempt it and see how it fails.
2014-03-21 07:38:28 -06:00
Ilya Mizus
ffc439ad23 Merge branch 'master' of https://github.com/ReadyTalk/avian into avian-droid-2 2014-03-19 00:17:22 +04:00
Vasily Litvinov
a311ced69e Added patching of security.properties - removed "com.android." in front of all "com.android.org.*" classes 2014-03-18 23:13:35 +04:00
Vasily Litvinov
df06564392 Made it so all non-.java files from luni/src/main will be added to classpath directory 2014-03-18 19:22:52 +04:00
Vasily Litvinov
3bd903ca69 Now making it so all .properties get packed into classpath.jar 2014-03-18 19:01:44 +04:00
Joshua Warner
a368dc0625 remove unused 'audit-codegen' tool 2014-03-16 19:42:03 -06:00
Vasily Litvinov
1f8fa8a4e8 Made .properties be copied from Android Java source tree 2014-03-17 00:15:33 +04:00
Ilya Mizus
abc9316702 NativeCrypto added for Windows 2014-03-15 21:21:24 +03:00
Joel Dice
70b5ea6838 Merge pull request #191 from bigfatbrowncat/avian-droid
Android classpath support in Windows
2014-03-12 16:38:37 -06:00
Vasily Litvinov
e3ddb14fd2 Merge branch 'avian-droid' of https://github.com/bigfatbrowncat/avian into avian-droid 2014-03-12 01:11:41 +04:00
Vasily Litvinov
5403a43edf Enabling org_conscrypt_NativeCrypto.cpp build 2014-03-12 01:11:33 +04:00
Ilya Mizus
7cac232bd4 Tools fixed 2014-03-06 18:35:20 +04:00
Ilya Mizus
57f50ca7ea Some small cleanup before pull request 2014-03-06 18:33:23 +04:00
Vasily Litvinov
24ba96192c Merge branch 'avian-droid' of https://github.com/bigfatbrowncat/avian into avian-droid 2014-03-05 03:03:07 +04:00
Vasily Litvinov
0982debca7 Got rid of __DISABLE_IPV6_PROTO macro 2014-03-05 03:02:48 +04:00
Ilya Mizus
33a48afd17 NativeCrypto is back for non-Windows platforms 2014-03-05 01:33:41 +04:00
Vasily Litvinov
6ae149809f Enabled "FIXME_STUB" macro 2014-03-04 00:41:58 +04:00
Joel Dice
1cd822b23e Merge pull request #180 from joshuawarner32/move-allocator
Move allocator & Slice into util
2014-02-27 08:55:24 -07:00
Joel Dice
0c298eb513 move OpenJDK.getProtectionDomain into Classes.java
This way, apps can access the CodeSource of a class whether they're
using the OpenJDK class library or the Avian one.
2014-02-26 14:09:42 -07:00
Vasily Litvinov
63a691f41d Adding a define to tell Android Classpath to disable IPv6, removing -fPIC on Windows as it's useless there and generates warnings 2014-02-26 19:41:55 +04:00
Joshua Warner
b083f3df04 move fixed allocator out of machine.h 2014-02-25 20:34:03 -07:00
Vasily Litvinov
e217a4faf8 Removing workaround for Enum.java, fixing the root cause of the issue 2014-02-26 03:35:05 +04:00
Vasily Litvinov
a2ff617f1e Adding a workaround for read-only Enum.java during build 2014-02-26 03:24:10 +04:00
Ilya Mizus
2eaeaa2b12 Merge remote-tracking branch 'refs/remotes/ReadyTalk/master' into avian-droid 2014-02-26 01:27:32 +03:00
Joshua Warner
3bd00f19bc fix remote-test functionality for windows 2014-02-22 15:35:12 -07:00
Joshua Warner
730dade53e break out signal handling from System 2014-02-21 23:36:40 -07:00
Joshua Warner
5ffdfecdc2 remove vm from code paths, to match namespacing 2014-02-21 13:32:28 -07:00
Ilya Mizus
66f25193df OsConstants removed from blacklist 2014-02-21 23:14:07 +03:00
Ilya Mizus
ff4c07f05b Changes to build on my libcore version 2014-02-21 03:50:06 +03:00
Joel Dice
2b1177039e use armv7 memory barriers by default
armv7 and later provide weaker cache coherency models than armv6 and
earlier, so we cannot just implement memory barriers as no-ops.  This
patch uses the DMB instruction (or the equivalent OS-provided barrier
function) to implement barriers.  This should fix concurrency issues
on newer chips such as the Apple A6 and A7.

If you still need to support ARMv6 devices, you should pass
"armv6=true" to make when building Avian.  Ideally, the VM would
detect what kind of CPU it was executing on at runtime and direct the
JIT compiler accordingly, but I don't know how to do that on ARM.
Patches are welcome, though!
2014-01-10 17:32:54 -07:00
Joel Dice
65f6431de0 use ';' instead of ':' as path separator on windows when running tests 2014-01-08 16:08:15 -07:00