libhdfs does not build for ARM processors
-----------------------------------------

                 Key: HDFS-1920
                 URL: https://issues.apache.org/jira/browse/HDFS-1920
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: contrib/libhdfs
    Affects Versions: 0.21.0
         Environment: $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 
4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs 
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr 
--program-suffix=-4.5 --enable-shared --enable-multiarch 
--with-multiarch-defaults=arm-linux-gnueabi --enable-linker-build-id 
--with-system-zlib --libexecdir=/usr/lib/arm-linux-gnueabi 
--without-included-gettext --enable-threads=posix 
--with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/arm-linux-gnueabi 
--enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug 
--enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default 
--with-plugin-ld=ld.gold --enable-objc-gc --disable-sjlj-exceptions 
--with-arch=armv7-a --with-float=softfp --with-fpu=vfpv3-d16 --with-mode=thumb 
--disable-werror --enable-checking=release --build=arm-linux-gnueabi 
--host=arm-linux-gnueabi --target=arm-linux-gnueabi
Thread model: posix
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
$ uname -a
Linux panda0 2.6.38-1002-linaro-omap #3-Ubuntu SMP Fri Apr 15 14:00:54 UTC 2011 
armv7l armv7l armv7l GNU/Linux

            Reporter: Trevor Robinson


$ 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=\"omal...@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=\"omal...@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.


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to