Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Hadoop >> mail # dev >> Hadoop native builds fail on ARM due to -m32


Copy link to this message
-
Hadoop native builds fail on ARM due to -m32
Is the native build failing on ARM (where gcc doesn't support -m32) a
known issue, and is there a workaround or fix pending?

$ ant -Dcompile.native=true
...
     [exec] make  all-am
     [exec] make[1]: Entering directory
`/home/trobinson/dev/hadoop-common/build/native/Linux-arm-32'
     [exec] /bin/bash ./libtool  --tag=CC   --mode=compile gcc
-DHAVE_CONFIG_H -I. -I/home/trobinson/dev/hadoop-common/src/native
-I/usr/lib/jvm/java-6-openjdk/include
-I/usr/lib/jvm/java-6-openjdk/include/linux
-I/home/trobinson/dev/hadoop-common/src/native/src
-Isrc/org/apache/hadoop/io/compress/zlib
-Isrc/org/apache/hadoop/security -Isrc/org/apache/hadoop/io/nativeio/
-g -Wall -fPIC -O2 -m32 -g -O2 -MT ZlibCompressor.lo -MD -MP -MF
.deps/ZlibCompressor.Tpo -c -o ZlibCompressor.lo `test -f
'src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c' || echo
'/home/trobinson/dev/hadoop-common/src/native/'`src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c
     [exec] libtool: compile:  gcc -DHAVE_CONFIG_H -I.
-I/home/trobinson/dev/hadoop-common/src/native
-I/usr/lib/jvm/java-6-openjdk/include
-I/usr/lib/jvm/java-6-openjdk/include/linux
-I/home/trobinson/dev/hadoop-common/src/native/src
-Isrc/org/apache/hadoop/io/compress/zlib
-Isrc/org/apache/hadoop/security -Isrc/org/apache/hadoop/io/nativeio/
-g -Wall -fPIC -O2 -m32 -g -O2 -MT ZlibCompressor.lo -MD -MP -MF
.deps/ZlibCompressor.Tpo -c
/home/trobinson/dev/hadoop-common/src/native/src/org/apache/hadoop/io/compress/zlib/ZlibCompressor.c
 -fPIC -DPIC -o .libs/ZlibCompressor.o
     [exec] make[1]: Leaving directory
`/home/trobinson/dev/hadoop-common/build/native/Linux-arm-32'
     [exec] cc1: error: unrecognized command line option "-m32"
     [exec] make[1]: *** [ZlibCompressor.lo] Error 1
     [exec] make: *** [all] Error 2

This closest issue I can find is
https://issues.apache.org/jira/browse/HADOOP-6258 (Native compilation
assumes gcc), as well as other issues regarding where and how to
specify -m32/64. However, there doesn't seem to be a specific issue
covering build failure on systems using gcc where the gcc target does
not support -m32/64 (such as ARM).

I've attached a patch that disables specifying -m$(JVM_DATA_MODEL)
when $host_cpu starts with "arm". (For instance, host_cpu = armv7l for
my system.) To any maintainers on this list, please let me know if
you'd like me to open a new issue and/or attach this patch to an
issue.

Thanks,
Trevor
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB