diff options
| author | Rui Ueyama <ruiu@google.com> | 2013-11-15 21:22:02 +0000 |
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2013-11-15 21:22:02 +0000 |
| commit | e448f9e418ffcec6fdadfc51af213f0d11645296 (patch) | |
| tree | 44a130087d4fb54035ebfcbfc2f1059860b2132e /llvm/lib | |
| parent | 94f2271d6342ddda5812ae639e873a7913acdc83 (diff) | |
| download | bcm5719-llvm-e448f9e418ffcec6fdadfc51af213f0d11645296.tar.gz bcm5719-llvm-e448f9e418ffcec6fdadfc51af213f0d11645296.zip | |
Path: Recognize COFF import library file magic.
Summary: Make identify_magic to recognize COFF import file.
Reviewers: Bigcheese
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2165
llvm-svn: 194852
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Object/Binary.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Object/ObjectFile.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Support/Path.cpp | 4 |
4 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp index 6aa6576e2ec..2c068be970e 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp @@ -584,6 +584,7 @@ ObjectImage *RuntimeDyld::loadObject(ObjectBuffer *InputBuffer) { case sys::fs::file_magic::bitcode: case sys::fs::file_magic::archive: case sys::fs::file_magic::coff_object: + case sys::fs::file_magic::coff_import_library: case sys::fs::file_magic::pecoff_executable: case sys::fs::file_magic::macho_universal_binary: case sys::fs::file_magic::windows_resource: diff --git a/llvm/lib/Object/Binary.cpp b/llvm/lib/Object/Binary.cpp index d0a70091444..de57b4c9a74 100644 --- a/llvm/lib/Object/Binary.cpp +++ b/llvm/lib/Object/Binary.cpp @@ -91,6 +91,7 @@ error_code object::createBinary(MemoryBuffer *Source, return object_error::success; } case sys::fs::file_magic::coff_object: + case sys::fs::file_magic::coff_import_library: case sys::fs::file_magic::pecoff_executable: { OwningPtr<Binary> ret( ObjectFile::createCOFFObjectFile(scopedSource.take())); diff --git a/llvm/lib/Object/ObjectFile.cpp b/llvm/lib/Object/ObjectFile.cpp index 59395c640ff..0e626d650fb 100644 --- a/llvm/lib/Object/ObjectFile.cpp +++ b/llvm/lib/Object/ObjectFile.cpp @@ -69,6 +69,7 @@ ObjectFile *ObjectFile::createObjectFile(MemoryBuffer *Object) { case sys::fs::file_magic::macho_dsym_companion: return createMachOObjectFile(Object); case sys::fs::file_magic::coff_object: + case sys::fs::file_magic::coff_import_library: case sys::fs::file_magic::pecoff_executable: return createCOFFObjectFile(Object); } diff --git a/llvm/lib/Support/Path.cpp b/llvm/lib/Support/Path.cpp index dfa18aaa6d2..c869b30a8e2 100644 --- a/llvm/lib/Support/Path.cpp +++ b/llvm/lib/Support/Path.cpp @@ -848,6 +848,10 @@ error_code has_magic(const Twine &path, const Twine &magic, bool &result) { return file_magic::unknown; switch ((unsigned char)Magic[0]) { case 0x00: { + // COFF short import library file + if (Magic[1] == (char)0x00 && Magic[2] == (char)0xff && + Magic[3] == (char)0xff) + return file_magic::coff_import_library; // Windows resource file const char Expected[] = { 0, 0, 0, 0, '\x20', 0, 0, 0, '\xff' }; if (Magic.size() >= sizeof(Expected) && |

