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
|
* ProtocolBuffer 2.5.0
|
||||||
* Windows SDK or Visual Studio 2010 Professional
|
* Windows SDK or Visual Studio 2010 Professional
|
||||||
* Unix command-line tools from GnuWin32 or Cygwin: sh, mkdir, rm, cp, tar, gzip
|
* 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)
|
* 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).
|
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
|
is enabled by default when building on Windows since the native components
|
||||||
are required (not optional) on Windows.
|
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:
|
Building distributions:
|
||||||
|
|
||||||
|
|
|
@ -469,6 +469,9 @@ Release 2.4.0 - UNRELEASED
|
||||||
|
|
||||||
HADOOP-10449. Fix the javac warnings in the security package. (szetszwo)
|
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
|
BREAKDOWN OF HADOOP-10184 SUBTASKS AND RELATED JIRAS
|
||||||
|
|
||||||
HADOOP-10185. FileSystem API for ACLs. (cnauroth)
|
HADOOP-10185. FileSystem API for ACLs. (cnauroth)
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
<SnappyInclude Condition="Exists('$(CustomSnappyInclude)') And '$(SnappyInclude)' == ''">$(CustomSnappyInclude)</SnappyInclude>
|
<SnappyInclude Condition="Exists('$(CustomSnappyInclude)') And '$(SnappyInclude)' == ''">$(CustomSnappyInclude)</SnappyInclude>
|
||||||
<SnappyEnabled Condition="'$(SnappyLib)' != '' And '$(SnappyInclude)' != ''">true</SnappyEnabled>
|
<SnappyEnabled Condition="'$(SnappyLib)' != '' And '$(SnappyInclude)' != ''">true</SnappyEnabled>
|
||||||
<IncludePath Condition="'$(SnappyEnabled)' == 'true'">$(SnappyInclude);$(IncludePath)</IncludePath>
|
<IncludePath Condition="'$(SnappyEnabled)' == 'true'">$(SnappyInclude);$(IncludePath)</IncludePath>
|
||||||
|
<IncludePath Condition="Exists('$(ZLIB_HOME)')">$(ZLIB_HOME);$(IncludePath)</IncludePath>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Target Name="CheckRequireSnappy">
|
<Target Name="CheckRequireSnappy">
|
||||||
<Error
|
<Error
|
||||||
|
@ -92,6 +93,8 @@
|
||||||
<ClCompile Include="src\org\apache\hadoop\io\compress\snappy\SnappyDecompressor.c" Condition="'$(SnappyEnabled)' == 'true'">
|
<ClCompile Include="src\org\apache\hadoop\io\compress\snappy\SnappyDecompressor.c" Condition="'$(SnappyEnabled)' == 'true'">
|
||||||
<AdditionalOptions>/D HADOOP_SNAPPY_LIBRARY=L\"snappy.dll\"</AdditionalOptions>
|
<AdditionalOptions>/D HADOOP_SNAPPY_LIBRARY=L\"snappy.dll\"</AdditionalOptions>
|
||||||
</ClCompile>
|
</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\lz4.c" />
|
||||||
<ClCompile Include="src\org\apache\hadoop\io\compress\lz4\lz4hc.c" />
|
<ClCompile Include="src\org\apache\hadoop\io\compress\lz4\lz4hc.c" />
|
||||||
<ClCompile Include="src\org\apache\hadoop\io\compress\lz4\Lz4Compressor.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\crc32c_tables.h" />
|
||||||
<ClInclude Include="..\src\org\apache\hadoop\util\crc32_zlib_polynomial_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\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\io\nativeio\file_descriptor.h" />
|
||||||
<ClInclude Include="src\org\apache\hadoop\util\bulk_crc32.h" />
|
<ClInclude Include="src\org\apache\hadoop\util\bulk_crc32.h" />
|
||||||
<ClInclude Include="src\org\apache\hadoop\util\crc32c_tables.h" />
|
<ClInclude Include="src\org\apache\hadoop\util\crc32c_tables.h" />
|
||||||
|
|
|
@ -47,6 +47,7 @@ static int (*dlsym_deflateEnd)(z_streamp);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WINDOWS
|
#ifdef WINDOWS
|
||||||
|
#include "winutils.h"
|
||||||
#include <Strsafe.h>
|
#include <Strsafe.h>
|
||||||
typedef int (__cdecl *__dlsym_deflateInit2_) (z_streamp, int, int, int, int, int, const char *, int);
|
typedef int (__cdecl *__dlsym_deflateInit2_) (z_streamp, int, int, int, int, int, const char *, int);
|
||||||
typedef int (__cdecl *__dlsym_deflate) (z_streamp, 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
|
#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