HDFS-7774. Unresolved symbols error while compiling HDFS on Windows 7/32 bit. Contributed by Kiran Kumar M R.
(cherry picked from commit c6d5b37a1c4c3acc190f5f4e27109594efb7be8c) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5dfb793b Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5dfb793b Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5dfb793b Branch: refs/heads/branch-2 Commit: 5dfb793b05a1a200aafa0645775d80b1fa656d66 Parents: 264c967 Author: cnauroth <cnaur...@apache.org> Authored: Thu Feb 26 13:37:46 2015 -0800 Committer: cnauroth <cnaur...@apache.org> Committed: Thu Feb 26 13:37:58 2015 -0800 ---------------------------------------------------------------------- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ hadoop-hdfs-project/hadoop-hdfs/pom.xml | 5 ++++- .../hadoop-hdfs/src/main/native/libhdfs/os/windows/thread.c | 2 +- .../main/native/libhdfs/os/windows/thread_local_storage.c | 8 ++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/5dfb793b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 79cf934..70aad62 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -741,6 +741,9 @@ Release 2.7.0 - UNRELEASED HDFS-7843. A truncated file is corrupted after rollback from a rolling upgrade. (szetszwo) + HDFS-7774. Unresolved symbols error while compiling HDFS on Windows 7/32 bit. + (Kiran Kumar M R via cnauroth) + BREAKDOWN OF HDFS-7584 SUBTASKS AND RELATED JIRAS HDFS-7720. Quota by Storage Type API, tools and ClientNameNode http://git-wip-us.apache.org/repos/asf/hadoop/blob/5dfb793b/hadoop-hdfs-project/hadoop-hdfs/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/pom.xml b/hadoop-hdfs-project/hadoop-hdfs/pom.xml index 71f2b42..dbaa42a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/pom.xml +++ b/hadoop-hdfs-project/hadoop-hdfs/pom.xml @@ -438,10 +438,13 @@ http://maven.apache.org/xsd/maven-4.0.0.xsd"> </goals> <configuration> <target> + <condition property="generator" value="Visual Studio 10" else="Visual Studio 10 Win64"> + <equals arg1="Win32" arg2="${env.PLATFORM}" /> + </condition> <mkdir dir="${project.build.directory}/native"/> <exec executable="cmake" dir="${project.build.directory}/native" failonerror="true"> - <arg line="${basedir}/src/ -DGENERATED_JAVAH=${project.build.directory}/native/javah -DJVM_ARCH_DATA_MODEL=${sun.arch.data.model} -DREQUIRE_LIBWEBHDFS=${require.libwebhdfs} -DREQUIRE_FUSE=${require.fuse} -G 'Visual Studio 10 Win64'"/> + <arg line="${basedir}/src/ -DGENERATED_JAVAH=${project.build.directory}/native/javah -DJVM_ARCH_DATA_MODEL=${sun.arch.data.model} -DREQUIRE_LIBWEBHDFS=${require.libwebhdfs} -DREQUIRE_FUSE=${require.fuse} -G '${generator}'"/> </exec> <exec executable="msbuild" dir="${project.build.directory}/native" failonerror="true"> http://git-wip-us.apache.org/repos/asf/hadoop/blob/5dfb793b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread.c ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread.c b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread.c index 90450d8..f5cc2a7 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread.c +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread.c @@ -28,7 +28,7 @@ * @param toRun thread to run * @return DWORD result of running thread (always 0) */ -static DWORD runThread(LPVOID toRun) { +static DWORD WINAPI runThread(LPVOID toRun) { const thread *t = toRun; t->start(t->arg); return 0; http://git-wip-us.apache.org/repos/asf/hadoop/blob/5dfb793b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread_local_storage.c ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread_local_storage.c b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread_local_storage.c index 70ad152..4c415e1 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread_local_storage.c +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/libhdfs/os/windows/thread_local_storage.c @@ -96,13 +96,21 @@ static void NTAPI tlsCallback(PVOID h, DWORD reason, PVOID pv) * reference _tls_used, we guarantee that the binary retains the TLS directory. * See Microsoft Visual Studio 10.0/VC/crt/src/tlssup.c . */ +#ifdef _WIN64 #pragma comment(linker, "/INCLUDE:_tls_used") +#else +#pragma comment(linker, "/INCLUDE:__tls_used") +#endif /* * We must retain a pointer to the callback function. Force the linker to keep * this symbol, even though it appears that nothing in our source code uses it. */ +#ifdef _WIN64 #pragma comment(linker, "/INCLUDE:pTlsCallback") +#else +#pragma comment(linker, "/INCLUDE:_pTlsCallback") +#endif /* * Define constant pointer to our callback, and tell the linker to pin it into