[ https://issues.apache.org/jira/browse/HDFS-3383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13448391#comment-13448391 ]
Eli Collins commented on HDFS-3383: ----------------------------------- Happy to review if you post a patch for branch-1. > libhdfs does not build on ARM because jni_md.h is not found > ----------------------------------------------------------- > > Key: HDFS-3383 > URL: https://issues.apache.org/jira/browse/HDFS-3383 > Project: Hadoop HDFS > Issue Type: Bug > Components: libhdfs > Affects Versions: 0.23.1 > Environment: Linux 3.2.0-1412-omap4 #16-Ubuntu SMP PREEMPT Tue Apr 17 > 19:38:42 UTC 2012 armv7l armv7l armv7l GNU/Linux > java version "1.7.0_04-ea" > Java(TM) SE Runtime Environment for Embedded (build 1.7.0_04-ea-b20, headless) > Java HotSpot(TM) Embedded Server VM (build 23.0-b21, mixed mode, experimental) > Reporter: Trevor Robinson > Attachments: HDFS-3383.patch > > > The wrong include directory is used for jni_md.h: > [INFO] --- make-maven-plugin:1.0-beta-1:make-install (compile) @ hadoop-hdfs > --- > [INFO] /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/\" -DHAVE_STRDUP=1 > -DHAVE_STRERROR=1 -DHAVE_STRTOUL=1 -DHAVE_FCNTL_H=1 -DHAVE__BOOL=1 > -DHAVE_STDBOOL_H=1 -I. -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"arm\" > -I/usr/lib/jvm/ejdk1.7.0_04/include -I/usr/lib/jvm/ejdk1.7.0_04/include/arm > -Wall -Wstrict-prototypes -MT hdfs.lo -MD -MP -MF .deps/hdfs.Tpo -c -o > hdfs.lo hdfs.c > [INFO] 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/\" -DHAVE_STRDUP=1 > -DHAVE_STRERROR=1 -DHAVE_STRTOUL=1 -DHAVE_FCNTL_H=1 -DHAVE__BOOL=1 > -DHAVE_STDBOOL_H=1 -I. -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"arm\" > -I/usr/lib/jvm/ejdk1.7.0_04/include -I/usr/lib/jvm/ejdk1.7.0_04/include/arm > -Wall -Wstrict-prototypes -MT hdfs.lo -MD -MP -MF .deps/hdfs.Tpo -c hdfs.c > -fPIC -DPIC -o .libs/hdfs.o > [INFO] In file included from hdfs.h:33:0, > [INFO] from hdfs.c:19: > [INFO] /usr/lib/jvm/ejdk1.7.0_04/include/jni.h:45:20: fatal error: jni_md.h: > No such file or directory > [INFO] compilation terminated. > [INFO] make: *** [hdfs.lo] Error 1 > The problem is caused by > hadoop-hdfs-project/hadoop-hdfs/src/main/native/m4/apsupport.m4 overriding > supported_os=arm when host_cpu=arm*; supported_os should remain "linux", > since it determines the jni_md.h include path. OpenJDK 6 and 7 (in Ubuntu > 12.04, at least) and Oracle EJDK put jni_md.h in include/linux. Not sure > if/why this ever worked before. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira