In this issue

  • HHVM build status report
  • Work in progress: LinuxKit for multiple architectures
  • Work in progress: .NET CoreCLR and CoreFX
  • Azul Systems and Qualcomm Bring Enterprise-Grade Open Source Java on ARM to Datacenters

HHVM build status report

HHVM is a virtual machine and just-in-time compiler (JIT) for applications written in PHP and Hack. It was developed by Facebook, and a few months ago (W21) I reported on the successful effort to port HHVM to ARM.

Since then, I’ve had a chance to try this out first hand, relying on the HHVM Github repository and the hhvm-arm mailing list for help. If you want to make your own way through this journey, here’s some notes that will save you some time.

  1. The test suite is written in PHP, and PHP 7 will run the tests just fine once you bring in an internationalization library. sudo apt-get install php7.0-intl. If you don’t have the intl library installed, you’ll get an error related to Uncaught Error: Class ‘UConverter’ not found.
  2. The tests expect to run as an unprivileged user, and not as root.
  3. The ext_posix.php test assumes that there is a ‘wheel’ group. Try sudo groupadd wheel.
  4. Apply patch 7912, AArch64 Fix getFrameRegs assertion during indirect fixup before compiling. If you don’t you’ll get errors in the two tests hphp/test/quick/setg-dtor.php and hphp/test/quick/sets-dtor.php and perhaps also in ir_inlining/1.php.

After all of this is done, I was able to get a system that passed all of the “quick” tests, and failed only one of the “slow” tests. Look for uspoof.php, and review these two issues:

The reason for the test failure appears to be something deep in Facebook’s decision about which Unicode internationalization library to use, a library (ICU 49) that has slightly different semantics from the current version (ICU 55) affecting just one test.

Thanks to Steve Walk and Jim Saxman for their help to date!

Work in progress: LinuxKit for multiple architectures

If you’re tracking the progress of building LinuxKit on multiple architectures, the following open issues on Github are of interest:

In 2292, Rolf Neugebauer writes:

We now have both x86_64 and arm64 linuxkit/alpine images as well as initial support for building arm64 kernels. So we are getting close to full arm64 support.

We want this support to be transparent, ie ideally we can use the same YAML file without any changes to build x86_64 and arm64 LinuxKit images (and other archs in the future). The best way to achieve this is using multiarch images/manifests, currently using the manifest-tool. The tool pushes a manifest to hub which contains references to to the different images (e.g. for different architectures). I suggest we add the manifest-tool the the top-level Makefile in linuxkit.

This is all moving fast enough at the moment that I don’t have a first-hand report on build success, but when I do I’ll report back.

Work in progress: .NET CoreCLR and CoreFX

Work is well underway on porting .NET CoreCLR and CoreFX to ARM64, to the point where these builds are being added to the CI system. If you are tracking this, the relevant issues are

These changes are all targetted at the .NET Core 2.1 release, currently scheduled for approximately September 15, 2017.

Azul Systems and Qualcomm Bring Enterprise-Grade Open Source Java on ARM to Datacenters

Full press release at https://www.azul.com/press_release/azul-systems-qualcomm-bring-open-source-java-centriq-arm/

SUNNYVALE, Calif.–(BUSINESS WIRE)–Azul Systems, Inc., in collaboration with Qualcomm Datacenter Technologies, Inc., a subsidiary of Qualcomm Incorporated, today announced the general availability of new versions of Zulu Enterprise and Zulu Embedded, a complete open source development and runtime platform for server-side Java applications, for the Qualcomm Centriq™ 2400 Server Processor. The new version of Zulu supports Java 8 and the ARM®v8-A architecture.

Engineers and developers who design or maintain Java-based systems can now harness the high core count, high performance and power efficiency of the Qualcomm Centriq 2400 processor to drive architectural innovation in the datacenter.

Zulu and Zulu Embedded are certified and tested open source builds of OpenJDK. The Zulu build of OpenJDK running on the Qualcomm Centriq 2400 processor includes a high-performance JIT compiler and delivers highly optimized machine code at runtime for server-based Java applications.

Pricing and Availability

All Azul Systems Zulu and Zulu Embedded builds of OpenJDK are 100% open source and free to download and use without restrictions. Azul offers flexible and cost-effective support contracts including timely security updates and IP protection for both standard and custom builds of Zulu, helping DevOps and product development teams reduce their Java support costs by up to 50% or more. Visit http://www.azul.com/downloads/zulu/zulu-download-arm/ to learn more and to download Zulu for the Qualcomm Centriq 2400 Server Processor. Builds of Zulu for 32-bit ARM-based processors, as well as 32/64-bit Intel x86 processors, are available at http://www.azul.com/downloads/zulu-embedded.

Colophon

Special thanks this week to Elsie Wahlig and Ed Wu (Qualcomm), Zi Shem Lim (Cavium), and Jeff Underhill (ARM) for their help.

Subscription information

Works on Arm News is released weekly on Fridays. Follow @worksonarm on Twitter for the weekly link, or follow the worksonarm-news project on Github for notifications. Email to [email protected] if you’d like a direct email.

Back and current issues are available from the Works on Arm News archive on Github.

You can unsubscribe at any time.

Explore Topics