HADOOP-10450. Build zlib native code bindings in hadoop.dll for Windows. Contributed by Chris Nauroth.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1582868 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6d2e1fde63
commit
f5a8815492
13
BUILDING.txt
13
BUILDING.txt
|
@ -189,6 +189,7 @@ Requirements:
|
|||
* ProtocolBuffer 2.5.0
|
||||
* Windows SDK or Visual Studio 2010 Professional
|
||||
* Unix command-line tools from GnuWin32 or Cygwin: sh, mkdir, rm, cp, tar, gzip
|
||||
* zlib headers (if building native code bindings for zlib)
|
||||
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
|
||||
|
||||
If using Visual Studio, it must be Visual Studio 2010 Professional (not 2012).
|
||||
|
@ -228,6 +229,18 @@ native code is built by enabling the 'native-win' Maven profile. -Pnative-win
|
|||
is enabled by default when building on Windows since the native components
|
||||
are required (not optional) on Windows.
|
||||
|
||||
If native code bindings for zlib are required, then the zlib headers must be
|
||||
deployed on the build machine. Set the ZLIB_HOME environment variable to the
|
||||
directory containing the headers.
|
||||
|
||||
set ZLIB_HOME=C:\zlib-1.2.7
|
||||
|
||||
At runtime, zlib1.dll must be accessible on the PATH. Hadoop has been tested
|
||||
with zlib 1.2.7, built using Visual Studio 2010 out of contrib\vstudio\vc10 in
|
||||
the zlib 1.2.7 source tree.
|
||||
|
||||
http://www.zlib.net/
|
||||
|
||||
----------------------------------------------------------------------------------
|
||||
Building distributions:
|
||||
|
||||
|
|
|
@ -469,6 +469,9 @@ Release 2.4.0 - UNRELEASED
|
|||
|
||||
HADOOP-10449. Fix the javac warnings in the security package. (szetszwo)
|
||||
|
||||
HADOOP-10450. Build zlib native code bindings in hadoop.dll for Windows.
|
||||
(cnauroth)
|
||||
|
||||
BREAKDOWN OF HADOOP-10184 SUBTASKS AND RELATED JIRAS
|
||||
|
||||
HADOOP-10185. FileSystem API for ACLs. (cnauroth)
|
||||
|
|
|
@ -58,6 +58,7 @@
|
|||
<SnappyInclude Condition="Exists('$(CustomSnappyInclude)') And '$(SnappyInclude)' == ''">$(CustomSnappyInclude)</SnappyInclude>
|
||||
<SnappyEnabled Condition="'$(SnappyLib)' != '' And '$(SnappyInclude)' != ''">true</SnappyEnabled>
|
||||
<IncludePath Condition="'$(SnappyEnabled)' == 'true'">$(SnappyInclude);$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="Exists('$(ZLIB_HOME)')">$(ZLIB_HOME);$(IncludePath)</IncludePath>
|
||||
</PropertyGroup>
|
||||
<Target Name="CheckRequireSnappy">
|
||||
<Error
|
||||
|
@ -92,6 +93,8 @@
|
|||
<ClCompile Include="src\org\apache\hadoop\io\compress\snappy\SnappyDecompressor.c" Condition="'$(SnappyEnabled)' == 'true'">
|
||||
<AdditionalOptions>/D HADOOP_SNAPPY_LIBRARY=L\"snappy.dll\"</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\org\apache\hadoop\io\compress\zlib\ZlibCompressor.c" Condition="Exists('$(ZLIB_HOME)')" />
|
||||
<ClCompile Include="src\org\apache\hadoop\io\compress\zlib\ZlibDecompressor.c" Condition="Exists('$(ZLIB_HOME)')" />
|
||||
<ClCompile Include="src\org\apache\hadoop\io\compress\lz4\lz4.c" />
|
||||
<ClCompile Include="src\org\apache\hadoop\io\compress\lz4\lz4hc.c" />
|
||||
<ClCompile Include="src\org\apache\hadoop\io\compress\lz4\Lz4Compressor.c" />
|
||||
|
@ -109,6 +112,9 @@
|
|||
<ClInclude Include="..\src\org\apache\hadoop\util\crc32c_tables.h" />
|
||||
<ClInclude Include="..\src\org\apache\hadoop\util\crc32_zlib_polynomial_tables.h" />
|
||||
<ClInclude Include="src\org\apache\hadoop\io\compress\snappy\org_apache_hadoop_io_compress_snappy.h" />
|
||||
<ClInclude Include="src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib_ZlibCompressor.h" />
|
||||
<ClInclude Include="src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib_ZlibDecompressor.h" />
|
||||
<ClInclude Include="src\org\apache\hadoop\io\compress\zlib\org_apache_hadoop_io_compress_zlib.h" />
|
||||
<ClInclude Include="src\org\apache\hadoop\io\nativeio\file_descriptor.h" />
|
||||
<ClInclude Include="src\org\apache\hadoop\util\bulk_crc32.h" />
|
||||
<ClInclude Include="src\org\apache\hadoop\util\crc32c_tables.h" />
|
||||
|
|
|
@ -47,6 +47,7 @@ static int (*dlsym_deflateEnd)(z_streamp);
|
|||
#endif
|
||||
|
||||
#ifdef WINDOWS
|
||||
#include "winutils.h"
|
||||
#include <Strsafe.h>
|
||||
typedef int (__cdecl *__dlsym_deflateInit2_) (z_streamp, int, int, int, int, int, const char *, int);
|
||||
typedef int (__cdecl *__dlsym_deflate) (z_streamp, int);
|
||||
|
@ -379,7 +380,16 @@ Java_org_apache_hadoop_io_compress_zlib_ZlibCompressor_getLibraryName(JNIEnv *en
|
|||
}
|
||||
}
|
||||
#endif
|
||||
return (*env)->NewStringUTF(env, HADOOP_ZLIB_LIBRARY);
|
||||
|
||||
#ifdef WINDOWS
|
||||
LPWSTR filename = NULL;
|
||||
GetLibraryName(dlsym_deflateInit2_, &filename);
|
||||
if (filename != NULL) {
|
||||
return (*env)->NewString(env, filename, (jsize) wcslen(filename));
|
||||
} else {
|
||||
return (*env)->NewStringUTF(env, "Unavailable");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue