summaryrefslogtreecommitdiff
path: root/src/inc
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2015-10-30 15:44:53 -0700
committerJan Kotas <jkotas@microsoft.com>2015-10-30 15:44:53 -0700
commitef310df65c764604bb1a78b0cd1a8fb0419af1c1 (patch)
treea9d7d0a2882c21358b67ad11b2ee55cbd7818c46 /src/inc
parent828592485cc48f90649f49ef9a303cc04004abbc (diff)
parent28c4854d78f02ee2c92ea536c3c29f4433865869 (diff)
downloadcoreclr-ef310df65c764604bb1a78b0cd1a8fb0419af1c1.tar.gz
coreclr-ef310df65c764604bb1a78b0cd1a8fb0419af1c1.tar.bz2
coreclr-ef310df65c764604bb1a78b0cd1a8fb0419af1c1.zip
Merge pull request #1888 from JohnChen0/master
Modify Platform ID of Linux NIs (issue #1035)
Diffstat (limited to 'src/inc')
-rw-r--r--src/inc/pedecoder.h12
-rw-r--r--src/inc/pedecoder.inl5
2 files changed, 16 insertions, 1 deletions
diff --git a/src/inc/pedecoder.h b/src/inc/pedecoder.h
index a744764a6d..37d27b9f51 100644
--- a/src/inc/pedecoder.h
+++ b/src/inc/pedecoder.h
@@ -84,6 +84,13 @@ inline CHECK CheckOverflow(RVA value1, COUNT_T value2)
#define IMAGE_FILE_MACHINE_NATIVE IMAGE_FILE_MACHINE_I386
#elif defined(_TARGET_AMD64_)
#define IMAGE_FILE_MACHINE_NATIVE IMAGE_FILE_MACHINE_AMD64
+#if defined(__LINUX__)
+#define IMAGE_FILE_MACHINE_NATIVE_NI 0x9664
+#elif defined(__APPLE__)
+#define IMAGE_FILE_MACHINE_NATIVE_NI 0xa664
+#elif defined(__FreeBSD__)
+#define IMAGE_FILE_MACHINE_NATIVE_NI 0xb664
+#endif
#elif defined(_TARGET_ARM_)
#define IMAGE_FILE_MACHINE_NATIVE IMAGE_FILE_MACHINE_ARMNT
#elif defined(_TARGET_ARM64_)
@@ -92,6 +99,11 @@ inline CHECK CheckOverflow(RVA value1, COUNT_T value2)
#error "port me"
#endif
+// Machine code for native images
+#ifndef IMAGE_FILE_MACHINE_NATIVE_NI
+#define IMAGE_FILE_MACHINE_NATIVE_NI IMAGE_FILE_MACHINE_NATIVE
+#endif
+
// --------------------------------------------------------------------------------
// Types
// --------------------------------------------------------------------------------
diff --git a/src/inc/pedecoder.inl b/src/inc/pedecoder.inl
index 9794625a58..12b00d21ec 100644
--- a/src/inc/pedecoder.inl
+++ b/src/inc/pedecoder.inl
@@ -962,8 +962,11 @@ inline BOOL PEDecoder::IsNativeMachineFormat() const
if (!HasContents() || !HasNTHeaders() )
return FALSE;
_ASSERTE(m_pNTHeaders);
+ WORD expectedFormat = (HasNativeHeader() || HasReadyToRunHeader()) ?
+ IMAGE_FILE_MACHINE_NATIVE_NI :
+ IMAGE_FILE_MACHINE_NATIVE;
//do not call GetNTHeaders as we do not want to bother with PE32->PE32+ conversion
- return m_pNTHeaders->FileHeader.Machine==IMAGE_FILE_MACHINE_NATIVE;
+ return m_pNTHeaders->FileHeader.Machine==expectedFormat;
}
inline BOOL PEDecoder::IsI386() const