Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Dec 31, 2014
  1. Joel Dice
Commits on Sep 18, 2014
  1. Joel Dice
Commits on Aug 22, 2014
  1. Joel Dice
Commits on Aug 21, 2014
  1. Joel Dice

    update to more recent version of Android class library

    dicej authored
    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.
Commits on Aug 7, 2014
  1. Joel Dice

    fix crash in Posix_getaddrinfo for ProGuarded Android build

    dicej authored
    Posix_getaddrinfo needs to access fields in
    via JNI, so we tell ProGuard to preserve them.
    This commit also includes a minor indentation tweek in and
    removes -fno-rtti from lzma-build-cflags to avoid a warning from GCC.
Commits on Jul 28, 2014
  1. Joel Dice

    fix LZMA/bootimage build

    dicej authored
    This includes some tweaks to and makefile to ensure the
    directions in the former for building a bootimage actually work.
Commits on Jul 12, 2014
  1. Joel Dice

    fix all the bugs

    dicej authored
    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 with all three class libraries.  Big mistake.
    Here's the stuff I found:
     * minor inconsistency in 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)
     * 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.
Commits on Jul 1, 2014
  1. Joel Dice

    fix JNIEnv::FindClass calls from JNI_OnLoad for all supported class l…

    dicej authored
    This also fixes the some Android build rot and updates the version of
    OpenSSL used.
Commits on Apr 16, 2014
  1. Joel Dice

    update "Quick Start" examples in

    dicej authored
    It's safer to assume developers are using x86_64 rather than x86_32
    these days, and JAVA_HOME should be defined as
    $(/usr/libexec/java_home) on OS X.
Commits on Feb 24, 2014
  1. Joel Dice

    add "-lIphlpapi" to embedding example link command

    dicej authored
    This is needed to allow the link to succeed when doing an openjdk-src
    build on Windows.
Commits on Jan 19, 2014
  1. Joel Dice

    use "lzma." prefix for LZMA-compressed embedded jars

    dicej authored
    Previously, we used "lzma:", which worked fine on Windows (where the
    path separator is ";") but not on Unix-style OSes (where the path
    separator is ":").  In the latter case, the VM would parse
    "[lzma:bootJar]" as a path containing two elements, "[lzma" and
    "bootJar]", which is not what was intended.  So now we use "lzma." as
    the prefix, which works on all OSes.
Commits on Jan 11, 2014
  1. Joel Dice

    use armv7 memory barriers by default

    dicej authored
    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!
Commits on Jul 31, 2013
  1. Joel Dice

    change expat URL in

    dicej authored
    Apparently we have set up to 301 redirect all URLs
    to, which confuses curl.  Rather than figure out how
    to make curl do the right thing, I've just changed the URL to point to
Commits on Jul 5, 2013
  1. Joel Dice

    fix Android classpath build

    dicej authored
    Hopefully it will stay fixed this time, since we now specify commit
    hashes for each dependency which are known to work.
Commits on Jul 2, 2013
  1. Joel Dice
Commits on Apr 22, 2013
  1. Joel Dice

    use Android directory layout when accessing class library code

    dicej authored
    Per #53, Avian should build
    against a standard AOSP checkout, which means we should look for
    subprojects in the directories the repo utility would place them.
Commits on Feb 28, 2013
  1. Joel Dice

    a few tweaks to fix the OS X Android class library build

    dicej authored
    With corresponding changes to libcore, all the tests are passing
    except Datagrams, which fails with a NPE in
    NetworkInterface.getNetworkInterfacesList due to OS X not having
    /sys/class/net.  Porting that class to OS X looks like a non-trivial
  2. Joel Dice
Commits on Feb 27, 2013
  1. Joel Dice
Commits on Feb 25, 2013
  1. Joel Dice
Commits on Feb 14, 2013
  1. Joel Dice
Commits on Feb 6, 2013
  1. Joel Dice

    mention FreeBSD support in

    dicej authored
    Courtesy of Damjan Jovanovic.
Something went wrong with that request. Please try again.