Trevor Robinson created HADOOP-8659:
---------------------------------------
Summary: Native libraries must build with soft-float ABI for
Oracle JVM
Key: HADOOP-8659
URL: https://issues.apache.org/jira/browse/HADOOP-8659
Project: Hadoop Common
Issue Type: Bug
Components: native
Environment: armhf Linux with Oracle JVM
Reporter: Trevor Robinson
Assignee: Trevor Robinson
There was recently an ABI (application binary interface) change in most Linux
distributions for modern ARM processors (ARMv7). Historically, hardware
floating-point (FP) support was optional/vendor-specific for ARM processors, so
for software compatibility, the default ABI required that processors with FP
units copy FP arguments into integer registers (or memory) when calling a
shared library function. Now that hardware floating-point has been standardized
for some time, Linux distributions such as Ubuntu 12.04 have changed the
default ABI to leave FP arguments in FP registers, since this can significantly
improve performance for FP libraries.
Unfortunately, Oracle has not yet released a JVM (as of 7u4) that supports the
new ABI, presumably since this involves some non-trivial changes to components
like JNI. While the soft-float JVM can run on systems with multi-arch support
(currently Debian/Ubuntu) using compatibility libraries, this configuration
requires that any third-party JNI libraries also be compiled using the
soft-float ABI. Since hard-float systems default to compiling for hard-float,
an extra argument to GCC (and installation of a compatibility library) is
required to build soft-float Hadoop native libraries that work with the Oracle
JVM.
Note that OpenJDK on hard-float systems does use the new ABI, and expects JNI
libraries to use it as well. Therefore the fix for this issue requires
detecting the float ABI of the current JVM.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira