Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-1920

libhdfs does not build for ARM processors

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.21.0
    • Fix Version/s: 0.23.0
    • Component/s: libhdfs
    • Labels:
      None
    • Environment:
    • Hadoop Flags:
      Reviewed

      Description

      $ ant compile -Dcompile.native=true -Dcompile.c++=1 -Dlibhdfs=1 -Dfusedfs=1
      ...
      create-libhdfs-configure:
      ...
      [exec] configure: error: Unsupported CPU architecture "armv7l"

      Once the CPU arch check is fixed in src/c++/libhdfs/m4/apsupport.m4, then next issue is -m32:

      $ ant compile -Dcompile.native=true -Dcompile.c++=1 -Dlibhdfs=1 -Dfusedfs=1
      ...

      compile-c++-libhdfs:
      [exec] /bin/bash ./libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"libhdfs\" -DPACKAGE_TARNAME=\"libhdfs\" -DPACKAGE_VERSION=\"0.1.0\" -DPACKAGE_STRING=\"libhdfs\ 0.1.0\" -DPACKAGE_BUGREPORT=\"omalley@apache.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libhdfs\" -DVERSION=\"0.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -Dsize_t=unsigned\ int -Dconst=/**/ -Dvolatile=/**/ -I. -I/home/trobinson/dev/hadoop-hdfs/src/c+/libhdfs -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"arm\" -m32 -I/usr/lib/jvm/java-6-openjdk/include -I/usr/lib/jvm/java-6-openjdk/include/arm -Wall -Wstrict-prototypes -MT hdfs.lo -MD -MP -MF .deps/hdfs.Tpo -c -o hdfs.lo /home/trobinson/dev/hadoop-hdfs/src/c+/libhdfs/hdfs.c
      [exec] make: Warning: File `.deps/hdfs_write.Po' has modification time 2.1 s in the future
      [exec] libtool: compile: gcc -DPACKAGE_NAME=\"libhdfs\" -DPACKAGE_TARNAME=\"libhdfs\" -DPACKAGE_VERSION=\"0.1.0\" "-DPACKAGE_STRING=\"libhdfs 0.1.0\"" -DPACKAGE_BUGREPORT=\"omalley@apache.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libhdfs\" -DVERSION=\"0.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" "-Dsize_t=unsigned int" "-Dconst=/*/" "-Dvolatile=/*/" -I. -I/home/trobinson/dev/hadoop-hdfs/src/c+/libhdfs -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"arm\" -m32 -I/usr/lib/jvm/java-6-openjdk/include -I/usr/lib/jvm/java-6-openjdk/include/arm -Wall -Wstrict-prototypes -MT hdfs.lo -MD -MP -MF .deps/hdfs.Tpo -c /home/trobinson/dev/hadoop-hdfs/src/c+/libhdfs/hdfs.c -fPIC -DPIC -o .libs/hdfs.o
      [exec] cc1: error: unrecognized command line option "-m32"
      [exec] make: *** [hdfs.lo] Error 1

      Here, gcc does not support -m32 for the ARM target, so -m$

      {JVM_ARCH}

      must be omitted from CFLAGS and LDFLAGS.

        Issue Links

          Activity

            People

            • Assignee:
              Trevor Robinson
              Reporter:
              Trevor Robinson
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development