[ 
https://issues.apache.org/jira/browse/HADOOP-6924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Watt updated HADOOP-6924:
---------------------------------

    Attachment: HADOOP-6924.patch

This is a one line fix that identifies the location of the appropriate 
libjvm.so file. For Sun systems this is under the jre/lib/$OS_ARCH/server 
folder for IBM JREs this is under the jre/lib/$OS_ARCH/classic folder. Non-Sun 
JREs do not have a sun.boot.library.path environment variable that can be 
relied upon. 

This is also easily extensible as other JREs (such as Apache Harmony) can 
simply extend the regular expression by adding in an "OR" expression for a 
folder that is unique to their JRE.

> 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
>             Fix For: 0.20.3, 0.21.1, 0.22.0
>
>         Attachments: HADOOP-6924.patch
>
>
> 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.
-
You can reply to this email to add a comment to the issue online.

Reply via email to