Hadoop Common
  1. Hadoop Common
  2. HADOOP-8659

Native libraries must build with soft-float ABI for Oracle JVM on ARM

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0.2-alpha
    • Component/s: native
    • Labels:
      None
    • Environment:

      armhf Linux with Oracle JVM

    • Hadoop Flags:
      Reviewed

      Description

      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.

      1. HADOOP-8659.patch
        7 kB
        Trevor Robinson
      2. HADOOP-8659.patch
        7 kB
        Trevor Robinson
      3. HADOOP-8659.patch
        7 kB
        Trevor Robinson
      4. HADOOP-8659.patch
        8 kB
        Trevor Robinson
      5. HADOOP-8659-fix-001.patch
        1 kB
        Colin Patrick McCabe
      6. HADOOP-8659-fix-002.patch
        1 kB
        Colin Patrick McCabe

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Colin Patrick McCabe
            Reporter:
            Trevor Robinson
          • Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development