hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Allen Wittenauer (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-6924) Build fails with non-Sun JREs due to different pathing to the operating system architecture shared libraries
Date Sun, 18 Mar 2012 21:18:41 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-6924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13232369#comment-13232369

Allen Wittenauer commented on HADOOP-6924:

You really aren't looking for a specific library, you're really looking for the lib directory.
 The easiest way to do this in a somewhat portable fashion is to ask the JVM directly.

I've uploaded a snippet of what I do locally to build libhadoop.so and libhadoop.dylib on
my machines.  [The code I use is so radically different than what is in Hadoop that making
it into a patch is too time consuming.]  You should be able to do the same thing with any
JVM, you just need to determine what the proper system property is.  While this doesn't make
it 'instantly' portable, it does it make much easier to add support for JREs after they have
been vetted.  

For IBM's JRE, I believe the system property to look for is com.ibm.oti.vm.bootstrap.library.path
> Build fails with non-Sun JREs due to different pathing to the operating system architecture
shared libraries
> ------------------------------------------------------------------------------------------------------------
>                 Key: HADOOP-6924
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6924
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 0.20.0, 0.20.1, 0.20.2, 0.21.0
>         Environment: SLES 10, IBM Java 6
>            Reporter: Stephen Watt
>         Attachments: 6924-1.patch, HADOOP-6924-v2.patch, HADOOP-6924.patch, apjvmlibdir.m4
> The src/native/configure script used to build the native libraries has an environment
variable called JNI_LDFLAGS which is set as follows:
> JNI_LDFLAGS="-L$JAVA_HOME/jre/lib/$OS_ARCH/server"
> This pathing convention to the shared libraries for the operating system architecture
is unique to Oracle/Sun Java and thus on other flavors of Java the path will not exist and
will result in a build failure with the following exception:
>      [exec] gcc -shared  ../src/org/apache/hadoop/io/compress/zlib/.libs/ZlibCompressor.o
../src/org/apache/hadoop/io/compress/zlib/.libs/ZlibDecompressor.o  -L/home/hadoop/Java-Versions/ibm-java-i386-60/jre/lib/x86/server
-ljvm -ldl  -m32 -m32 -Wl,-soname -Wl,libhadoop.so.1 -o .libs/libhadoop.so.1.0.0
>      [exec] /usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/bin/ld: cannot
find -ljvm
>      [exec] collect2: ld returned 1 exit status

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


View raw message