[ https://issues.apache.org/jira/browse/HADOOP-8333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13408377#comment-13408377 ]
Andy Isaacson commented on HADOOP-8333: --------------------------------------- Since HADOOP-8368 on trunk (which switched us from automake to CMake), this is not an issue on OpenJDK at least. I realize that doesn't help much on branch-1 though... > src/contrib/fuse-dfs build fails on non-Sun JVM environments > ------------------------------------------------------------ > > Key: HADOOP-8333 > URL: https://issues.apache.org/jira/browse/HADOOP-8333 > Project: Hadoop Common > Issue Type: Bug > Components: build > Affects Versions: 1.0.2 > Environment: IBM Java 6 > Reporter: Kumar Ravi > > src/contrib/fuse-dfs build failure when building in IBM Java 6 environment. > The message on the console when the build aborts is: > [exec] /usr/bin/ld: cannot find -ljvm > [exec] collect2: ld returned 1 exit status > [exec] make[1]: *** [fuse_dfs] Error 1 > [exec] make[1]: Leaving directory > `/home/hadoop/branch-1.0_0427/src/contrib/fuse-dfs/src' > [exec] make: *** [all-recursive] Error 1 > The reason this seems to be happening is because of the last line in > src/contrib/fuse-dfs/src/Makefile.am > AM_LDFLAGS= -L$(HADOOP_HOME)/build/libhdfs -lhdfs -L$(FUSE_HOME)/lib -lfuse > -L$(JAVA_HOME)/jre/lib/$(OS_ARCH)/server -ljvm > For hadoop to build on IBM Java, this last line should read as follows since > this is where the libjvm library resides > AM_LDFLAGS= -L$(HADOOP_HOME)/build/libhdfs -lhdfs -L$(FUSE_HOME)/lib -lfuse > -L$(JAVA_HOME)/jre/lib/$(OS_ARCH)/j9vm -ljvm > IMO, Changes like the following will need to be made to > src/contrib/fuse-dfs/configure.ac (?) to include changes similar to that in > src/native/ to check for the appropriate JVM and configure the appropriate > path for ljvm. > dnl Check for '-ljvm' > JNI_LDFLAGS="" > if test $JAVA_HOME != "" > then > JNI_LDFLAGS="-L$JAVA_HOME/jre/lib/$OS_ARCH/server" > JVMSOPATH=`find $JAVA_HOME/jre/ -name libjvm.so | head -n 1` > JNI_LDFLAGS="$JNI_LDFLAGS -L`dirname $JVMSOPATH`" > fi > ldflags_bak=$LDFLAGS > LDFLAGS="$LDFLAGS $JNI_LDFLAGS" > AC_CHECK_LIB([jvm], [JNI_GetCreatedJavaVMs]) > LDFLAGS=$ldflags_bak > AC_SUBST([JNI_LDFLAGS]) > # Checks for header files. > dnl Check for Ansi C headers > AC_HEADER_STDC > dnl Check for other standard C headers > AC_CHECK_HEADERS([stdio.h stddef.h], [], AC_MSG_ERROR(Some system headers not > found... please ensure their presence on your platform.)) > dnl Check for JNI headers > JNI_CPPFLAGS="" > if test $JAVA_HOME != "" > then > for dir in `find $JAVA_HOME/include -follow -type d` > do > JNI_CPPFLAGS="$JNI_CPPFLAGS -I$dir" > done > fi > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira