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

Kiran Kumar M R commented on HADOOP-11691:
------------------------------------------

[~chuanliu] you can check and confirm the patch.
Order of include files will matter. patch-002 has Win8SDK include in the end.
{code}
<IncludePath>$(IncludePath);$(Windows8SDK_IncludePath);</IncludePath>
{code}
 So {{SetInformationJobObject}} may be still referring to Win7SDK API. There 
are no compilation errors.

If I reverse the order i.e 
{code}
<IncludePath>$(Windows8SDK_IncludePath);$(IncludePath);</IncludePath>
{code}
Compilation is fine.

But libwinutils.vcxproj and winutils.vcxproj are using different include and 
idl files
libwinutils build using idl files of Win7SDK
{code}
  C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\midl.exe /W2 /WX /nologo 
/char signed /env win32 /Oicf /app_config 
/out"D:\Hadoop\hadoop-common-project\hadoop-common\target/winutils/" /h 
"hadoopwinutilsvc_h.h" /tlb 
"D:\Hadoop\hadoop-common-project\hadoop-common\target/winutils/libwinutils.tlb" 
/robust hadoopwinutilsvc.idl 
  Processing .\hadoopwinutilsvc.idl
  hadoopwinutilsvc.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\oaidl.idl
  oaidl.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\objidl.idl
  objidl.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\unknwn.idl
  unknwn.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\wtypes.idl
  wtypes.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\basetsd.h
  basetsd.h
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\guiddef.h
  guiddef.h
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\ocidl.idl
  ocidl.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\oleidl.idl
  oleidl.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\servprov.idl
  servprov.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\urlmon.idl
  urlmon.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\msxml.idl
  msxml.idl
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\oaidl.acf
  oaidl.acf
  Processing C:\Program Files\Microsoft SDKs\Windows\v7.1\\include\ocidl.acf
  ocidl.acf
{code}

winutils build using idl files of win8 sdk
{code}
  C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\midl.exe /W2 /WX /nologo 
/char signed /env win32 /Oicf /app_config 
/out"D:\Hadoop\hadoop-common-project\hadoop-common\target/winutils/" /h 
"hadoopwinutilsvc_h.h" /tlb 
"D:\Hadoop\hadoop-common-project\hadoop-common\target/winutils/winutils.tlb" 
/robust hadoopwinutilsvc.idl 
  Processing .\hadoopwinutilsvc.idl
  hadoopwinutilsvc.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\um\oaidl.idl
  oaidl.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\um\objidl.idl
  objidl.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\um\unknwn.idl
  unknwn.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\shared\wtypes.idl
  wtypes.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\shared\wtypesbase.idl
  wtypesbase.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\shared\basetsd.h
  basetsd.h
  Processing C:\Program Files\Windows Kits\8.1\Include\shared\guiddef.h
  guiddef.h
  Processing C:\Program Files\Windows Kits\8.1\Include\um\ocidl.idl
  ocidl.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\um\oleidl.idl
  oleidl.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\um\servprov.idl
  servprov.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\um\urlmon.idl
  urlmon.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\um\msxml.idl
  msxml.idl
  Processing C:\Program Files\Windows Kits\8.1\Include\um\oaidl.acf
  oaidl.acf
  Processing C:\Program Files\Windows Kits\8.1\Include\um\ocidl.acf
{code}


So I am doubtful of this as IDL files of both SDK have differences.
May be {{task.c}} needs some change to force {{SetInformationJobObject}} from 
Win8 API usage. Please check 

> X86 build of libwinutils is broken
> ----------------------------------
>
>                 Key: HADOOP-11691
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11691
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: build, native
>    Affects Versions: 3.0.0
>            Reporter: Remus Rusanu
>            Assignee: Kiran Kumar M R
>         Attachments: HADOOP-11691-001.patch, HADOOP-11691-002.patch
>
>
> Hadoop-9922 recently fixed x86 build. After YARN-2190 compiling x86 results 
> in error:
> {code}
> (Link target) ->
>   
> E:\HW\project\hadoop-common\hadoop-common-project\hadoop-common\target/winutils/hadoopwinutilsvc_s.obj
>  : fatal error LNK1112: module machine type 'x64' conflicts with target 
> machine type 'X86' 
> [E:\HW\project\hadoop-common\hadoop-common-project\hadoop-common\src\main\winutils\winutils.vcxproj]
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to